На Red Team-контракте для логистической компании theHarvester за шесть минут собрал 47 email-адресов и 31 поддомен. Среди них - staging-API с открытым Swagger UI и дефолтными кредами. Subfinder по тому же домену выдал только 18 поддоменов, а email-адреса вообще не его профиль. Разница проста: theHarvester агрегирует данные из источников, заточенных под email harvesting - Hunter.io, LinkedIn-парсинг через Google, PGP-серверы - которые специализированные subdomain enumeration инструменты не покрывают. Но эта сила превращается в слабость, если пользоваться инструментом как чёрным ящиком с
-b all. Дальше разберу стратегию выбора источников, интеграцию в recon-пайплайн и границы, за которыми нужны другие инструменты.Место theHarvester в цепочке атаки
Зачем тратить время на пассивную разведку, когда можно сразу запустить Nuclei? Потому что без карты внешней поверхности атаки сканер уязвимостей пропустит большинство поддоменов - а вместе с ними забытые staging-серверы, dev-окружения с открытыми API и теневые сервисы, о которых не помнит даже ИТ-отдел заказчика.theHarvester работает в фазе reconnaissance по kill chain. По классификации MITRE ATT&CK его функции попадают в две техники:
- DNS/Passive DNS (T1596.001, Reconnaissance) - пассивный сбор DNS-записей, поддоменов, IP-адресов из публичных баз без прямого взаимодействия с целью. Запросы идут к crt.sh, SecurityTrails, Censys - инфраструктура цели их не видит.
- Wordlist Scanning (T1595.003, Reconnaissance) - при активации флага
-cинструмент переходит в режим DNS-брутфорса, перебирая поддомены по словарю. Это уже активная разведка, и она оставляет следы в DNS-логах.
Операционная цепочка: scope definition → theHarvester (пассивный сбор email + поддоменов) → валидация живых хостов (dnsx/httpx) → сканирование портов (nmap/masscan) → fingerprinting → эксплуатация. theHarvester - стартовая точка, и его фишка в одновременном сборе двух типов данных: инфраструктурных (поддомены, IP) и человеческих (email-адреса, имена сотрудников).
Инфраструктурные данные уходят дальше по технической цепочке - в сканирование и эксплуатацию. Email-адреса - в подготовку фишинга или credential stuffing. По данным Have I Been Pwned, утечка LinkedIn 2012 года затронула 164 миллиона email-адресов. Email-формат
имя.фамилия@company.com, найденный через theHarvester, позволяет проверить скомпрометированные учётки по публичным базам утечек и собрать список целей для password spraying. Согласно IBM X-Force Threat Intelligence Index 2025, генерация фишинговых писем с помощью GenAI ускорилась в 11.4 раза при сопоставимом качестве - а для фишинга нужен именно качественный список корпоративных адресов, который theHarvester вытягивает из разных OSINT-источников за минуты.В пассивном режиме инструмент не оставляет следов на инфраструктуре цели. IDS/IPS заказчика не сработают, в логах ничего не появится. Для Red Team, где обнаружение на этапе разведки ставит под угрозу весь engagement, это не опциональное удобство, а операционное требование.
Требования к окружению и установка
Требования к окружению:- ОС: Kali Linux (предустановлен), Ubuntu 22.04+, Debian 12+, macOS. Windows - через WSL2
- Python: 3.12+ (обязательно для актуальной версии с менеджером uv)
- RAM: 2 ГБ минимум, 4 ГБ рекомендуется при работе с
-b allи большим количеством API-источников - Сеть: стабильный интернет обязателен - инструмент обращается к внешним API
- Статус поддержки: репозиторий github.com/laramies/theHarvester активно поддерживается, проект перешёл на пакетный менеджер uv, текущая версия 4.5.0+
Bash:
curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/laramies/theHarvester
cd theHarvester
uv sync
uv run theHarvester -h
pdtm - обновляет все инструменты одной командой pdtm -ua.Встроенный REST API: theHarvester включает
restfulHarvest - локальный веб-сервер для программного доступа к результатам. Запуск: restfulHarvest -H 127.0.0.1 -p 5000 --rate-limit "10/minute". Для защиты маршрутов задайте переменную окружения THEHARVESTER_API_KEY и передавайте её в заголовке X-API-Key - без ключа защищённые роуты возвращают 503.Стратегия выбора источников данных
Большинство руководств советуютtheHarvester -d target.com -b all и ждать. На реальных engagement'ах это антипаттерн. Параллельные запросы ко всем 30+ источникам вызывают rate limiting - Google после 10-20 запросов выдаёт капчу, Bing ограничивает по IP. Бесплатные API-квоты сгорают за три домена. А часть источников возвращает устаревшие passive DNS-записи двухлетней давности, засоряя выдачу мусором.Правильный подход - выбирать источники под конкретную задачу.
Источники под конкретные задачи
Email harvesting для социальной инженерии[Применимо: внешний пентест, Red Team, фишинговые кампании]
Основной набор:
hunter,bing,google. Команда: theHarvester -d target.com -b hunter,bing,google -l 200. Hunter.io возвращает верифицированные email с confidence score и паттерном формата адресов в организации - отдельная ценность, потому что зная формат (name.surname@company.com), можно генерировать адреса сотрудников из LinkedIn без дополнительных запросов.Bing агрессивнее Google индексирует профили LinkedIn и корпоративные страницы - часто показывает email-адреса, которые Google пропускает. Проверенный паттерн: алгоритмы индексации у двух поисковиков различаются, и Bing глубже обрабатывает закрытые от индексации, но доступные страницы корпоративных сайтов.
Subdomain enumeration для картирования поверхности атаки
[Применимо: внешний пентест, Bug Bounty]
Основной набор:
crtsh,censys,securitytrails,dnsdumpster. Команда: theHarvester -d target.com -b crtsh,censys,securitytrails,dnsdumpster.crt.sh - золотой стандарт пассивного subdomain enumeration. Покрывает все SSL-сертификаты, когда-либо выданные для домена через Certificate Transparency логи. Если компания использует SAN-сертификат (Subject Alternative Name), в нём часто прячутся внутренние поддомены, попавшие туда по ошибке. По данным Outpost24, именно через Certificate Transparency логи обнаруживаются поддомены, недоступные другими пассивными методами.
Про subdomain takeover: согласно исследованию Silent Push, если у поддомена есть CNAME-запись, но хост не обслуживается - злоумышленник может перехватить домен, развернув собственный контент. theHarvester находит такие записи через passive DNS, но не проверяет их статус автоматически. Валидация через
dnsx или httpx обязательна.Полная разведка перед engagement'ом
[Применимо: Red Team, Due Diligence]
Разделите на два прохода. Первый - быстрые бесплатные источники:
theHarvester -d target.com -b crtsh,bing,google,dnsdumpster -f pass1.html. Второй - платные API с задержками: theHarvester -d target.com -b hunter,securitytrails,censys,shodan -f pass2.html. Разделение минимизирует rate limiting и экономит квоты.Настройка API-ключей: ROI на бесплатных тарифах
Ключи прописываются в файле~/.theHarvester/api-keys.yaml. Приоритет по отдаче на бесплатном тарифе:- SecurityTrails - 200 запросов/месяц. Самая полная база passive DNS с историческими записями, которых нет в crt.sh
- Hunter.io - 50 поисков/месяц. Лучший источник верифицированных email с метаданными формата
- Censys - 250 запросов/месяц. Второй по качеству subdomain enumeration после crt.sh, плюс данные о сертификатах
- Shodan - 100 результатов/месяц. Добавляет данные об открытых портах и баннерах к найденным хостам
Практический workflow перечисления поддоменов
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Шаг 3. Валидация живых хостов. Результаты theHarvester содержат и живые, и мёртвые поддомены - passive DNS-данные могут быть годичной давности. Фильтрация и обогащение через
dnsx и httpx:
Bash:
cat recon_target.xml | grep -oP '[\w.-]+\.target\.com' | sort -u > subs.txt
cat subs.txt | dnsx -silent -a -resp > alive.txt
cat alive.txt | httpx -silent -title -status-code -tech-detect
Шаг 4. Приоритизация. Из списка живых хостов выделяете цели для дальнейшего сканирования: поддомены с ключевыми словами в имени (
dev, staging, admin, api, test) проверяются первыми. Сервисы с устаревшим tech-стеком (видно через httpx -tech-detect) - вторая очередь. Остальные - фоном через nmap.Интеграция theHarvester в recon-пайплайн
theHarvester не должен быть единственным инструментом subdomain enumeration. Его фишка - email harvesting OSINT и покрытие источников, которые пропускают специализированные инструменты. Оптимальный пайплайн комбинирует несколько recon инструментов кибербезопасности.Subfinder (ProjectDiscovery, активно поддерживается) запрашивает 50+ источников и на чистом subdomain enum работает ощутимо быстрее theHarvester. Amass (проект OWASP) строит граф связей между доменами через анализ ASN, WHOIS и Certificate Transparency. Каждый инструмент находит поддомены, которых нет у двух других - пересечение между theHarvester и Subfinder на реальных engagement'ах составляет примерно 60-70%.
Комбинация с дедупликацией:
Bash:
theHarvester -d target.com -b crtsh,securitytrails -f th_out
subfinder -d target.com -o sf_out.txt
amass enum -d target.com -o am_out.txt -timeout 15
# Объединение, дедупликация и валидация
cat th_out.xml | grep -oP '[\w.-]+\.target\.com' > all.txt
cat sf_out.txt am_out.txt >> all.txt
sort -u all.txt | dnsx -silent > verified.txt
www1, вероятно есть www2, если есть api-v1, стоит проверить api-v2. Пока это экспериментальное направление, но через год-два оно станет частью стандартного инструментария.Чем theHarvester отличается от аналогов
| Критерий | theHarvester | Subfinder | Amass |
|---|---|---|---|
| Email harvesting | Да - основная функция | Нет | Нет |
| Источники поддоменов | 30+ | 50+ | 60+ |
| DNS brute-force | Да (флаг -c) | Нет | Да |
| Скорость subdomain enum | Средняя | Высокая | Низкая |
| RAM | 2-4 ГБ | 1-2 ГБ | 4-8 ГБ |
| REST API | Да (restfulHarvest) | Нет (CLI only) | Нет |
| Выходные форматы | HTML, XML, JSON | TXT, JSON | TXT, JSON |
| Когда использовать | Pre-engagement: email + поддомены | Быстрый subdomain enum в pipeline | Глубокий маппинг инфраструктуры с графом |
| Когда НЕ использовать | Только subdomain enum на большом scope | Нужны email-адреса | Ограничены время и RAM |
| Детектируемость (пассивный режим) | Нулевая | Нулевая | Нулевая |
theHarvester - единственный из тройки, кто собирает email-адреса. Для чистого перечисления поддоменов Subfinder объективно быстрее и покрывает больше источников. Для построения связей между доменами, IP и ASN - Amass даст более полную картину, но сожрёт время и 4-8 ГБ RAM.
Как выбирать: нужны только поддомены на большом scope (десятки доменов) - Subfinder. Нужна полная картина инфраструктуры одного домена с графом связей - Amass. Нужен footprinting пентест с email-адресами для последующей социальной инженерии - theHarvester, без вариантов.
Ограничения и когда theHarvester недостаточен
Зависимость от третьих сторон. Все пассивные источники - внешние API и парсеры поисковых систем. Если Google изменит рендеринг страницы результатов, парсер theHarvester сломается до обновления. Такое случается примерно раз в 3-6 месяцев - типичная боль любого scraping-инструмента.Неполнота passive DNS. Пассивная разведка принципиально не находит поддомены, которые никогда не появлялись в публичных базах: внутренние записи за VPN, свежесозданные домены, поддомены в приватных DNS-зонах. Для их обнаружения нужен активный DNS brute-force (флаг
-c или внешний инструмент - Gobuster, puredns) с качественным словарём из SecLists.Нет валидации из коробки. theHarvester собирает данные, но не проверяет их актуальность. Поддомен из passive DNS мог быть удалён год назад. Email мог принадлежать уволенному сотруднику. Без валидации через
dnsx и email-верификаторы работаешь с устаревшими данными - а это ложные выводы в отчёте.Rate limiting без встроенного решения. Ротации прокси из коробки нет. Для систематического использования на нескольких доменах потребуется внешняя обвязка - Tor через
proxychains, коммерческие прокси-пулы или разнесение запросов по времени через cron с задержками между вызовами.Ограниченный DNS brute-force. Встроенный словарь маленький по сравнению со специализированными инструментами. Для серьёзного перебора берите
puredns или Gobuster с расширенными словарями - theHarvester здесь проигрывает и по скорости, и по покрытию.Когда theHarvester точно не поможет:
- Scope включает только IP-диапазоны без доменов - инструмент не работает с CIDR, нужен Shodan или Censys напрямую
- Цель за CDN - Cloudflare и Akamai скрывают реальные IP, theHarvester покажет адрес CDN-провайдера, а не сервера. Для обхода нужны другие техники (исторические DNS-записи через SecurityTrails, поиск по favicon hash через Shodan)
- Нужна разведка внутренней сети - инструмент предназначен исключительно для внешнего recon
- Масштабная subdomain enum по сотням доменов - Subfinder + Amass справятся эффективнее за счёт скорости и параллелизации
Строить цифровой след организации на одном инструменте - гарантированно проиграть. theHarvester + Subfinder + crt.sh + dnsx - минимальный стек для покрытия внешней поверхности атаки. Через год-два LLM-подход к генерации wordlists станет стандартной частью footprinting-пайплайна, и инструменты, которые его не интегрируют, отстанут. Тем, кто ещё не пробовал собирать полную цепочку от DNS-записи до карты атаки руками - OSINT-задачи на HackerLab дают именно этот опыт на контролируемых стендах.