October 10, 2025

Разведка — фундамент эффективного пентеста

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

Подготовка к разведке

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

  • Домены второго уровня или Apex домены (например, example.org)
  • Домены N уровня или поддомены (например, sub.example.org, fifth.level.sub.example.com)
  • Подсети (например, 192.168.0.0/24)

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

Данные о связанных организациях

Самым первым шагом будет простой запрос с использованием Whois:

whois metascan.ru

Или массовый сбор данных: https://github.com/melbadry9/WhoEnum

Используя такую простую команду мы получаем уже немало важных данных:

  • ИНН
  • Полное название организации
  • DNS сервера

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

Домены второго уровня

На этом этапе наша задача собрать максимальное количество доменов второго уровня (apex доменов). Имя на руках полную информацию об организации и поглощениях, можно выполнить поиск разными способами:

  • Reverse IP lookup
  • По сертификатам
    • https://github.com/glebarez/cero
      • cat ip-list.txt | cero > .tmp/cero.txt
      • cat .tmp/cero.txt | unfurl -u apexes | anew apex.txt
      • cat .tmp/cero.txt | unfurl -u domains | anew subdomains-unresolved.txt
      • cat apex.txt | cero
    • crt.sh и другие
  • Reverse Whois (org, email, registrant name и др.)
    • https://github.com/MilindPurswani/whoxyrm
      • whoxyrm -company-name "Company Inc."
      • whoxyrm -email "admin@company.com"
      • whoxyrm -keyword "company.com"
    • Сервисы Whoxy, Viewdns, DNSlytics, IntelX и другие
  • Reverse PTR
  • Дорки
    • Поиск вида "Company © 2025" или на основе других уникальных данных о компании собранных с известных доменов второго уровня

Расширив список доменов второго уровня мы готовы переходить к следующему этапу поиска поддоменов.

Трансфер зоны

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

  1. Узнаем DNS сервера: dig -t NS metascan.ru
  2. Проверяем возможность трансфера: dig axfr domain.com @ns.domain.com

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

Скрипт для быстрой проверки группы доменов на возможность трансфера:

for ns in $(dig +short ns "$domain"); do dig axfr "$domain" @"$ns" >> zonetransfer.txt; done
        if [ -s "subdomains/zonetransfer.txt" ]; then
            if ! grep -q "Transfer failed" zonetransfer.txt ; then notification "Zone transfer found on ${domain}!" info; fi
        fi

Пассивный поиск поддоменов

Сбор поддоменов можно осуществлять на основе данных из пассивных источников, таких как Censys, Shodan, crt.sh и других, так и активным методом с перебором существующих поддоменов через обращения к DNS серверам.

Утилиты которые могут осуществлять пассивный поиск:

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

Собрав достаточное количество доменов с помощью пассивного метода мы получаем немалый массив данных для подготовки к активному поиску.

Пермутации и активный поиск поддоменов

Перед тем, как выполнить брутфорс поддоменов, необходимо подобрать правильный словарь. В этом нам могут помочь пермутации на основе собранных данных:

Собрав хороший словарь остается выполнить только перебор поддоменов. Очень важно понимать как устроен этот процесс, так как словари могут достигать огромных значений (5-10 млн), поэтому нам важно выполнять перебор именно на уровне DNS A записи. Частой ошибкой бывает использование не предназначенных для этого инструментов, таких как ffuf, httpx и тому подобных, которые делают именно HTTP запрос, а не DNS.

Очень важно подготовить для этих утилит список доверенных резолверов чтобы не получить блокировку от основных:

Для быстрого и эффективного перебора поддоменов по большим словарям можно использовать:

Поиск подсетей

Теперь мы обладаем большим объемом данных, среди которых домены второго уровня и поддомены. Почему поиск подсетей почти что в конце? Если собрать IP адреса с небольшого списка доменов, то можем упустить какие-то IP адреса входящие в более крупные сети. Имея на руках полноценный список доменов и поддоменов количество IP адресов из A записей значительно увеличивается.

Кроме этого, часто домены могут быть спрятаны за Cloudflare или располагаться на хостингах, такие IP адреса бесполезны и не помогут найти реальные подсети организации.

На основе полученных IP адресов собираем все ASN и находим их подсети:

Данные о подсетях можно найти в таких базах, как Ripe:

В качестве ключевых слов можно использовать известные IP, Email адрес администратора, сайт компании, название организации и другие данные.

Заключение

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

Метаскан имеет встроенный модуль проведения разведки и команду опытных пентестеров которые позволят максимально увеличить покрытие защищаемого периметра и не упустить даже менее известные домены.

Кроме этого, с интеграцией которая позволяет автоматически забирать все DNS записи исключаются случаи где домен мог быть упущен если он отсутствует где либо и его название крайне необычное.