• XSS.stack #1 – первый литературный журнал от юзеров форума

Поверхность атаки: разведка для пентестера

Offensive

floppy-диск
Пользователь
Регистрация
21.07.2025
Сообщения
4
Реакции
2
рек2.png
Вступление

Когда ты начинаешь рекон, задача — не просто «найти домены». Нужно собрать воспроизводимую карту сети: где находятся публичные сервера, какие внутренние API выдают себя через JS, какие старые окружения забыли закрыть. Хорошая разведка даёт не просто список хостов, а контекст — почему этот хост важен и каким путём от него можно добраться до критической части сети.
Разведка — итеративный процесс: формулируешь гипотезу (например, «у компании X есть ASN Y»), собираешь данные (CT, Wayback, BGP), верифицируешь (reverse DNS, сертификаты, masscan → nmap) и корректируешь гипотезу. Ниже — последовательность шагов, объяснение логики и команды

1. Контур сети: ASN → CIDR → IP

рек.png

ASN — это рамки. По ASN ты получаешь префиксы, по префиксам — IP. Это даёт рабочую «область поиска», особенно для инфраструктурных и legacy-сервисов, которые не всегда видны через обычный DNS.

Установка базовых утилит:

apt -y install curl whois bind9-host jq ipcalc grepcidr nmap ncat

Применяем:

# Получить ASN по домену
whois -h http://whois.cymru.com $(dig +short target.com)

# Быстрая утилита asn (если разрешено)
curl "https://raw.githubusercontent.com/nitefood/asn/master/asn" -o /usr/bin/asn
chmod 0755 /usr/bin/asn
asn target.com

# Развёртка CIDR в IP
go install github.com/imusabkhan/prips@latest
prips 198.51.100.0/24 > ips.txt

Практический совет: ASN часто включает shared hosting и CDN-адреса. Не принимай префикс автоматически за «владение» — связывай IP с сертификатами и PTR, чтобы отделить релевантное от шума.

2. Reverse DNS и TLS: связываем адреса с именами


PTR и сертификаты — простой и эффективный способ привязать IP ↔ домен. Особенно полезно при наличии CDN и многоарендного хостинга — CN/SAN в сертификате даёт подсказку, какие сервисы действительно относятся к цели.

Команды:

# Reverse DNS по CIDR
prips 173.0.84.0/24 | hakrevdns | tee hakrevdns-CIDR.txt

# IP -> hostnames и SSL CN/SAN
go install github.com/hakluke/hakip2host@latest
prips 173.0.84.0/24 | hakip2host

Пример вывода:
[DNS-PTR] 173.0.84.23 new-creditcenter.paypal.com.
[SSL-CN] 173.0.84.67 api.paypal.com
[SSL-SAN] 173.0.84.76 svcs.paypal.com

Интерпретация: если сертификат содержит брендовые домены — вероятность принадлежности выше. Если PTR и CN различаются — возможно, это прокси/шлюз или shared hosting.

3. Пассивная субдоменная разведка

Пассивка — твой первый ход: большой охват при нулевом или минимальном шуме. Источники: crt.sh/Censys, Wayback, RapidDNS, Riddler, GitHub.

Рабочие команды:

# crt.sh → список name_value
curl -s "https://crt.sh/?q=%.example.com&output=json" \
| jq -r '.[].name_value' | sed 's/\r//g' | tr ',' '\n' | sort -u

# Wayback субдомены
curl -sk "http://web.archive.org/cdx/search/cdx?url=*.$domain&output=txt&fl=original&page=" \
| awk -F/ '{gsub(/:.*/, "", $3); print $3}' | sort -u | tee waybacksubs.txt

# Riddler экспорт
curl -s "https://riddler.io/search/exportcsv?q=pld:YOURDOMAINHERE.COM" \
| grep -Po "([\w.-]+\.\w+)" | sort -u | tee riddler.txt

Совет: помечай для каждой записи источник(и). Это помогает при триаже — crt.sh+Wayback = более весомая находка, чем single hit из неизвестного источника.

4. Активная субдоменная разведка: брутфорс, AXFR, reverse-dns

Пассивка даёт кандидатуры. Активка — подтверждает и расширяет. Брутфорс и проверки zone transfer иногда дают «полные» зоны, особенно у забытых или неправильно настроенных NS.

Инструменты и примеры:

# subfinder (pasive+active options)
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
subfinder -all -recursive -rL ~/resolvers.txt -d target.com

# amass brute
amass enum -d target.com -active -o amass-active.txt -brute -alts

# Проверка AXFR
dig axfr @ns1.example.com example.com
host -t axfr example.com ns1.example.com
nslookup -query=AXFR example.com ns1.example.com

Практика: используй пассивные результаты как seed для брутфорса. Снижай rate и ставь резолюции (resolver list) надёжные — это уменьшает шанс быть замеченным операторами провайдера.

5. Сбор эндпоинтов и анализ JS — где прячутся API


Клиентский код часто раскрывает внутреннюю адресацию: API_URL, пути к admin, sourcemap. Собираешь URL, запускаешь headless-краул, скачиваешь JS и ищешь паттерны.

Pipeline:
# waybackurls для URL
go install github.com/tomnomnom/waybackurls@latest
cat domains.txt | waybackurls > urls

# Katana — headless crawl + XHR extraction
go install github.com/projectdiscovery/katana/cmd/katana@latest
katana -u https://target.com -nc -jc -kf -fx -xhr -jsl -ef woff,css,png,jpg -r ~/resolvers.txt -o katana-output.txt

# getJS + jsfinder + jsleak
go install github.com/003random/getJS@latest
cat urls.txt | getJS --complete --resolve --insecure | anew js-urls.txt

go install -v github.com/kacakb/jsfinder@latest
cat js-urls.txt | jsfinder -read -s -o js.txt

go install github.com/channyein1337/jsleak@latest
cat urls.txt | jsleak -s

Wayback → Katana → getJS → jsfinder/jsleak. Sourcemap — особенно ценно: он может раскрыть реальные имена функций и переменных — это как снять маску с API.

6. Массовое сканирование: masscan → rustscan → nmap

Когда есть IP-список — сканируй разумно. Масскан даёт скорость; nmap даёт детали. RustScan удобно соединяет скорость и интеграцию с nmap.

Пример:

# masscan быстрый sweep
masscan 10.10.10.0/24 -p1-65535 --rate 1000 --output-format json --output-filename mscan.json

# извлечь live IP и прогнать nmap
cat mscan.json | jq -r '.[].ip' | sort -u > live.txt
nmap -iL live.txt -sC -sV -oA nmap-full

Важно: masscan даёт шум и ложные позитивы. Всегда подтверждай найденные порты через nmap и httpx. Контролируй rate согласно договорённому scope.

7. Fingerprinting: превращаем «что» в «как»

Безымянный.png


После того как знаешь сервисы — нужно понять стек. Это определяет, какие векторы пробовать дальше.

Примеры инструментов:

httpx -l live_subdomains.txt -silent -o httpx-output.txt
whatweb -v target.com
# fingerprintx / webanalyze для массового сканирования стека

Зачем: версии, заголовки, cookies, favicon hash, X-Powered-By — всё это помогает генерировать таргетированные словари и выбирать подходящие техники fuzzing/эксплойт-поиска.

8. Fuzzing и поиск параметров

Таргетированный фаззинг эффективнее «рандомного» — делай словари на основе найденного стека и JS-парсинга.

Примеры:

# директории и файлы
ffuf -w common.txt -u https://target.com/FUZZ -mc 200,301,302 -fc 404 -o ffuf-results.json

# параметры
arjun -u "https://target.com/api/v1/resource" -o arjun-params.txt

Дополнительно: фаззинг заголовков (Host, X-Forwarded-For) иногда выявляет вхождения vhost или обходы авторизации. Не забывай тестировать поведение с разными UA и cookies.

9. Поиск секретов и артефактов


GitHub-dorks, sourcemap, PDF/IMAGE-metadata — типичные места утечек. Инструменты jsleak, secretfinder, exiftool автоматизируют рутинные проверки.

10. Чеклист для reconа


⦁ ASN и префиксы (asn, whois).
⦁ Развёрнуть CIDR (prips).
⦁ Reverse DNS + SSL CN/SAN (hakrevdns, hakip2host).
⦁ Сбор пассивных субдоменов (crt.sh, wayback, riddler).
⦁ Активный перебор (subfinder, amass).
⦁ Spider + JS extraction (katana, getJS, jsfinder).
⦁ masscan → nmap → httpx.
⦁ Fuzzing (ffuf, arjun).
⦁ Поиск секретов (jsleak, secretfinder, exiftool).
⦁ Структурирование и versioning (timestamped JSON).

Заключение


Разведка — последнее, где «метод» важнее «инструмента». Инструменты автоматизируют шаги, но ценность даёт умение интерпретировать сигнал: почему этот хост важнее другого, какие зависимости он раскрывает, какие процессы разработки приведут к утечкам завтра. Работай итеративно, фиксируй источник каждого факта и не забывай: дисциплина и аккуратность в recon делают результаты полезными, а не просто большим списком.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх