Пятница, 16 января

Nmap: Полное руководство по аудиту сетевой безопасности

0
10092

Nmap (Network Mapper) — это эталонный инструмент для сетевой разведки и сканирования. Для CISO, аналитиков и пентестеров он служит основным инструментом для легитимного аудита защищенности инфраструктуры, инвентаризации активов и проверки конфигураций. В рамках российского законодательства (187-ФЗ “О КИИ”, 152-ФЗ “О ПДн”, Приказ ФСТЭК №239) использование Nmap должно быть регламентировано внутренними документами и применяться строго для санкционированной оценки защищенности.

Для быстрого повседневного использования рекомендуем сохранить расширенный Cheatsheet по Nmap. В нем в табличном формате с практическими советами собраны команды для указания целей, выбора техник сканирования, обнаружения сервисов и использования NSE-скриптов.

Соответствие MITRE ATT&CK: Техники сканирования Nmap напрямую соотносятся с тактиками противника:

  • Reconnaissance (TA0043): Активное сканирование (T1595).

  • Discovery (TA0007): Обнаружение сетевых сервисов (T1046).

Использование этих техник защитниками позволяет выявить и устранить уязвимости до их эксплуатации злоумышленниками.

Часть 1: Основы. Установка и целеполагание

Установка:

Базовый синтаксис: nmap [Опции] {Цель}

Спецификация целей (Target Specification): Четкое определение границ сканирования — основа легитимности.

# Сканирование одного IP
nmap 192.168.1.1

# Сканирование диапазона IP
nmap 192.168.1.1-254

# Сканирование подсети (CIDR)
nmap 192.168.1.0/24

# Сканирование целей из файла (утвержденного списка)
nmap -iL targets.txt

# Исключение хоста из сканирования
nmap 192.168.1.0/24 --exclude 192.168.1.100

Часть 2: Техники сканирования и их применение в аудите

Обнаружение хостов (Host Discovery): Первый этап любой оценки — определение живых узлов.

# Только пинг-сканирование, без проверки портов
nmap -sn 192.168.1.0/24

# Отключить обнаружение хостов, сканировать все как активные (для обхода блокировки ping)
nmap -Pn 192.168.1.1

# ARP-сканирование в локальной сети (быстро и точно)
nmap -PR 192.168.1.1/24

Сканирование портов (Scan Techniques): Выбор метода зависит от задачи и прав.

# TCP SYN сканирование (умолчание с правами root). Быстрое и относительно скрытное.
nmap -sS 192.168.1.1

# TCP Connect сканирование (умолчание без root). Устанавливает полное соединение.
nmap -sT 192.168.1.1

# UDP сканирование (критично для DNS, SNMP, DHCP)
nmap -sU 192.168.1.1

# TCP ACK сканирование (для проверки правил файрвола)
nmap -sA 192.168.1.1

Спецификация портов (Port Specification): Точный контроль за тем, что сканируется.

# Сканирование определенного порта
nmap -p 22 192.168.1.1

# Сканирование диапазона портов
nmap -p 1-1000 192.168.1.1

# Сканирование нескольких конкретных портов
nmap -p 80,443,8080 192.168.1.1

# Сканирование смешанных TCP и UDP портов
nmap -p U:53,T:21-25,80 192.168.1.1

# Быстрое сканирование (топ-100 портов)
nmap -F 192.168.1.1

# Сканирование всех 65535 портов
nmap -p- 192.168.1.1

Часть 3: Сбор информации и анализ служб

Определение сервисов и версий (Service and Version Detection): Ключевой этап для поиска уязвимостей.

# Определение версий служб
nmap -sV 192.168.1.1

# Более интенсивное определение версий (уровень 9)
nmap -sV --version-all 192.168.1.1

# Определение операционной системы
nmap -O 192.168.1.1

# Агрессивное сканирование (-A = -O -sV -sC --traceroute)
nmap -A 192.168.1.1

Использование скриптов NSE (Nmap Scripting Engine): Автоматизация проверок.

# Запуск безопасных скриптов по умолчанию
nmap -sC 192.168.1.1

# Запуск конкретного скрипта (например, для получения баннера)
nmap --script=banner 192.168.1.1

# Запуск нескольких скриптов
nmap --script=http-title,ssl-enum-ciphers 192.168.1.1

# Запуск скриптов по категории (например, все безопасные)
nmap --script "safe" 192.168.1.1

# Полезные скрипты для аудита:
# Директори веб-приложения
nmap -p80 --script=http-enum 192.168.1.1

# Проверка конфигурации SSL/TLS
nmap -p443 --script=ssl-enum-ciphers 192.168.1.1

# Проверка SMB на наличие известных уязвимостей
nmap --script=smb-vuln* 192.168.1.1

# Брутфорс поддоменов (только для легитимного тестирования своих доменов!)
nmap --script=dns-brute domain.com

Часть 4: Управление производительностью и скрытностью

Тайминг и производительность (Timing and Performance): Настройка скорости сканирования.

# Шаблоны скорости (от T0 до T5)
nmap -T0 192.168.1.1  # Параноидально медленно (обход IDS)
nmap -T3 192.168.1.1  # Нормальная скорость (по умолчанию)
nmap -T5 192.168.1.1  # Максимально быстро
# Точный контроль скорости
nmap --min-rate 100 192.168.1.1  # Не менее 100 пакетов в секунду
nmap --max-rate 500 192.168.1.1  # Не более 500 пакетов в секунду

Обход систем защиты (Firewall/IDS Evasion): Тестирование корректности работы МЭ и систем обнаружения (только в санкционированных тестах!).

# Фрагментация пакетов
nmap -f 192.168.1.1

# Использование подставных IP-адресов (decoy)
nmap -D 192.168.1.101,192.168.1.102,ME 192.168.1.1

# Использование указанного исходного порта (например, 53 - DNS)
nmap -g 53 192.168.1.1

# Изменение размера пакетов
nmap --data-length 200 192.168.1.1

# Пример комплексной команды для тестирования IDS
nmap -f -T0 -n -Pn --data-length 200 -D 192.168.1.101,192.168.1.102 192.168.1.1

Часть 5: Практические сценарии для аудита безопасности

Сценарий 1: Ежеквартальная инвентаризация сети

# 1. Обнаружение всех активных хостов в подсети
nmap -sn -PR 192.168.42.0/24 -oN live_hosts.txt

# 2. Сканирование основных портов и версий служб на найденных хостах
nmap -sS -sV -O -F -iL live_hosts.txt -oA network_inventory

Цель: Поддержание актуальной CMDB, обнаружение несанкционированных устройств.

Сценарий 2: Аудит безопасности периметра (веб-сервер)

# Полная проверка веб-сервера
sudo nmap -sS -sV -sC -O -p- --top-ports 1000 -T4 server.company.ru -oX webserver_audit.xml

Цель: Проверка соответствия политике минимально необходимых портов, сбор данных о версиях ПО для анализа уязвимостей.

Сценарий 3: Глубокий внутренний аудит серверного сегмента

# Безопасное, но глубокое сканирование с ограничением нагрузки
sudo nmap -sS -sV -sC -O -p- --script "safe and not intrusive" 10.10.10.0/28 --max-rate 500 -oA internal_audit

Цель: Выявление слабых конфигураций, устаревших служб, подготовка к проверке регулятора.

Сценарий 4: Верификация правил файрвола

# Проверка, как файрвол обрабатывает различные порты
nmap -sA -p 22,80,443,3389 172.16.1.100 -oN firewall_test.txt

Цель: Подтверждение корректности настройки правил сетевого экранирования.

Сценарий 5: Быстрый поиск специфичных служб в большой сети

# Найти все веб-сервера (порты 80,443) в сети
nmap -p80,443 -sV -oG - --open 192.168.1.0/24 | grep "Ports:" | awk '{print $2}' > web_servers.txt

Часть 6: Обработка и документирование результатов

Форматы вывода (Output):

# Нормальный текстовый вывод
nmap -oN report.txt 192.168.1.1

# XML вывод (для обработки другими инструментами)
nmap -oX report.xml 192.168.1.1

# Grepable вывод (для скриптов)
nmap -oG report.grep 192.168.1.1

# Все форматы сразу
nmap -oA results 192.168.1.1

# Увеличение детализации вывода
nmap -v 192.168.1.1      # Подробный вывод
nmap -vv 192.168.1.1     # Очень подробный вывод
nmap --reason 192.168.1.1 # Показывать причину состояния портов

Обработка результатов:

# Конвертация XML в HTML для отчета
xsltproc nmap.xml -o nmap_report.html

# Сравнение результатов двух сканирований
ndiff scan1.xml scan2.xml > changes.diff

# Извлечение только открытых портов
grep "open" results.nmap | sort -t/ -k1 -n

Часть 7: Юридические аспекты и заключение

Критически важные правила:

  1. Санкционирование: Любое сканирование должно проводиться на основании письменного приказа или договора.

  2. Документирование: Все этапы и результаты должны фиксироваться для отчетности.

  3. Ограничение воздействия: Использовать --max-rate-T параметры для минимизации нагрузки.

  4. Избирательность: Не использовать агрессивные скрипты (brutedosexploit) без явной необходимости и дополнительного согласования.

Соответствие требованиям регуляторов:
Регулярное сканирование с помощью Nmap является практической реализацией требований ФСТЭК к проведению анализа защищенности и формированию Банка данных уязвимостей (БДУ).

Заключение:
Для CISO и специалистов по ИБ Nmap — не просто сканер, а инструмент управления рисками. Его методичное, регламентированное применение позволяет перейти от реактивного к проактивному управлению безопасностью, строя оборону на основе данных, а не предположений. Интеграция регулярного сканирования в цикл управления ИБ — признак зрелой security-культуры организации.

Теперь, когда вы знаете, как обнаружить открытые порты и сервисы, логично задаться вопросом: а что с ними делать дальше? Продолжая тему, в следующем разделе мы рассмотрим, как с помощью встроенных и пользовательских скриптов Nmap (NSE) определить конкретные версии ПО, найти известные уязвимости (CVE) и даже проверить конфигурации на типовые ошибки безопасности, что является критическим этапом для оценки реальных рисков.

Дополнительные ресурсы:

Заявление об ограничении ответственности:
Информация предоставлена исключительно в образовательных целях и для легитимного аудита безопасности. Автор не несет ответственности за любое неправомерное использование описанных техник.

Оставьте свой ответ