Перейти к основному содержимому

Инструменты Kali и сбор информации

Инженеру Тестировщику

Раздел 8.10, шаг 3 из 9. Предыдущий — процессы; далее — сканирование и брутфорс.


Теория разведки в пентесте

Разведка (reconnaissance) — первый технический этап после подписания scope. Цель — построить карту поверхности атаки: домены, IP, сервисы, технологии, сотрудники, утечки. Без recon пентестер стреляет вслепую; с качественным recon — приоритизирует время на слабые места.

В модели MITRE ATT&CK reconnaissance включает тактики:

ТактикаПримерPassive / Active
Active Scanningnmap, скан портовActive
Gather Victim Host InformationWHOIS, DNSPassive
Gather Victim Identity Informatione-mail, LinkedInPassive
Gather Victim Network InformationBGP, ASNPassive
Search Open Technical DatabasesShodan, GitHubPassive
Phishing for Informationчасто out of scopeActive

Разведка делится на passive (без прямого взаимодействия с инфраструктурой цели) и active (пакеты и запросы на системы в scope). Заказчик может запретить active scan в prod в рабочее время — это фиксируют в Statement of Work.

Цикл обработки разведданных

Нормализация — приведение www.example.com, example.com:443 и 93.184.216.34 к единым записям. Инструменты вроде dnsx, httpx и таблицы в spreadsheet экономят часы на ручной сверке.

DNS как источник intelligence

DNS (Domain Name System) — распределённая база имён. Для пентестера важны типы записей:

ТипСодержимоеЗачем пентестеру
A / AAAAIPv4 / IPv6Точки входа, обход CDN
CNAMEПсевдонимЧасто S3, Azure, legacy
MXПочтовые серверыФишинг если в scope, SPF/DMARC audit
TXTSPF, DKIM, verificationПоддомены верификации, misconfig
NSAuthoritative NSПеренос зоны (редко), sub takeover
SRVСервисы (_ldap, _sip)AD, VoIP
CAAРазрешённые CAПолитика сертификатов

Zone transfer (AXFR) — если NS misconfigured и отдаёт полную зону:

dig AXFR example.com @ns1.example.com

Успешный AXFR — критичная находка (полный список поддоменов).

Subdomain takeover — CNAME указывает на освобождённый ресурс (старый S3 bucket, Heroku). Пассивная recon через crt.sh может выявить dev.example.comdead.herokuapp.com.


Сетевое перечисление

Network enumeration — построение карты хостов, портов и сервисов в scope. Идёт после passive OSINT (когда уже есть домены/IP) и только с разрешения.

Host discovery

Перед полным сканом портов — кто живой:

nmap -sn 192.168.56.0/24
fping -a -g 192.168.56.0/24 2>/dev/null
sudo arp-scan --localnet
МетодУровеньКогда
ICMP ping sweepL3Без жёсткого firewall
ARP scanL2Тот же broadcast domain
TCP ACK/SYN pingL4ICMP filtered (-Pn на всём скане)

Перечисление портов и сервисов

Стратегия layered scan (быстрее и тише, чем -p- сразу):

  1. Top 1000 TCP (nmap -sV -T4 target).
  2. Full TCP на интересных хостах (-p-).
  3. UDP top 100 на DNS/SNMP/SNMP (-sU --top-ports 100).
nmap -sS -sV -O -oA recon/target 10.0.0.5
masscan 10.0.0.0/24 -p1-65535 --rate 5000 # только с approval

Перечисление в AD-среде (internal)

ПротоколИнструментДанные
LDAPldapsearch, windapsearchUsers, groups, computers
SMBenum4linux, crackmapexecShares, sessions
RPCrpcclientUser enum (legacy)
DNSdig SRV _ldap._tcp.dc._msdcsDC location

Детали AD — ст. 8.

SNMP и другие «забытые» UDP

SNMP (161/udp) с community public — таблицы маршрутизации, процессы, иногда credentials in MIB.

onesixtyone -c /usr/share/doc/onesixtyone/dict.txt 192.168.56.0/24
snmpwalk -v2c -c public 192.168.56.1

Снятие отпечатков (fingerprinting)

Fingerprinting — определение версии и типа системы без полной эксплуатации.

Стек TCP/IP и ОС

Nmap OS detection (-O) сравнивает ответы на зонды с сигнатурной базой. Точность ~80–90%; VM и firewall вводят ошибки.

nmap -O --osscan-guess 192.168.56.101

Подключение к порту и чтение приветствия:

nc -vn 192.168.56.101 22
curl -sI http://192.168.56.101
openssl s_client -connect example.com:443 </dev/null 2>/dev/null | openssl x509 -noout -subject -dates

Прикладной fingerprint

ИнструментВыявляет
whatweb, httpx -tech-detectCMS, JS frameworks
Wappalyzer (browser)Frontend stack
nmap NSE http-server-headerServer version
smb-os-discoveryWindows build

Сопоставление с CVE — следующий этап оценки уязвимостей.


Веб-разведка

Web recon — поверхность HTTP-приложения до ручного Burp.

Crawling и URL discovery

ИсточникМетод
Robots / sitemapcurl /robots.txt, /sitemap.xml
Waybackweb.archive.org CDX API
Google dorkssite:example.com filetype:pdf (passive)
Katana, gospiderActive crawl from seed URL
Burp spiderIn-scope crawl with auth

Параметры и API

  • JavaScript bundles → endpoints (/api/v1/, GraphQL).
  • Linkfinder, getJS — URL из .js files.
  • Arjun — hidden HTTP parameters.
  • Kiterunner — API route brute.
ffuf -u https://target/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -mc 200,301,302,403

Виртуальные хосты и TLS

Один IP — много сайтов:

curl -H "Host: dev.example.com" http://93.184.216.34/
nmap --script ssl-cert -p 443 target

SAN в сертификате — список дополнительных hostname для scope.

WAF и CDN detection

wafw00f, ответы 403 с fingerprint Cloudflare/Akamai — меняют тактику (slow, encoded payloads). CDN скрывает origin IP → искать в passive DNS, historical records, misconfigured subdomains.


Карта инструментов Kali

Меню Kali отражает фазы пентеста по PTES и OWASP Testing Guide. Ниже — ориентир по категориям, а не полный список (он меняется с релизами).

Категория в менюЗадачаПримеры утилит
Information GatheringRecon, OSINTnmap, amass, theHarvester, whois
Vulnerability AnalysisПоиск известных CVEnikto, openvas, legion
Web Application AnalysisHTTP-логикаburpsuite, zaproxy, sqlmap, ffuf
Password AttacksХеши и переборhashcat, john, hydra
Wireless AttacksWi-Fiaircrack-ng, kismet, reaver
Sniffing & SpoofingПерехватwireshark, bettercap, responder
Exploitation ToolsЭксплуатацияmetasploit-framework
ForensicsРазбор артеfactовautopsy, binwalk
Reporting ToolsОтчётыfaraday, pipal
Меньше инструментов — глубже навык

На старте достаточно связки nmap + httpx/ffuf + Burp + sqlmap. Десятки утилит дублируют функции; важнее понимать этап (recon → scan → exploit → report), см. жизненный цикл атаки.

Fingerprinting и banner grabbing

Fingerprinting — определение ОС, версий сервисов и технологий без (или до) эксплуатации.

МетодЧто выявляет
Banner grabbingСтрока при подключении к порту (SSH-2.0-OpenSSH_8.4)
TCP/IP stack fingerprintingОС по особенностям стека (nmap -O)
HTTP headersServer, X-Powered-By, cookies (PHPSESSID)
TLS certificateОрганизация, SAN (альтернативные имена)
Wappalyzer / whatwebCMS, фреймворки, аналитика

Версия в banner сопоставляется с CVE (Common Vulnerabilities and Exposures). Одна устаревшая OpenSSH или Apache может дать быстрый win; чаще версия задана неверно (honeypot, прокси) — нужна ручная проверка.

OSINT — открытые источники

OSINT (Open Source Intelligence) — сбор данных из легально доступных публикаций. Граница этики проходит по использованию, а не по просмотру:

  • Просмотр LinkedIn сотрудников — OSINT для понимания оргструктуры.
  • Отправка фишингового письма без пункта в scope — нарушение договора и закона.

Категории OSINT для IT-пентеста:

КатегорияИсточники
Инфраструктураcrt.sh, SecurityTrails, BGPView
Код и секретыGitHub, GitLab, paste sites
ЛюдиLinkedIn, конференции, e-mail формат
Технические базыShodan, Censys, Fofa
МедиаWayback Machine (старые endpoints)

Passive recon — без прямого контакта с целью

Пассивная разведка использует открытые источники; целевой сервер может не зафиксировать ваш IP.

ИсточникЧто даётИнструмент / сайт
WHOIS / RDAPВладелец домена, NSwhois, rdap
Certificate TransparencyПоддомены из сертификатовcrt.sh, crt
DNSA, MX, TXT, SPFdig, dnsenum
ПоисковикиИндексированные URL, файлыsite:, filetype:pdf
GitHub / PasteУтечки ключей, .envручной поиск, trufflehog
Shodan / CensysИнтернет-сканеры (OSINT)веб-сервисы

Пример пассивного DNS:

dig example.com ANY +short
dig _dmarc.example.com TXT +short
Граница OSINT

Скачивание открытых данных — одно; использование найденных учётных данных против чужой системы без разрешения — другое. См. легальный сбор информации и scope в 8.09/2.


Active recon — контакт с инфраструктурой

Активная разведка отправляет пакеты и запросы на цель. Её проводят только в scope договора или лаборатории.

Перечисление поддоменов

# amass (пример пассивного + активного режимов)
amass enum -passive -d example.com
amass enum -active -d example.com -p 80,443

Сканирование портов и сервисов

Nmap — базовый инструмент:

# Быстрое сканирование топ-портов
nmap -sV -T4 scanme.nmap.org

# Полный TCP (медленно, шумно)
nmap -p- -sV 192.168.56.101

Флаги:

ФлагСмысл
-sSSYN scan (нужны root-права)
-sVОпределение версий сервисов
-OОС (эвристика)
-AAggressive (OS, версии, скрипты, traceroute)
-PnБез ping (если ICMP фильтруется)

NSE-скрипты:

nmap --script http-title,ssl-cert -p 443 example.com

Теория сканирования портов

Порт — число (0–65535), идентифицирующее приложение на хосте. Сканер проверяет, открыт ли порт (accept), закрыт (reset) или фильтруется (drop/firewall).

Тип скана nmapМеханизмСлед в логах
TCP Connect (-sT)Полное TCP handshakeВысокий
SYN (-sS)Half-open, нужен rootСредний (SYN без завершения)
UDP (-sU)Датаграмма на UDP-портЗависит от сервиса
ACK (-sA)Карта firewall rulesНизкий для версий

Timing template (-T0-T5) управляет агрессивностью: -T4 — разумный default; -T5 на legacy-оборудовании может вызвать отказ сервиса.

Состояния в выводе nmap:

StateЗначение
openСервис принимает соединения
closedПорт доступен, но нет listener
filteredFirewall блокирует проверку
open|filteredUDP-неопределённость

# Живые URL
httpx -u https://example.com -status-code -title -tech-detect

# Перебор директорий (осторожно с rate limit)
ffuf -u https://example.com/FUZZ -w /usr/share/wordlists/dirb/common.txt -mc 200,301,302

HTTP-разведка

Что фиксировать в заметках

  • Дата и время каждого шага (для отчёта и доказательства scope).
  • Команды и ключевые флаги.
  • Скриншоты или вывод в файл (nmap -oA lab/target).
  • Источник данных (пассивный OSINT vs активный скан).

Шаблон структуры каталога на Kali:

~/engagements/client-name/
recon/
nmap-full.xml
subdomains.txt
screenshots/
notes.md

theHarvester и сбор e-mail

theHarvester -d example.com -b google,bing -l 100

Используется для понимания поверхности социальной инженерии и возможных логинов. Применение собранных адресов для фишинга вне scope запрещено правилами большинства программ.


Recon-ng и Maltego

Recon-ng — модульный фреймворк recon в CLI (аналог Metasploit для разведки):

recon-ng
marketplace install all # осторожно, много модулей

Maltego — визуализация связей (домен → e-mail → IP). Удобно для отчёта заказчику; Community Edition имеет лимиты.

Threat modeling после recon

Когда список хостов и сервисов собран, полезно построить модель угроз (упрощённо STRIDE или «что атакующий хочет получить»):

АктивУгрозаВектор из recon
Клиентская базаУтечка PIISQLi на /api/users
Админ-панельЗахватСкрытый /admin, default creds
ОблакоMetadata SSRFВнутренний URL в параметре

Приоритизация: вероятность × impact. Критичный бизнес-процесс + открытый legacy FTP поднимается выше информационного блога на том же IP.


Ограничения и шум

РискСмягчение
IDS/IPS блокирует IPСогласовать rate, использовать jump box заказчика
DoS случайным сканомИзбегать -T5 на хрупких сервисах, не сканировать prod без окна
ЮридическийScope in writing, IP whitelist
Aggressive scanning

В Bug Bounty policy часто прямо запрещают «массовый» или «intrusive» скан. Читайте правила программы перед nmap -A по всему /16.


Практическое задание

  1. На scanme.nmap.org (разрешённая цель) выполните nmap -sV и сохраните вывод в файл.
  2. Пассивно соберите поддомены учебного домена через crt.sh (без дальнейшей атаки).
  3. Установите httpx и проверьте заголовок одного учебного URL.
  4. Оформите полстраницы заметок в формате «цель — метод — результат».

Связанные материалы


См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").