![]() |
https://forum.antichat.xyz/attachmen...cf9e4a1514.png
Когда мне ставят задачу на внешний пентест, первое, что я делаю - закрываю Burp Suite. Серьёзно. Следующие два-три дня я не отправлю ни одного пакета на цель. Вместо этого строю карту: домены, поддомены, IP-блоки, сертификаты, email-адреса, имена сотрудников, технологический стек, забытые dev-серверы, публичные репозитории. Всё это - разведка по открытым источникам, она же OSINT. По моему опыту, фаза разведки съедает 30–40% времени проекта, но определяет 70–80% его результата. Пентестер, который потратил на recon полчаса и сразу полез сканировать, найдёт типовые дыры из OWASP Top 10. Пентестер, который две недели копал данные, найдёт забытый Jenkins на поддомене Код:
ci-old.target.comЗдесь я покажу рабочий процесс пассивной разведки цели: какие инструменты для пентеста использую, в каком порядке, почему именно так, и как выход одного инструмента определяет выбор следующего. Не список утилит с описанием ключей - а реальный pipeline сбора информации о цели, который я запускаю на каждом проекте. Разведка через призму MITRE ATT&CK: зачем пентестеру фреймворк Прежде чем открывать терминал, стоит разобраться, что именно мы делаем в терминах adversary emulation. Каждое действие на фазе recon маппится на конкретные техники MITRE ATT&CK из тактики Reconnaissance. Это не академическое упражнение - маппинг помогает структурировать работу и ничего не забыть. Мой типичный recon-процесс в разрезе ATT&CK: Что делаюТехника ATT&CKIDИщу домены, поддомены, IP-блоки в Shodan/CensysSearch Open Technical DatabasesT1596Смотрю профили сотрудников в LinkedIn, GitHubSearch Open Websites/DomainsT1593Собираю email-адреса через theHarvesterGather Victim Identity InformationT1589Определяю ASN, BGP, сетевые блокиGather Victim Network InformationT1590Анализирую вакансии для определения стекаGather Victim Org InformationT1591Фингерпринчу веб-серверы, CMS, фреймворкиGather Victim Host InformationT1592Сканирую порты через nmap (активная фаза)Active ScanningT1595 Обратите внимание: T1595 (Active Scanning, Reconnaissance) - это уже граница между пассивным и активным recon. Всё, что выше - не генерирует трафика к цели. Nmap и подобные инструменты оставляют следы в логах IDS/IPS. При внешнем сканировании портов это T1595.001 (Scanning IP Blocks) или T1595.002 (Vulnerability Scanning) из тактики Reconnaissance. Техника T1046 (Network Service Discovery) относится к тактике Discovery и описывает обнаружение сервисов после получения доступа к среде. Ключевое различие между T1595 и T1046 - тактика и фаза атаки (Reconnaissance vs Discovery), а не только физическое расположение атакующего. В рамках согласованного пентеста это допустимо, но порядок имеет значение: сначала пассивный сбор информации о цели, потом активное сканирование по уже сформированному списку IP и портов. Пассивная разведка инфраструктуры: фундамент без единого пакета Пассивная разведка цели - основной рабочий инструмент на первые дни проекта. Никакого трафика к целевой инфраструктуре. Все данные берутся из третьих источников: поисковые движки по устройствам, DNS-агрегаторы, логи Certificate Transparency, кэши поисковых систем. WHOIS, DNS и Certificate Transparency - три кита начального recon Каждый проект я начинаю одинаково. Получил имя компании и основной домен - запускаю три параллельных процесса. Шаг 1: WHOIS и обратный WHOIS. Классический WHOIS даёт registrant, NS-серверы и даты. Но настоящая ценность - обратный WHOIS: поиск всех доменов, зарегистрированных на ту же организацию или email. SecurityTrails API позволяет сделать это одним HTTP-запросом: Bash: Код:
# Прямой WHOISКод:
/v1/domains/listКод:
targetname-dev.ioШаг 2: DNS-разведка. Перечисление DNS-записей целевого домена и всех найденных связанных доменов: Bash: Код:
# A, AAAA, MX, NS, TXT, SOA записи (ANY-запросы deprecated по RFC 8482,Шаг 3: Certificate Transparency. Логи CT - публичные базы всех выпущенных SSL-сертификатов. Через них находятся поддомены, которые не видны ни в DNS-брутфорсе, ни в поисковиках: Bash: Код:
# Через crt.sh (бесплатный CT-агрегатор)Код:
jira.internal.target.comКод:
vpn-test.target.comКод:
api-staging.target.comShodan vs Censys: когда и что использовать для пентеста Оба инструмента - поисковики по устройствам и сервисам в интернете, но работают по-разному, и это определяет, когда какой запускать. Shodan индексирует баннеры сервисов: HTTP-заголовки, SSH-версии, баннеры FTP, SNMP community strings. Его сила - поиск по конкретным технологиям и ошибкам конфигурации. Bash: Код:
# Все хосты организации по ASNBash: Код:
# Поиск по имени организации в сертификатахОдна из самых частых находок: через Shodan обнаруживается IP с открытым портом 8443, на котором висит админка, а через Censys видно, что на этом же IP полгода назад был сертификат для Код:
admin.target.comСбор информации о людях: от email-адресов до графа социальных связей Инфраструктура - половина картины. Вторая половина - люди. Email-адреса сотрудников нужны для моделирования фишинговых атак, имена - для подбора логинов, должности - чтобы понять, кто имеет привилегированный доступ. theHarvester: быстрый сбор email и поддоменов theHarvester входит в Kali Linux и агрегирует данные из поисковых систем, PGP-серверов и API различных сервисов. Запускаю его одним из первых: Bash: Код:
# Сбор email, поддоменов, IP из множества источниковLinkedIn как источник OSINT для разведки персонала LinkedIn - критически важный источник для Gather Victim Identity Information (T1589, Reconnaissance) и Gather Victim Org Information (T1591, Reconnaissance). Не для «взлома», а для понимания:
Построение графа связей в Maltego: от домена к точке входа Все перечисленные выше инструменты дают разрозненные данные: списки IP-адресов, поддоменов, email-ов, имён. Maltego превращает этот хаос в граф связей - визуальную карту, на которой видны отношения между сущностями. Практический workflow построения графа Мой типичный процесс работы с Maltego на пентесте: Фаза 1: Seed-сущности. Создаю новый граф, добавляю начальные сущности:
Пример: как граф выявил забытый сервер На одном проекте граф в Maltego показал, что поддомен Код:
legacy-api.target.comКод:
test-target.example-hosting.comАвтоматизация OSINT: Recon-ng, SpiderFoot и amass Когда целей много или scope обширный (несколько доменов, десятки ASN), руками не масштабируешься. Здесь вступают инструменты автоматизации. amass: король перечисления поддоменов OWASP Amass - самый зубастый инструмент для обнаружения attack surface. Комбинирует пассивные и активные техники: Bash: Код:
# Пассивный режим - без трафика к целиКод:
amass_config.iniЦитата:
Recon-ng работает по модели Metasploit: модули, workspace-ы, база данных результатов. Его главное преимущество - все данные сохраняются в единую БД, которую можно запрашивать и экспортировать. Bash: Код:
recon-ngSpiderFoot: автоматизация для ленивых (и умных) SpiderFoot автоматизирует более 200 типов запросов из одного интерфейса. Запускается одной командой и методично обходит все доступные источники: Bash: Код:
# Запуск веб-интерфейсаPipeline разведки: как связать инструменты между собой Вот где начинается настоящая OSINT автоматизация. Каждый инструмент производит выход, который становится входом следующего. На реальном проекте мой pipeline выглядит так: Этап 1: amass (пассивный) производит список поддоменов → сохраняю в Код:
subdomains.txtBash: Код:
# Вариант 1: быстрый массовый резолвинг через purednsBash: Код:
catBash: Код:
theHarvester -d target.com -b all -lЭтап 6: Результаты фильтрую по приоритету:
От разведки к атаке: как результаты footprinting определяют вектор Разведка ради разведки бессмысленна. Каждый найденный артефакт должен превращаться в конкретное действие: Находка при footprintingСледующий шагПотенциальный результатПоддомен Код:
staging.target.comКод:
i.ivanov@target.comКод:
_amazonses.target.comКод:
target-*Код:
vpn.target.comКод:
targetКод:
git logБез фазы разведки я бы сканировал основной домен и упёрся в закрытый WAF. С полной картой attack surface - нашёл забытый staging без WAF, Jenkins без аутентификации и S3-бакет с бэкапами базы данных. Почувствуйте разницу. Юридические границы пассивного recon Пассивная разведка по открытым источникам - это работа с публичными данными. Вы не отправляете пакеты на целевую инфраструктуру, не брутфорсите, не эксплуатируете. Но границы важно понимать чётко: Допустимо в рамках пентеста (и без договора): запросы к Shodan, Censys, crt.sh, WHOIS-сервисам, поисковым системам. Вы работаете с данными третьих сторон, а не с инфраструктурой цели. Требует договора: активное сканирование портов (nmap), DNS-брутфорс поддоменов, любое взаимодействие с сервисами цели. Это уже Active Scanning (T1595, Reconnaissance) и Network Service Discovery (T1046, Discovery). Запрещено всегда: использование найденных паролей из утечек для входа, фишинг сотрудников без согласования, доступ к закрытым системам. Нашли пароль в утечке - фиксируете в отчёте, но не используете. Тут без вариантов. Чеклист: recon-процесс за один рабочий день Для тех, кто хочет внедрить системный подход к разведке - пошаговый чеклист, который укладывается в один рабочий день: Утро (2 часа) - пассивный сбор:
Инструменты второго эшелона: что дополняет основной арсенал Помимо «большой пятёрки» (amass, theHarvester, Shodan, Maltego, Recon-ng) есть инструменты, закрывающие специфические ниши:
Разведка - это не этап, это образ мышления OSINT пентест - не «шаг 1 перед сканированием». Это непрерывный процесс, который идёт параллельно со всеми остальными фазами. Нашли новый поддомен во время эксплуатации? Возвращайтесь в recon: проверьте его через Shodan, посмотрите сертификаты, добавьте в граф Maltego. Разница между пентестером, который потратил на разведку 30 минут, и тем, кто работал два дня - это разница между отчётом «мы проверили периметр, всё хорошо» и отчётом «мы нашли забытый сервер двухлетней давности с доступом к продакшен-базе». Попробуйте прогнать pipeline из этой статьи на своём проекте. Начните с amass + crt.sh + Shodan - для начала хватит за глаза. Если после первого прохода не нашли ничего интересного - значит, scope слишком узкий. Расширяйте через обратный WHOIS и CT-логи. Удачной охоты. |
Отличный разбор, реально помогает понять, как погружаться в OSINT без лишнего шума. Особенно понравилась идея сначала закрыть Burp и не лезть сразу в активное сканирование — сначала собрать всю картину, потом уже копать глубже. Малтего и amass — топчики для связей и поддоменов, без них в больших проектах никак. Такой подход реально повышает шанс найти те самые забытые дыры, которые обычно игнорят.
|
Это жe пeрл! Кто бы сeрьёзно брался за пeнтeст, а нe залипал на шрифты сканеров, тот понял, что без толкового OSINT’a – как без рук. Burp в закромах, пока собираешь карты – самый кайф. Maltego рулит, связки видно как на ладони, а amass вообще будто из будущего. Всё просто и логично, а результат – как находка заброшенной золотой жилы. Пускай новички сначала так делают, а потом уже будут устраивать шум с nmap.
|
Отлично структурированное описание! Особенно зацепило разделение пассивной и активной разведки — реально помогает не путаться и работать с минимальным шумом. Малтего с её графами — просто находка, круто, что можно визуально связи посмотреть, а не через простые списки копаться. И про API-ключи в amass — да, без них результат заметно теряется, кайф когда комплексно собираешь данные.
|
Круто оформлено, реально вдохновляет с таким подходом разбираться. Особенно залёт с разделением пассивного и активного поиска — сразу понятнее, где можно работать тихо, а где уже шуметь. Maltego с графами для меня — прям открытие, раньше был в простых списках, а тут сразу наглядно. И да, amass с API — без ключей толку мало, это точно. Спасибо за расклад, цепляет!
|
| Время: 00:27 |