LIMB
Вход Регистрация

тема

От хаоса к системе: практическое руководство по сетевой разведке

gabarage · · 6 ответов · 208 просмотров

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

Опытные ребята работают принципиально иначе.
У них есть четкий подход и методы: сначала полный анализ целевой инфраструктуры, понимание архитектуры, выявление всех возможных точек входа.

Моя статья будет полезна как начинающим энтузиастам, с простой формой подачи материала и введению в курс, так и для более опытного контингента для закрепления знаний и умений. Надеюсь и те и те, что-то подчеркнут для себя полезного :)

Принцип простой - кто владеет бОльшим объемом информации о цели, тот контролирует ситуацию. База?
В реальных условиях задача состоит не в поиске одной уязвимости, а в построении комплексной картины защитных механизмов целевой системы.

  • Планирование - определение целей, ограничений и методов
  • Поэтапное выполнение: от пассивного сбора информации к активному зондированию
  • Тщательное документирование каждого шага и результата
В этой области импровизация неприемлема.
Методичность и системность — единственный способ получить качественные результаты и избежать обнаружения. В добавок сэкономит время, даже если вы довольно опытен.


Статистика и важность разведывательного этапа
Современные исследования показывают, что 85% успешных кибератак начинаются с продолжительного этапа разведки. Иногда уходят недели на изучение инфраструктуры, прежде чем предпринять первую попытку проникновения.

Основные цели разведки​

  • Составление полной карты внешних сервисов и приложений
  • Выявление используемых технологий для подбора специфичных методов атаки
  • Сбор информации об организационной структуре через публичные источники и поддомены

Структура доменных имен и их значение​

Доменное имя представляет собой иерархическую структуру, каждый уровень которой может содержать критически важную информацию.

Пример:
admin.staging.corp.example.com

  • .com — домен верхнего уровня
  • example — основной домен организации
  • corp — может указывать на корпоративное подразделение
  • staging — часто означает тестовую среду
  • admin — административная панель или интерфейс
Крупные организации могут иметь от 500 до 5000 поддоменов, многие из которых неизвестны даже внутренним IT-службам/отделам. Эти заброшенные поддомены часто становятся наиболее уязвимыми точками входа. Почему так много? — свои поддомены могут быть у каждого отдела или подразделения, для тестов и staging, API и различные микросервисы, внутренние инструменты и системы + региональные версии сайта и т.д.

Технические ограничения​

  • Теоретический максимум: 2^504 поддоменов
  • Хостинг-провайдеры обычно ограничивают 100-500 поддоменов на тарифный план
  • DNS-серверы поддерживают до 16,777,216 объектов на зону (BIND)

DNS как источник разведывательных данных​

Domain Name System содержит множество типов записей, каждая из которых предоставляет специфичную информацию:
  • A/AAAA записи — связывают доменные имена с IP-адресами (IPv4/IPv6)
  • CNAME записи — создают псевдонимы, могут раскрывать внутреннюю архитектуру
  • MX записи — определяют почтовые серверы организации
  • NS записи — указывают авторитетные DNS-серверы (критичны для атак переноса зон)
  • PTR записи — обратное разрешение, может раскрыть схемы именования
Каждый DNS-запрос потенциально раскрывает часть общей картины инфраструктуры.

Не удалось прогрузить медиа

(CNN как пример)

Практическая реализация: пошаговая разведка​


Этап 1: Пассивный сбор поддоменов​

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

На этом этапе используются такие инструменты, как Subfinder, Amass, а также запросы к Certificate Transparency. 
Их задача — максимально полно выявить все публичные и скрытые поддомены, связанные с исследуемым доменом. 
DNS-брутфорс помогает найти неочевидные поддомены, а vhost-сканирование — раскрыть виртуальные хосты серверов, часто используемых для обслуживания разных сервисов на одном IP-адресе.
Subfinder и Amass — инструменты автоматизированного перечисления поддоменов, представляющие собой первую линию пассивной разведки. Исследования показывают, что современные подходы к сбору поддоменов комбинируют пассивную и активную методологии для максимального покрытия. Пассивная разведка позволяет собирать данные без прямого взаимодействия с инфраструктурой цели, минимизируя риск обнаружения.
Bash:
subfinder -d example.com -o subdomains.txt -silent

Для получения расширенной информации:
Bash:
subfinder -d example.com -oJ subdomains.json -v -all

Параметр -all активирует все доступные источники данных, включая:
  • Certificate Transparency логи
    (Certificate Transparency — использование публичных логов SSL/TLS сертификатов стало основой современной OSINT-разведки. Академические исследования подтверждают, что CT-логи предоставляют богатый источник информации о доменах, которые могли существовать в прошлом, но больше не доступны через традиционные DNS-запросы.)
  • DNS-агрегаторы
  • Поисковые системы
  • Архивы веб-страниц
Amass предоставляет более комплексный подход:
Bash:
amass enum -passive -d example.com -o amass_passive.txt -timeout 30
Для активной разведки с DNS-перечислением:
Bash:
amass enum -active -d example.com -o amass_active.txt -brute -w /usr/share/wordlists/dns/subdomains-top1mil.txt
Дополнительные параметры Amass:
-timeout — управление временем ожидания
-max-dns-queries — ограничение нагрузки на DNS
-src — отображение источников данных


Этап 2: DNS-брутфорс и его автоматизация​

Успешный DNS-брутфорс может обнаружить "забытые" поддомены типа old-staging-cicd-blackbox.example.com, которые часто оказываются тестовыми площадками с ослабленной защитой или дефолтными паролями. Каждый найденный поддомен становится потенциальной точкой входа в инфраструктуру организации.

Gobuster с настройкой производительности:
Bash:
gobuster dns -d example.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -t 50 -q
Расширенная конфигурация:
Bash:
gobuster dns -d example.com -w custom_wordlist.txt -t 100 --timeout 10s --wildcard -o gobuster_results.txt
Параметры оптимизации:

  • -t — количество потоков (рекомендуется 30-50 для стабильности)
  • --timeout — таймаут DNS-запросов
  • --wildcard — обработка wildcard-записей
  • -q — тихий режим для автоматизации
Пример результата:
Code:
Found: mail.example.com
Found: dev.example.com
Found: api.example.com
Found: staging-v2.example.com
Found: jenkins.internal.example.com
Современные инструменты вроде Gobuster или Amass позволяют настраивать количество потоков, таймауты, размер словарей и другие параметры для оптимизации скорости и скрытности сканирования. Это превращает ручной процесс в автоматизированную систему разведки.


Этап 3: Поиск виртуальных хостов​

Виртуальные хосты (Virtual Host Discovery — vhost) позволяют размещать несколько веб-сайтов на одном IP-адресе, используя заголовок Host (HTTP).

Помимо gobuster, есть еще практические инструменты:

  • ffuf — гибкая настройка фильтрации ответов
  • dirsearch — может работать в режиме vhost discovery
  • Custom scripts — для специфичных случаев
Gobuster в режиме vhost:
Bash:
gobuster vhost -u https://target.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -t 30
ffuf с фильтрацией:
Bash:
ffuf -u https://target.com -H "Host: FUZZ.target.com" -w subdomains.txt -fc 404,403 -fs 1234 -t 100
Дополнительные техники фильтрации:
Bash:
# Фильтрация по размеру ответа
ffuf -u https://target.com -H "Host: FUZZ.target.com" -w wordlist.txt -fs 615,1234

# Фильтрация по количеству слов
ffuf -u https://target.com -H "Host: FUZZ.target.com" -w wordlist.txt -fw 97

# Матчинг по регулярному выражению
ffuf -u https://target.com -H "Host: FUZZ.target.com" -w wordlist.txt -mr "admin|login|dashboard"
Поиск виртуальных хостов критически важен, поскольку один IP-адрес может скрывать десятки различных веб-приложений, многие из которых остаются невидимыми при стандартном сканировании и часто содержат административные панели, тестовые среды или API с ослабленными настройками безопасности.


Этап 4: Верификация и анализ веб-сервисов​

Верификация и анализ веб-сервисов — это этап разведки, направленный на подтверждение активности обнаруженных хостов и сбор детальной информации о работающих на них веб-приложениях, технологиях и потенциальных точках входа.
httpx для комплексной проверки:

Bash:
httpx \
-l subdomains.txt \
-o live_hosts.txt \
-tech-detect \
-status-code \
-title \
-content-length \
-follow-redirects
  • -l subdomains.txt — список поддоменов
  • -o live_hosts.txt — файл с живыми хостами
  • -tech-detect — определение технологий (сервер, фреймворк и т. д.)
  • -status-code — вывод HTTP-кодa ответа
  • -title — захват заголовка страницы
  • -content-length — размер тела ответа
  • -follow-redirects — отслеживание перенаправлений
Bash:
httpx -l subdomains.txt -o live_hosts.txt -tech-detect -status-code -title -content-length -follow-redirects
Расширенный анализ:
Bash:
httpx -l subdomains.txt -ports 80,443,8080,8443,9000,3000,8888 -path /admin,/login,/api/v1 -mc 200,301,302,401,403 -o detailed_scan.txt
Пример вывода:
Code:
https://api.example.com [200] [nginx/1.18.0] [API Gateway v2.1]
https://admin.example.com [Apache/2.4.41] [Admin Panel]
https://dev.example.com [Express] [Development Environment]
Расширенная команда:
Bash:
httpx \
-l subdomains.txt \
-ports 80,443,8080,8443,9000,3000,8888 \
-path /admin,/login,/api/v1 \
-mc 200,301,302,401,403 \
-o detailed_scan.txt
  • -ports — перечисление портов для опроса
  • -path — список URL-путей для проверки
  • -mc — фильтрация по HTTP-кодам
  • -o detailed_scan.txt — файл с расширенными результатами
Эти команды позволяют отфильтровать не только живые сервисы, но и собрать подробную информацию о каждом, выделяя наиболее значимые цели для анализа.


Этап 5: Расширенное сканирование портов
Пассивные методы через Shodan
​

Базовые поисковые запросы:
Bash:
shodan search "org:\"Target Organization\""
shodan search "net:192.168.1.0/24"
shodan search "hostname:example.com"
Эти команды находят все устройства, связанные с организацией, без отправки пакетов к цели, используя данные крупнейшего индекса устройств Shodan.

Специализированные поиски:
Bash:
shodan search "org:\"Target Corp\" port:22"
shodan search "org:\"Target Corp\" has_screenshot:true"
shodan search "ssl.cert.subject.cn:example.com"
  • Первый — все SSH-серверы.
  • Второй — все с интернет-интерфейсом.
  • Третий — сервисы с SSL-сертификатами домена.

Censys для анализа сертификатов​

Bash:
censys search certificates "names:example.com"
censys search ipv4 "autonomous_system.organization:\"Target Corp\" and services.service_name:HTTP"

Активное сканирование с Nmap
Полное TCP-сканирование:
​

Bash:
nmap -sS -T4 -p- target.com --max-retries 2 --max-scan-delay 20ms
  • -sS — SYN-сканирование
  • -T4 — агрессивный тайминг
  • -p- — все 65535 портов
  • --max-retries 2 — максимум 2 повтора
  • --max-scan-delay 20ms — ограничение задержки
Детальное сканирование:
Bash:
nmap -sS -sV -sC -T4 -p 22,80,443,8080,8443 target.com -oA nmap_results
  • -sV — определение версий
  • -sC — скрипты
  • -oA — сохранить во всех форматах
UDP-сканирование:
Bash:
nmap -sU -T4 -p 53,69,123,161,162,500,1434,1900 target.com --max-retries 1
  • 53 (DNS), 69 (TFTP), 123 (NTP), 161/162 (SNMP), 500 (IPSec), 1434 (SQL Server), 1900 (UPnP)

Техники обхода защитных систем​

Фрагментация пакетов:
Bash:
nmap -f -sS target.com
Использование decoy-адресов:
Bash:
nmap -D 192.168.1.100,192.168.1.101,ME,192.168.1.102 target.com
Варьирование исходного порта:
Bash:
nmap --source-port 53 target.com
Управление временными интервалами:
Bash:
nmap --scan-delay 1s --max-scan-delay 10s target.com


Этап 6: Сбор информации о сервисах​

Автоматизированный banner grabbing
Bash:
nmap -sV --version-intensity 9 target.com \
-p 21,22,23,25,53,80,110,143,443,993,995
Ручной сбор баннеров
Bash:
telnet target.com 80  # HTTP
telnet target.com 25  # SMTP
timeout 5 nc target.com 22  # SSH
openssl s_client -connect target.com:443 -servername target.com
HTTP-заголовки и технологии:
Bash:
curl -I -s -k https://target.com
curl -I -s -k https://target.com -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
curl -X OPTIONS -i https://target.com/api/
curl -X TRACE -i https://target.com


Этап 7: Интеграция и анализ данных​

Консолидация результатов и их анализ​

Объединение списков поддоменов:
Bash:
cat subfinder_results.txt amass_results.txt gobuster_results.txt | sort -u | tee all_subdomains.txt
Проверка активности хостов:
Bash:
httpx -l all_subdomains.txt -o verified_hosts.txt -mc 200,301,302,401,403,500 -timeout 10
Массовое сканирование портов:
Bash:
nmap -iL verified_hosts.txt -T4 -sS --top-ports 1000 -oA mass_scan

Анализ результатов:

  • Поиск административных панелей:
Bash:
grep -i "admin\|login\|panel\|dashboard" verified_hosts.txt
  • Выделение нестандартных портов:
Bash:
awk '{print $2}' mass_scan.gnmap | grep -v "80\|443" | sort -u
  • Анализ HTTP-заголовков:
Bash:
grep -i "server:\|x-powered-by:\|x-generator:" http_headers.txt


Этап 8: Техники обхода защитных механизмов​

Разбиение целей и параллелизация​

Bash:
# Разбиение списка targets.txt на файлы по 50 строк
split -l 50 targets.txt target_chunk_

# Для каждого чанка запускаем Nmap с задержкой между запусками
for chunk in target_chunk_*; do
  nmap -iL "$chunk" -T2 --max-scan-delay 5s &
  sleep 60
done

Использование прокси-серверов​

Bash:
# Через Tor
proxychains nmap -sS target.com

# Через HTTP-прокси в Gobuster
gobuster dns -d target.com -w wordlist.txt --proxy http://proxy:8080

Randomization: путаница для IDS/IPS​

Bash:
nmap --randomize-hosts targets.txt -p 80,443,8080 --max-hostgroup 1
nmap --scan-delay "$(shuf -i 1-10 -n 1)s" target.com

Продвинутые методы и автоматизация​

Bash-скрипт для комплексной разведки
Bash:
#!/bin/bash
DOMAIN=$1
OUT=results/$DOMAIN
mkdir -p "$OUT"

# Пассивная разведка
subfinder -d "$DOMAIN" -o "$OUT/subfinder.txt" -silent
amass enum -passive -d "$DOMAIN" -o "$OUT/amass.txt" -timeout 15

# Активная разведка
gobuster dns -d "$DOMAIN" \
-w /usr/share/wordlists/dns/subdomains.txt \
-t 30 -o "$OUT/gobuster.txt" -q

# Консолидация поддоменов
cat "$OUT"/*.txt | sort -u > "$OUT/all_subs.txt"

# Верификация живых хостов
httpx -l "$OUT/all_subs.txt" -o "$OUT/live.txt" -silent

# Сканирование портов
nmap -iL "$OUT/live.txt" -T4 -sS --top-ports 100 -oA "$OUT/nmap"

Структурированное документирование результатов​

Bash:
# Начинаем отчет
echo "# Разведка домена: $DOMAIN" > report.md

# Количество найденных поддоменов
echo "## Поддомены: $(wc -l < results/$DOMAIN/all_subs.txt)" >> report.md

# Количество живых хостов
echo "## Live hosts: $(wc -l < results/$DOMAIN/live.txt)" >> report.md

# Открытые и фильтрованные порты
echo "## Порты:" >> report.md
grep -E "open|filtered" results/$DOMAIN/nmap.nmap >> report.md

Какой наш итог по проделанной работе? Давайте разберем, что же мы тут собрали для нашей разведки:

Сбор данных:

  • Выполнен пассивный поиск через несколько источников (Subfinder, Amass, Certificate Transparency)
  • Проведен DNS-брутфорс с использованием качественных словарей
  • Найдены виртуальные хосты через vhost-сканирование
  • Все результаты консолидированы и дедуплицированы
Верификация:
  • Проверена активность всех обнаруженных поддоменов
  • Выполнено сканирование стандартных и нестандартных портов
  • Собраны баннеры сервисов и версии ПО
  • Проанализированы HTTP-заголовки и технологии
Анализ:
  • Выявлены потенциально устаревшие или уязвимые сервисы
  • Отмечены необычные или подозрительные ответы сервисов
  • Зафиксированы признаки honeypot'ов или системы обнаружения
  • Составлена карта инфраструктуры для дальнейшего анализа
Документирование:
  • Все команды и их результаты сохранены
  • Создан структурированный отчет с ключевыми находками
  • Результаты готовы для передачи на следующий этап тестирования

Заключение​

Профессиональная сетевая разведка требует не только знания инструментов, но и понимания методологии их применения. 
Системный подход, тщательное документирование и постоянная адаптация к новым защитным механизмам.
В подведенных итогах довольно качественный и полный предварительный «рекон» (Reconnaissance), от которого дальше можно «плясать» к более глубокой автоматизированной и ручной проверки уязвимостей, эксплуатации и т.д. и т.п.

Современные методы защиты эволюционируют быстро, поэтому требуется постоянно совершенствовать свои навыки и инструментарий. Только комплексный и методичный подход к разведке гарантирует получение полной картины целевой инфраструктуры и создает надежную основу для последующих этапов тестирования на проникновение.

Написано исключительно в познавательных целях. На научный подход не претендует. 
Использование практик из статьи в злых умыслах преследуется по закону.
Специально для Duty-Free.cc 


Не удалось прогрузить медиа
👍20 🔥3 👏4
Годно! Хотелось бы почитать продолжение особенно если дальше заход уже непосредственно в инфру.
👍2
ОтветMonaliza

Годно! Хотелось бы почитать продолжение особенно если дальше заход уже непосредственно в инфру.

Привет! Благодарю! Если зайдет, то вполне себе. Если наперед забежать, пишу уже про веб-архивы, а точнее про параметры которые могли быть забыты + автоматизацию. Затрону поиск скрытых файлов и директорий, параметров и как все это более грамотнее фильтровать и приоритизировать под себя и конкретные задачи. Примерно такой шаблон. Добавлю мб еще чего, посмотрю по наполненности, что из этого выйдет...
👍3
Было бы интересно собрать скрипт который соберет в себе эти все этапы :)
👍1
Ответadraosi

Было бы интересно собрать скрипт который соберет в себе эти все этапы :)

Привет, в последнем этапе (8) +/- то что пригодится точно для начала)
👍1
От себя закину, сервисы по которым я смотрю поддомены/айпишники, историю сайта

SecurityTrails | SecurityTrails: Data Security, Threat Hunting, and Attack Surface Management Solutions for Security Teams

SecurityTrails enables you to explore complete current and historical data for any internet assets. IP & DNS history, domain, SSL and Open Port intelligence made easy
Не удалось прогрузить медиа
securitytrails.com

Subdomain Finder - C99.nl

Subdomain Finder is a scanner that scans an entire domain to find as many subdomains as possible.
Не удалось прогрузить медиа
subdomainfinder.c99.nl

Справляются на ура, и наверное лучшие в своем деле
👍5 ❤️1
Детально и доходчиво, отличный материал. Хотелось бы увидеть в таком исполнении и автоматизацию всего этого ресерч-процесса, полагаю, будет интересно (=
👍1

Гостевой просмотр. Чтобы отвечать и ставить реакции, войдите или зарегистрируйтесь.