Команда Linux nmap

Справочник команд Linux


nmap (Network Mapper) — один из самых мощных инструментов сетевого зондирования и аудита безопасности в системах Linux. Он помогает системным администраторам и экспертам по сетевой безопасности:

  • Обнаруживать активные хосты в сети
  • Сканировать открытые порты и службы
  • Определение типов и версий операционных систем
  • Обнаружение уязвимостей в сетевых службах

Благодаря гибкости, мощной функциональности и кроссплатформенности nmap широко используется при оценке безопасности сети, системном администрировании, сетевом мониторинге и в других областях.


Базовый синтаксис

Базовый формат команды nmap выглядит следующим образом:

nmap [扫描类型] [选项] {目标规范}

Где:

  • Scan Type: Указывает метод сканирования, используемый nmap
  • Options: Настраивает различные параметры поведения сканирования
  • Target Specification: Может быть IP-адресом, именем хоста или диапазоном IP

Распространённые типы сканирования

Сканирование TCP SYN (-sS)

Наиболее часто используемый и стандартный метод сканирования, также известный как «полуоткрытое сканирование»:

nmap -sS 192.168.1.1

Возможности:

  • Быстро и скрытно
  • Не завершает трёхстороннее рукопожатие TCP
  • Требует прав root

Сканирование TCP Connect (-sT)

Стандартное сканирование TCP connect:

nmap -sT 192.168.1.1

Возможности:

  • Не требует прав root
  • Устанавливает полное TCP-соединение
  • Медленнее и легко обнаруживается

Сканирование UDP (-sU)

Сканирует UDP-порты:

nmap -sU 192.168.1.1

Возможности:

  • UDP-сканирование относительно медленное
  • Многие UDP-сервисы не отвечают
  • Требует прав root

Определение операционной системы (-O)

Определяет операционную систему целевого хоста:

nmap -O 192.168.1.1

Общие параметры и

Указание портов (-p)

Сканировать определённые порты или диапазоны портов:

Примеры

nmap -p 80,443 192.168.1.1       # Сканировать порты 80 и 443
nmap -p 1-100 192.168.1.1        # Сканировать порты 1-100
nmap -p- 192.168.1.1             # Сканировать все 65535 портов

Определение версии службы (-sV)

Получать подробную информацию о версиях служб:

nmap -sV 192.168.1.1

Скорость сканирования (-T)

Управляет скоростью сканирования (0-5, чем выше число, тем быстрее):

nmap -T4 192.168.1.1             # 较快的扫描速度

Форматы вывода

Несколько вариантов формата вывода:

Примеры

nmap -oN result.txt 192.168.1.1  # Обычный текстовый формат
nmap -oX result.xml 192.168.1.1  # Формат XML
nmap -oG result.gnmap 192.168.1.1 # Формат, удобный для grep

Практические примеры

Базовое сканирование сети

nmap 192.168.1.1

Пример вывода:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-05-01 10:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.045s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

Комплексное сканирование (ОС + версия службы)

nmap -A 192.168.1.1

Сканирование всей подсети

nmap 192.168.1.0/24

Чтение списка целей из файла

nmap -iL targets.txt

Интерпретация результатов сканирования

Значение состояний портов в выводе nmap:

State Описание
open Порт открыт, и приложение прослушивает порт
closed Порт закрыт (хост доступен, но ни одно приложение не прослушивает порт)
отфильтрован Порт отфильтрован брандмауэром/сетью, состояние невозможно определить
не отфильтрован Порт доступен, но невозможно определить, открыт он или закрыт (используется для ACK-сканирования)
open|filtered Невозможно определить, открыт порт или фильтруется (часто встречается при UDP-сканировании)
closed|filtered Невозможно определить, закрыт порт или фильтруется

Соображения безопасности и правовые аспекты

  1. Правомерное использование: Сканируйте только те сети и системы, на которые у вас есть разрешение
  2. Получите разрешение: Перед использованием в корпоративных сетях убедитесь, что получено письменное разрешение
  3. Избегайте злоупотреблений: Крупномасштабное быстрое сканирование может расцениваться как атака
  4. Уважайте приватность: Не сканируйте сетевые ресурсы, которые не принадлежат вам

Продвинутые техники

Обход брандмауэров

Примеры

nmap -f --mtu 24 192.168.1.1      # Использовать фрагментацию
nmap --data-length 100 192.168.1.1 # Добавить случайные данные
nmap -D RND:5 192.168.1.1         # Сканирование с приманками

Скрипт сканирования по расписанию

Примеры

#!/bin/bash
DATE=$(date +%Y%m%d)
nmap -sS -p- -T4 -oN scan_$DATE.log 192.168.1.0/24

Сравнение результатов

ndiff scan1.xml scan2.xml

ЧАВО

Вопрос: Почему для сканирования nmap требуются права root?Ответ: Некоторые типы сканирования (например, SYN-сканирование) требуют прямого управления сетевыми пакетами, что требует прав root.

Вопрос: Как ускорить сканирование?Ответ: Используйте-T4или-T5параметры, уменьшите тайм-аут или ограничьте диапазон сканируемых портов.

Вопрос: Могут ли сканирования nmap быть обнаружены межсетевыми экранами?Ответ: Это зависит от типа сканирования и конфигурации межсетевого экрана. SYN-сканирование более скрытно, чем сканирование с полным подключением.

Вопрос: Как сканировать адреса IPv6?Ответ: Просто используйте адрес IPv6 напрямую:nmap 2001:db8::1


Рекомендуемые учебные ресурсы

  1. Официальная документация:man nmap
  2. Официальная книга по Nmap: "Nmap Network Scanning"
  3. Онлайн-руководства:https://nmap.org/book/toc.html
  4. Интерактивное обучение:https://tryhackme.com/room/furthernmap

Освоив nmap, вы получите мощные возможности сетевого зондирования, заложив прочную основу для системного администрирования и работы по сетевой безопасности. Рекомендуется начинать с простых сканирований и постепенно пробовать более сложные параметры и методы.


Справочник команд Linux

Другие расширения