Среда, 14 января

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

0
17737

В арсенале современного CISO Nmap (Network Mapper) занимает особое место. Это не просто «хакерский» сканер, а легитимный, стандартизированный инструмент для проактивного управления рисками информационной безопасности. Его правильное применение позволяет трансформировать сырые сетевые данные в основанные на фактах управленческие решения, обеспечивая выполнение требований ФСТЭК, ФСБ и отраслевых стандартов.

Данный материал предполагает, что вы уже знакомы с базовыми возможностями Nmap, такими как определение хостов и сканирование портов. Если вам нужно освежить знания об основных типах сканирования (-sS-sU) и ключевых опциях, рекомендуем начать с нашей предыдущей статьи «Nmap: Полное руководство для специалиста по безопасности».

Подробный справочник по всем основным командам, техникам сканирования и опциям Nmap собран в Cheatsheet по Nmap для пентеста.

Главная ценность Nmap для CISO заключается в двух взаимосвязанных аспектах:

  1. Глубокое понимание состояния сети через интерпретацию статусов портов.

  2. Автоматизированное выявление уязвимостей и векторов атаки с помощью скриптового движка NSE (Nmap Scripting Engine).

Это руководство объединяет оба аспекта, предоставляя методику для комплексного аудита защищенности.

Часть 1: Философия Nmap — 6 состояний порта как язык безопасности

Первое, что видит специалист в отчете Nmap — это состояние порта. Это не техническая деталь, а базовый язык, на котором инфраструктура сообщает о своей конфигурации и уязвимостях. Умение читать этот язык — фундаментальный навык для аналитика ИБ.

Шесть состояний порта: от теории к практике управления рисками

В отличие от примитивных сканеров, Nmap детализирует картину, классифицируя порты на шесть состояний. Каждое состояние — это индикатор определенного класса рисков.

1. Открыт (open)

  • Что значит: На порту работает приложение, готовое принимать соединения.

  • Риск для CISO: Прямая точка входа для легитимного сервиса или злоумышленника. Каждый открытый порт увеличивает поверхность атаки.

  • Пример из отчета: 80/tcp open http. Это ожидаемо для веб-сервера.

  • Тревожный пример: 3389/tcp open ms-wbt-server (RDP) на сервере в сегменте баз данных. Это прямое нарушение принципа сегментации.

  • Решение CISO: Сформировать поручение на аудит необходимости каждого открытого порта и его доступности (правила МЭ).

2. Закрыт (closed)

  • Что значит: Порт доступен (хост отвечает), но служба на нем не запущена.

  • Риск для CISO: Сам по себе риск невысок, но является индикатором доступности хоста. Большое количество закрытых портов при сканировании с -Pn подтверждает, что хост жив, даже если отключен ICMP (пинг). Эта информация используется злоумышленником для фингерпринтинга (MITRE ATT&CK T1590.008).

  • Пример: При сканировании -p- (все порты) видно: 1-79/tcp closed81-442/tcp closed444-65535/tcp closed.

3. Фильтруется (filtered)

  • Что значит: Между сканером и портом есть сетевое препятствие (МЭ, ACL), которое блокирует или отбрасывает пакеты. Nmap не получает ответа.

  • Риск для CISO: Это не риск, а признак работы защитных механизмов. Однако статус filtered на портах, которые должны быть доступны, указывает на возможные ошибки конфигурации МЭ, нарушающие бизнес-процессы.

  • Пример анализа периметра:

    nmap -sS -p 22,443,8080 company.com

    Вывод: 443/tcp open22/tcp filtered8080/tcp filtered.
    Вывод CISO: Веб-доступ (443) разрешен. SSH (22) и тестовый сервис (8080) защищены файрволом периметра — корректная базовая настройка.

4. Не фильтруется (unfiltered)

  • Что значит: Порт доступен для Nmap (получен ответ RST), но невозможно определить, открыт он или закрыт. Чаще всего возникает при ACK-сканировании (-sA).

  • Риск для CISO: Ключевой индикатор для проверки типа файрвола. Статус unfiltered на порту, который должен быть защищен, может означать, что файрвол не является stateful (не отслеживает состояния соединений) и пропускает ACK-пакеты.

  • Практическая проверка:

    # Проверяем порт 45678, который должен быть закрыт для всех
    nmap -sA -p 45678 internal-server

    Тревожный вывод: 45678/tcp unfiltered. Возможна недостаточная конфигурация МЭ.
    Нормальный вывод: Для stateful-файрвола порт должен быть filtered.

5. Открыт|Фильтруется (open|filtered)

  • Что значит: Nmap не может различить два сценария: порт открыт, но не отвечает или пакеты фильтруются. Типично для UDP-сканирования (-sU) и «стелс-сканирований» (FIN, Xmas).

  • Риск для CISO: Неоднозначность, требующая дальнейшего исследования. Может маскировать реально работающие, но «тихие» UDP-сервисы (например, DNS, SNMP).

  • Пример и решение:

    nmap -sU -p 161 target-host

    Вывод: 161/udp open|filtered.
    Действие CISO: Санкционировать уточняющую проверку с помощью NSE: nmap -sU -p 161 --script snmp-info target-host.

6. Закрыт|Фильтруется (closed|filtered)

  • Что значит: Наиболее редкий статус. Возникает только при Idle-сканировании (-sI).

  • Контекст для CISO: Применение этой техники в легальном аудите крайне ограничено, но понимание статуса важно для анализа разведданных о возможных методах противника (MITRE ATT&CK T1596).

Вывод по статусам: Разница между openfiltered и closed для CISO — это разница между прямой угрозой, работающим рубежом обороны и нейтральной информацией. Без этого понимания данные сканирования бесполезны.

Часть 2: Nmap Scripting Engine (NSE) — автоматизация глубокого аудита по фазам атаки

NSE — это то, что превращает Nmap из разведчика в универсального солдата. Более 600 скриптов позволяют автоматизировать проверки на всех этапах кибер-убийцы, что идеально соответствует превентивной логике CISO.

Стратегическая карта NSE-скриптов для управления ИБ

Для удобства планирования аудита скрипты сгруппированы по тактикам MITRE ATT&CK.

 
Фаза MITRE ATT&CK / Цель аудита Ключевые NSE-скрипты Что выявляет и практическая польза для CISO
Reconnaissance (Разведка) dns-brutewhois-iphttp-robots.txt Скрытые субдомены, публичная информация об активах. Помогает составить полную карту периметра, найти «теневые» активы.
Discovery (Обнаружение) smb-enum-shareshttp-enumsnmp-info Незащищённые сетевые ресурсы, открытые директории, публичный SNMP. Прямое нарушение политик сегментации и минимальных прав.
Credential Access (Доступ к учетным данным) ftp-brutessh-brutehttp-default-accounts Службы со слабыми паролями или учетными данными по умолчанию. Простой вектор для начального заражения.
Vulnerability Assessment (Оценка уязвимостей) vulnssl-enum-ciphersvulners Прямое сопоставление версий ПО с CVE, слабые криптоалгоритмы. Основа для плана исправлений и приоритизации.
Lateral Movement (Горизонтальное перемещение) smb-enum-sessionssmb-enum-users Активные сессии пользователей, списки учетных записей. Показывает пути возможного распространения угрозы внутри сети.

Практическое применение NSE-скриптов на разных этапах

Этап 1: Пассивная и активная разведка периметра

Задача CISO: Обнаружить все активы организации, включая забытые и неучтенные.

  • Скрытый субдомен — будущая точка входа:

    nmap -sn --script dns-brute --script-args dns-brute.domainlist=subdomains.txt example.com

    Что может найти: dev.old.example.com (забытый тестовый сервер), vpn.backup.example.com (устаревший шлюз).
    Вывод для CISO: Эти хосты, вероятно, не попадают в циклы обновления и аудита. Риск: Критический. Требуется немедленная инвентаризация и либо включение в процессы ИБ, либо вывод из эксплуатации.

  • Утечка данных через публичные ресурсы:

    nmap -p 445,80 --script=smb-enum-shares,http-enum 192.168.1.0/24

    Типичная находка:

    Sharename: \\FILESRV\HR_Documents
    | Path: C:\Shares\HR\
    | Anonymous access: READ
    Вывод для CISO: Прямое нарушение принципа наименьших привилегий и возможное нарушение 152-ФЗ «О персональных данных». Необходимо срочное изменение прав доступа и аудит логов на предмет уже состоявшихся несанкционированных обращений.

Этап 2: Проактивный поиск уязвимостей и слабых мест

Задача CISO: Найти и устранить уязвимости до их эксплуатации.

  • Автоматизированный поиск известных CVE:

    nmap -sV --script=vulners --script-args mincvss=7.0 192.168.1.50

    Результат (пример):

    | vulners:
    | Apache httpd 2.4.49:
    | CVE-2021-41773 9.8 (Critical) PATH traversal
    | OpenSSL 1.1.1k:
    | CVE-2021-37165 7.5 (High) Buffer overflow
    Вывод для CISO: Система содержит критическую и высокую уязвимости. Данные из Nmap должны автоматически создавать инцидент в тикет-системе с высоким приоритетом. Это основа для выполнения требований п. 19 Приказа ФСТЭК № 239 о немедленном устранении критических уязвимостей.

  • Аудит криптографической стойкости:

    nmap -p 443,465,993 --script=ssl-enum-ciphers mail.example.com

    Результат (пример):

    TLSv1.0: enabled (weak)
    | TLS_RSA_WITH_3DES_EDE_CBC_SHA (weak)
    Вывод для CISO: Использование небезопасных протоколов на почтовом сервере создает риск перехвата конфиденциальной переписки. Нарушает стандарты PCI DSS и рекомендации ФСТЭК. Требуется план перевода служб на TLS 1.2+.

Этап 3: Анализ риска компрометации учетных записей

Задача CISO: Оценить устойчивость систем к атакам на аутентификацию.

  • Общедоступные сервисы — «открытые двери»:

    nmap -p 21 --script=ftp-anon,ftp-brute 192.168.1.100

    Результат (пример):

    | ftp-anon: Anonymous FTP login allowed
    | -r--r--r-- 1 owner group 54321 Feb 28 config_backup.tar
    Вывод для CISO: Анонимный доступ к FTP с возможностью скачивания файлов конфигурации — прямой инцидент. Необходимо: 1) Немедленно отключить анонимный доступ. 2) Провести анализ данного хоста на предмет уже состоявшейся компрометации. 3) Пересмотреть политики безопасности для всех сервисов.

Часть 3: Сводный практикум — Сценарии для CISO и команды ИБ

Сценарий А: Расследование инцидента после срабатывания IDS

  1. Факт: IDS зафиксировала сканирование портов с внешнего адреса X на хост Y.

  2. Действие ИБ: Провести контролируемое внутреннее сканирование атакованного хоста для оценки ущерба.

    nmap -sS -sV -O -p- --reason --script="vuln and safe" host-Y.internal -oA incident_scan
  3. Анализ отчета:

    • 22/tcp open ssh syn-ack — Вывод: SSH доступен. Сравнить с правилами МЭ: должен ли он быть доступен из сегмента, откуда пришла атака?

    • 445/tcp filtered microsoft-ds no-response — Вывод: SMB защищен файрволом. Хорошо.

    • Скрипт vulners обнаружил CVE-2023-12345 на веб-сервере.

  4. Итоговое решение CISO: 1) Внести изменение в МЭ для сегментации SSH. 2) Выдать задачу на закрытие CVE. 3) Добавить сигнатуру сканирования из отчета Nmap в правила IDS для улучшения детектирования.

Сценарий Б: Регулярный плановый аудит сегмента сети на соответствие ФСТЭК

  1. Цель: Проверить сегмент серверов (10.10.10.0/28) на соответствие политикам.

  2. Комплексная команда аудита:

    nmap -sS -sV -O -p- --script="(discovery or safe) and not intrusive" \
    --script-args http-enum.category=general,smb-enum-shares.timeout=5s \
    10.10.10.0/28 --max-rate 500 -oX compliance_audit_$(date +%Y%m%d).xml
  3. Формирование отчета: Конвертировать XML в HTML: xsltproc compliance_audit_*.xml -o report.html.

  4. Анализ для регулятора: Отчет показывает: 1) Полный перечень активов. 2) Все открытые порты с обоснованием (сервис+версия). 3) Отсутствие анонимного доступа к общим ресурсам (скрипт smb-enum-shares). 4) Отсутствие критических уязвимостей (скрипт vuln). Это — доказательная база выполнения требований.

Заключение: Nmap в системе управления безопасностью организации

Для CISO Nmap — это система сбора объективных данных об истинном состоянии защищенности. Последовательное применение методологии, описанной в этом руководстве, позволяет:

  1. Управлять, а не гадать: Перейти от интуитивных решений к решениям, основанным на данных сканирования и интерпретации статусов.

  2. Соответствовать регуляторам: Автоматически формировать доказательную базу для ФСТЭК, ФСБ и внутреннего аудита.

  3. Действовать проактивно: Находить и устранять векторы атак (открытые порты, уязвимости, слабые настройки) до их использования злоумышленниками.

  4. Говорить на одном языке: Предоставить команде ИБ четкую, структурированную методику для регулярного аудита.

Внедрение этой практики в циклы управления ИБ (Plan-Do-Check-Act) — это признак зрелой security-культуры, где безопасность является не затратной статьей, а инвестицией в устойчивость бизнеса.

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