Сканирование сети с помощью Nmap

«Сетевой сканировщик — это не просто инструмент для пентеста. Это зеркало, в котором ваша инфраструктура видит саму себя. Nmap показывает не то, как вы думаете, что всё настроено, а то, как это выглядит извне. Разрыв между этими картинами и есть главная уязвимость.»

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

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

Nmap логотип
Nmap — инструмент для активного исследования сетей

В контексте российских требований, таких как 152-ФЗ о персональных данных или приказы ФСТЭК, знание своей сети — первый и обязательный шаг. Вы не можете защитить то, о существовании чего не подозреваете. Nmap помогает составить точную карту активов, что является основой для любого политики безопасности.

Ключевые возможности Nmap

  • Обнаружение хостов: Определение активных устройств в заданном диапазоне IP-адресов.
  • Сканирование портов: Выявление открытых TCP/UDP портов на целевых хостах.
  • Определение служб: Анализ откликов для идентификации типа и версии работающего ПО (веб-сервер, СУБД, SSH-демон).
  • Определение ОС: Пассивное и активное снятие отпечатка стека TCP/IP для предположения об операционной системе.
  • Расширяемость: Использование NSE (Nmap Scripting Engine) для автоматизации сложных проверок, от обнаружения уязвимостей до сбора дополнительной информации.

Основные команды и методы сканирования

Мощь Nmap заключается в гибкости. Одна и та же задача — например, найти открытый 80-й порт — может быть решена десятком способов, каждый из которых оставляет разный след в логах систем безопасности.

Базовые команды для начального анализа

# Обнаружение живых хостов (Ping-сканирование)
nmap -sn 192.168.1.0/24

# Быстрое сканирование наиболее популярных портов
nmap -F target_host

# Сканирование с определением версий служб
nmap -sV target_host

# Попытка определить операционную систему
nmap -O target_host

Выбор метода сканирования: баланс между скоростью, точностью и скрытностью

Разные методы используют особенности реализации TCP/IP стека. Выбор зависит от ваших прав, целей и необходимости оставаться незамеченным.

Метод и команда Принцип работы Когда использовать
TCP SYN-сканирование (-sS)
nmap -sS target
Отправляется SYN-пакет. Получение SYN/ACK означает, что порт открыт (после чего отправляется RST для разрыва). Отсутствие ответа или RST — порт закрыт или фильтруется. Стандартный метод при наличии прав root. Быстрый и относительно скрытный, так как полное соединение не устанавливается.
TCP Connect-сканирование (-sT)
nmap -sT target
Использует системный вызов connect() для полного трёхстороннего рукопожатия. Когда нет прав администратора. Легче обнаруживается, так как оставляет записи о установленных соединениях в логах целевой системы.
UDP-сканирование (-sU)
nmap -sU target
Отправляет пустой UDP-пакет на порт. Ответ ICMP «port unreachable» означает закрытый порт. Отсутствие ответа трактуется как «open|filtered». Для поиска DNS, DHCP, SNMP, NTP и других UDP-сервисов. Медленное и ненадёжное, но необходимое для полного аудита.
ACK-сканирование (-sA)
nmap -sA target
Отправляет TCP-пакет с установленным флагом ACK. Анализируется заголовок возвращаемого пакета RST для определения, фильтруется ли порт межсетевым экраном с отслеживанием состояния. Не для поиска открытых портов, а для картирования правил межсетевого экрана и понимания его логики.

Малоизвестный нюанс: скорость сканирования (-T0 до -T5) влияет не только на время. Агрессивное сканирование (-T4, -T5) может вызвать срабатывание систем обнаружения вторжений (СОВ) или даже привести к отказу в обслуживании уязвимых устройств. Для регулярного мониторинга своей сети часто достаточно -T3.

Zenmap: графическая оболочка и её реальная польза

Zenmap — это не просто GUI для тех, кто боится командной строки. Его главная ценность для специалиста — визуализация топологии сети и возможность быстрого сравнения результатов разных сканирований.

Интерфейс Zenmap с топологией сети
Zenmap позволяет визуализировать взаимосвязи между хостами

Предустановленные профили (вроде «Intense scan» или «Quick scan») — это, по сути, готовые командные строки. Их изучение — отличный способ понять, какие комбинации флагов решают типовые задачи. Однако для тонкой настройки под конкретную сетевую среду или для соблюдения требований к деликатности сканирования работа напрямую с консольным Nmap остаётся незаменимой.

NSE и поиск уязвимостей: скрипт Vulners и не только

Nmap Scripting Engine (NSE) превращает сканировщик из разведчика в аналитика. Скрипты могут делать что угодно: от вежливого извлечения заголовков HTTP-сервера до агрессивной проверки на наличие конкретной уязвимости.

# Проверка на распространённые уязвимости с помощью скрипта vulners
nmap -sV --script vulners target_host

# Запуск скриптов из категории "безопасность" (более осторожно)
nmap --script safe target_host

# Проверка конкретной уязвимости, например, связанной с SMB
nmap --script smb-vuln-* -p 445 target_host

Скрипт vulners работает по принципу сопоставления: он берёт определённую с помощью -sV версию службы (например, OpenSSH 7.4) и ищет для неё известные CVE в своей локальной базе. Это мощно, но имеет ограничения: во-первых, требуется точное определение версии, во-вторых, проверяются только публично известные уязвимости. Zero-day-атаки таким методом не обнаружить.

Критически важное предупреждение: Запуск скриптов, особенно из категорий exploit или dos, может нарушить работу целевых систем. В производственной среде всегда начинайте с категории safe или default. Любое активное сканирование должно проводиться только в рамках согласованного регламента и на системы, принадлежащие вам или находящиеся под вашим контролем по договору.

Практическое применение в контексте российского регулирования

Как Nmap помогает закрывать требования регуляторов?

  • Составление модели угроз (152-ФЗ, ФСТЭК): Первый шаг — идентификация активов. Nmap даёт точный список систем, их сетевых служб и потенциальных точек входа.
  • Контроль неизвестных подключений: Регулярное сканирование сегментов сети помогает выявить «теневые» IT-активы или несанкционированно подключённое оборудование, которое не проходит через систему управления конфигурациями.
  • Верификация политик межсетевых экранов: Сканирование извне периметра и изнутри позволяет убедиться, что правила фильтрации работают так, как задумано, и лишние порты действительно закрыты.
  • Подготовка к аттестации: Объективные данные о состоянии сетевых служб, полученные независимым инструментом, — это весомый аргумент для аудитора.

Пример рабочего процесса для внутреннего аудита:

# 1. Инвентаризация: что вообще есть в сети?
nmap -sn -oN inventory_scan.txt 10.0.0.0/24

# 2. Базовый портрет критичного сервера (деликатно)
nmap -sS -sV -O -T3 -p 1-1000,3306,5432,8080 -oN server_audit.txt critical_server

# 3. Проверка, что на пользовательских станциях не запущены серверные службы
nmap -sT -p 22,3389,5900 -oN user_stations.txt workstation_range

Ограничения и что Nmap не покажет

Понимание границ инструмента так же важно, как и знание его возможностей. Nmap — активный сканировщик. Он шлёт пакеты и анализирует ответы. Следовательно, он не увидит:

  • Устройства, игнорирующие ICMP и все TCP/UDP-пробы (строго сконфигурированные хосты).
  • Трафик на канальном уровне (L2) или детали коммутации.
  • Шифрованное содержимое передаваемых данных. Он может найти порт 443/TCP, но не расшифрует HTTPS-сессию.
  • Сложные логические уязвимости на уровне приложений (например, в бизнес-логике веб-приложения).

Поэтому Nmap — это мощнейший инструмент для сетевой разведки и базового аудита, но не серебряная пуля. Его данные необходимо дополнять результатами пассивного анализа трафика, сканирования веб-приложений и анализа конфигураций.

Итог: Nmap — это фундамент. Он задаёт систему координат для всей дальнейшей работы по безопасности. Умение интерпретировать его вывод, понимать разницу между «filtered» и «closed», осознавать последствия выбора метода сканирования — это навык, который отделяет администратора от архитектора безопасности. В условиях, когда сетевая периметрия усложняется, а требования к защите данных ужесточаются, слепая зона в вашей сети — это недопустимая роскошь. Nmap помогает эту слепую зону ликвидировать.

Оставьте комментарий