Если бы я выбирал один инструмент, с которого стоит начинать изучение пентестинга, это был бы Nmap. Не потому что он самый простой — а потому что он учит думать о сети как о структуре, которую можно и нужно понимать.

Что такое Nmap и зачем он нужен

Nmap (Network Mapper) — это инструмент сетевого сканирования и аудита безопасности. Он позволяет обнаруживать хосты в сети, определять открытые порты, версии сервисов, операционные системы и запускать скрипты для автоматизированного сбора информации.

В реальных проектах Nmap — первый шаг reconnaissance. Вы получаете карту атакуемой поверхности: что работает, что слушает, что потенциально уязвимо.

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

Самый простой вызов:

nmap 192.168.1.1

Nmap просканирует 1000 наиболее популярных портов TCP. Этого достаточно для первичной разведки.

Сканирование диапазона адресов:

nmap 192.168.1.0/24

Чтобы сканировать быстрее — используйте -sn (ping sweep) сначала, чтобы найти живые хосты:

nmap -sn 192.168.1.0/24

Типы сканирования

Ключевой параметр — тип TCP-сканирования:

  • -sS — SYN-скан (stealth scan). Не завершает TCP-хендшейк, реже логируется. Требует root.
  • -sT — полное TCP-подключение. Работает без root, но более заметен.
  • -sU — UDP-сканирование. Медленное, но UDP-сервисы часто забывают проверить (DNS, SNMP, TFTP).
  • -sV — определение версий сервисов. Обязательный флаг для углублённого анализа.

Пример: полный скан с версиями и ОС:

nmap -sS -sV -O 192.168.1.1

Работа со скриптами NSE

Nmap Scripting Engine (NSE) — это то, что превращает Nmap из сканера портов в полноценный инструмент разведки и проверки уязвимостей. Скрипты написаны на Lua и разделены по категориям.

Запустить стандартный набор скриптов:

nmap -sC 192.168.1.1

Эквивалентно

--script=default
. Проверяет стандартные вещи: анонимный FTP, версии HTTP-заголовков, SSH-алгоритмы и многое другое.

Проверка SMB на уязвимость EternalBlue:

nmap --script smb-vuln-ms17-010 -p 445 192.168.1.1

Перебор директорий через HTTP:

nmap --script http-enum -p 80,443 192.168.1.1

Полезные комбинации флагов

Агрессивное сканирование (включает -sV, -O, -sC, traceroute):

nmap -A 192.168.1.1

Сохранить результат в трёх форматах сразу:

nmap -oA scan_results 192.168.1.0/24

Генерирует .nmap, .xml и .gnmap — удобно для последующего парсинга.

Сканировать все 65535 портов:

nmap -p- 192.168.1.1

Управление скоростью (T0 — paranoid, T5 — insane):

nmap -T4 192.168.1.1

T4 — хороший баланс скорости и надёжности для внутренних сетей.

Реальные сценарии использования

При работе на внешнем периметре я обычно начинаю с тихого SYN-скана популярных портов, затем перехожу к полному перебору всех портов на найденных хостах, и только потом запускаю версии и скрипты на конкретных целях. Это сокращает время и снижает шум в логах.

Типичная последовательность:

nmap -sn 10.10.10.0/24 -oG hosts.txt
nmap -iL hosts.txt -p- --open -oA all_ports
nmap -sV -sC -p 22,80,443,445 -iL hosts.txt -oA services

Вывод

Nmap — инструмент, который растёт вместе с вами. На первой неделе вы используете его для простого обнаружения портов. Через год — пишете собственные NSE-скрипты. Изучите man-страницу, поэкспериментируйте с NSE-скриптами из /usr/share/nmap/scripts/, и Nmap станет одним из ваших самых мощных инструментов разведки.