theHarvester: первая разведка по домену

theHarvester опрашивает поисковики, журналы сертификатов, DNS и сервисы вроде Shodan и VirusTotal и собирает по домену поддомены, адреса почты, IP и имена. Это первый шаг оценки безопасности: запускать его можно только по целям, которыми вы владеете или на проверку которых у вас есть разрешение.
Коротко
- Что даёт: поддомены, хосты, IP, адреса почты, ссылки.
- Цена: бесплатно, GPL-2.0, Python. Часть источников требует ключей.
- Версия: для обучения берите стабильную 4.11.1 (Python 3.12+). Версия 5.0 ещё в ветке
devи сильно отличается. - Главное правило: пассивные источники и активные проверки — разные вещи.
Установка
Нужны Python 3.12+ и uv.
git clone https://github.com/laramies/theHarvester
cd theHarvester
git checkout 4.11.1
uv sync
uv run theHarvester -hБез git checkout 4.11.1 вы получите ветку с README про 5.0.
Запуск
Безопасный первый запуск: зарезервированный домен для примеров и два источника без ключей.
$ uv run theHarvester -d example.com -b crtsh,certspotter -l 20| Параметр | Что делает |
|---|---|
-d | цель: домен или компания |
-b | источники через запятую |
-l | максимум результатов (по умолчанию 500) |
-f report | сохранить результат в XML и JSON |
-q | скрыть предупреждения о ключах |
Вывод разбит на блоки: IP, адреса почты, люди, хосты. На example.com публичных записей почти нет, там вернулся один хост. Ключи для платных источников кладутся в api-keys.yaml.
Пассивное и активное
- Пассивные источники не обращаются к цели напрямую, но сторонние сервисы всё равно видят название цели.
- Активные флаги отправляют запросы цели или её DNS:
-c(перебор),-t(захват поддомена),-r,-n,-a,-s,--screenshot. Включайте только с явным разрешением. Ключ провайдера или публичный хост разрешением не считается.
Как читать результат
- Хост в журнале сертификатов не значит, что сервер жив: проверьте.
- Адреса почты — только то, что встретилось в источниках. Не рассылайте на них письма.
- Один IP часто обслуживает много сайтов, по одному совпадению о принадлежности не судите.
- Ноль результатов не значит «ничего нет»: источник мог упереться в лимит.
- Подтверждайте находки вторым источником.
Что нового в 5.0
Python 3.14, источники разделены по уровню воздействия, результаты в SQLite, локальный интерфейс HarvestView вместо REST. Команды запуска сохранились, но часть маршрутов убрана. Переход описан в вики проекта.
Дальше
Whois и DNS, Shodan и Censys для найденных адресов, Wayback Machine для старых версий страниц.
Проверено 25 октября 2026 года: README версии 4.11.1, theHarvester -h, документация проекта и пробный запуск на example.com.