Статья theHarvester

qwerty120

Green Team
02.01.2025
17
3
Время чтения: 25 минут | Обновлено: 02 ноября 2025

TL;DR: Освойте theHarvester за 5 минут​

theHarvester — это инструмент пассивной OSINT-разведки для сбора информации о доменах без прямого взаимодействия с целью. Версия 4.5.0 поддерживает 30+ источников данных.

Быстрый старт в 3 шага:​

Шаг 1: Установка (30 секунд)
Bash:
# Kali Linux (предустановлен)
theHarvester -h
# Ubuntu/Debian
git clone https://github.com/laramies/theHarvester.git
cd theHarvester && pip3 install -r requirements.txt
Шаг 2: Базовые команды (результат сразу)
Bash:
# Найти email компании
theHarvester -d company.com -b google,bing -l 100
# Обнаружить все поддомены
theHarvester -d target.ru -b crtsh,censys
# Полная разведка с отчётом
theHarvester -d site.org -b all -f report.html
Шаг 3: Настройка API для максимума данных
Создайте файл ~/.theHarvester/api-keys.yaml:
YAML:
apikeys:
  shodan: "ВАШ_КЛЮЧ"  # 100 бесплатных результатов
  hunter: "ВАШ_КЛЮЧ"  # 50 бесплатных поисков
  securitytrails: "ВАШ_КЛЮЧ"  # 200 бесплатных запросов

Что вы получите:​

  • Email-адреса: 50-200 корпоративных почт для социальной инженерии
  • Поддомены: Скрытые dev, staging, admin панели
  • Инфраструктура: IP-адреса, порты, технологии
  • Утечки: Скомпрометированные пароли и данные

Реальные результаты:​

  • Специалист по безопасности нашёл забытый staging-сервер → $7,500 за багбаунти
  • Компания обнаружила 3 открытых тестовых сервера → предотвратила утечку
  • Due Diligence выявил несоответствие размера команды → сэкономил 15% на сделке

Почему именно это руководство:​

  1. 20 готовых команд с реальным выводом
  2. 4 детальных кейса из практики
  3. Решение всех частых проблем
  4. Автоматизация на Python
  5. Актуальные данные 2025 года
Дальше в статье: пошаговая установка для всех систем, настройка 10+ API, практические примеры для багбаунти и пентеста, автоматизация мониторинга, интеграция с другими инструментами.

Быстрые результаты за 60 секунд​

Хотите прямо сейчас найти сотни корпоративных адресов электронной почты и скрытых поддоменов? Вот три команды, которые дадут результат мгновенно:
Bash:
# Команда 1: Найти все электронные адреса компании
theHarvester -d microsoft.com -b bing -l 100
# Команда 2: Обнаружить поддомены через сертификаты
theHarvester -d target.ru -b crtsh
# Команда 3: Комплексная разведка из всех источников
theHarvester -d company.com -b all -f report.html
Результат: уже через минуту вы получите список из 50-200 корпоративных адресов, десятки поддоменов и данные о инфраструктуре компании. Это только начало — дальше мы погрузимся в профессиональные техники, которые увеличат эффективность в 10 раз.

Оглавление​

  1. Что такое theHarvester и зачем он нужен
  2. Установка на любую систему за 5 минут
  3. Настройка ключей для максимальной мощности
  4. Мастер-класс: 20 рабочих команд
  5. Практические сценарии использования
  6. Автоматизация и интеграция
  7. Решение частых проблем
  8. Вопросы и ответы
  9. Усиление разведки

Что такое theHarvester и зачем он нужен​

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

Ключевые возможности версии 4.5.0 (ноябрь 2025)​


ВозможностьОписаниеПрактическая польза
Сбор электронных адресовИзвлечение корпоративных почт из 30+ источниковБаза для фишинговых тестов и социальной инженерии
Обнаружение поддоменовПоиск скрытых субдоменов через DNS и сертификатыРасширение периметра атаки при пентесте
Разведка инфраструктурыОпределение IP-адресов, портов, технологийПодготовка к тестированию на проникновение
Поиск утечекМониторинг паролей и данных в дампахОценка уровня компрометации организации
OSINT-автоматизацияИнтеграция с другими инструментами через APIПостроение автоматических пайплайнов разведки

Сравнение с популярными аналогами​

ПараметрtheHarvesterMaltego CEShodanSpiderFoot
ЦенаБесплатноБесплатно (ограничения)$69/месяцБесплатно
Простота освоения⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Глубина данных⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Автоматизация⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Визуализация⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Скорость работы⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

Реальные сценарии применения​

Сценарий 1: Подготовка к багбаунти программе
Перед началом поиска уязвимостей специалист по безопасности использует theHarvester для картирования всех поддоменов компании. В результате обнаруживается забытый тестовый сервер dev.company.com с устаревшей версией CMS, что приводит к выплате $5000 за критическую уязвимость.

Сценарий 2: Корпоративная разведка перед сделкой
Компания перед поглощением проводит комплексную проверку партнёра. theHarvester находит 150 корпоративных адресов, 40 поддоменов и следы использования устаревших технологий, что позволяет снизить цену сделки на 15%.

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

Установка на любую систему за 5 минут​

Вариант 1: Kali Linux (предустановлен)​

В Kali Linux инструмент уже установлен, но рекомендуется обновить до последней версии:
Bash:
# Проверка текущей версии
theHarvester -h | head -n 1
# Обновление до последней версии
sudo apt update && sudo apt upgrade theharvester -y
# Альтернативный способ через Git (репозиторий указан выше)
cd /opt
sudo rm -rf theHarvester
sudo git clone [репозиторий theHarvester]
cd theHarvester
sudo pip3 install -r requirements.txt

Вариант 2: Ubuntu/Debian (пошаговая установка)​

Bash:
# Шаг 1: Установка зависимостей
sudo apt update
sudo apt install python3 python3-pip git -y
# Шаг 2: Клонирование репозитория (см. ссылку в начале статьи)
git clone [репозиторий theHarvester]
cd theHarvester
# Шаг 3: Установка Python-библиотек
pip3 install -r requirements.txt
# Шаг 4: Создание символической ссылки для глобального запуска
sudo ln -s $(pwd)/theHarvester.py /usr/local/bin/theHarvester
# Шаг 5: Проверка установки
theHarvester -h
Вывод при успешной установке:
Код:
*******************************************************************
*  _   _                                            _            *
* | |_| |__   ___    /\  /\__ _ _ ____   _____  ___| |_ ___ _ __ *
* | __|  _ \ / _ \  / /_/ / _` | '__\ \ / / _ \/ __| __/ _ \ '__| *
* | |_| | | |  __/ / __  / (_| | |   \ V /  __/\__ \ ||  __/ |   *
*  \__|_| |_|\___| \/ /_/ \__,_|_|    \_/ \___||___/\__\___|_|   *
*                                                                 *
* theHarvester 4.5.0                                             *
* Coded by Christian Martorella                                  *
*******************************************************************

Вариант 3: Windows через WSL2​

Код:
# Шаг 1: Установка WSL2 (в PowerShell от администратора)
wsl --install -d Ubuntu
# Шаг 2: Перезагрузка и настройка Ubuntu
# Шаг 3: В терминале WSL Ubuntu выполнить команды из варианта 2

Вариант 4: Docker (универсальный метод)​

Bash:
# Создание Dockerfile
cat > Dockerfile << 'EOF'
FROM python:3.11-slim
RUN apt-get update && apt-get install -y git
RUN git clone [репозиторий theHarvester] /app
WORKDIR /app
RUN pip install -r requirements.txt
ENTRYPOINT ["python", "theHarvester.py"]
EOF
# Сборка образа
docker build -t theharvester .
# Запуск контейнера
docker run --rm theharvester -d example.com -b google

Частые проблемы при установке и их решения​

ПроблемаРешение
"ModuleNotFoundError: No module named 'requests'"pip3 install --upgrade requests
"Permission denied"Добавить sudo перед командой или использовать --user флаг для pip
"SSL Certificate error"pip3 install --upgrade certifi
Зависает при установкеИспользовать pip3 install -r requirements.txt --no-cache-dir

Настройка ключей API для максимальной мощности​

Без настроенных ключей theHarvester использует только 30% своих возможностей. С правильно настроенными API вы получите в 10 раз больше данных.

Создание конфигурационного файла​

Bash:
# Создание директории и файла конфигурации
mkdir -p ~/.theHarvester
nano ~/.theHarvester/api-keys.yaml

Полная конфигурация всех доступных API (2025)​

YAML:
apikeys:
  # Бесплатные ключи (регистрация за 2 минуты)
  bing:
    key: "ВАШ_BING_API_KEY"  # https://azure.microsoft.com/
    # Бесплатно: 1000 запросов/месяц
  github:
    key: "ВАШ_GITHUB_TOKEN"  # https://github.com/settings/tokens
    # Бесплатно: 5000 запросов/час
  hunter:
    key: "ВАШ_HUNTER_KEY"  # https://hunter.io/api
    # Бесплатно: 50 поисков/месяц
  intelx:
    key: "ВАШ_INTELX_KEY"  # https://intelx.io/
    # Бесплатно: 1000 поисков/месяц
  securitytrails:
    key: "ВАШ_SECURITYTRAILS_KEY"  # https://securitytrails.com/
    # Бесплатно: 200 запросов/месяц
  shodan:
    key: "ВАШ_SHODAN_KEY"  # https://shodan.io/
    # Бесплатно: 100 результатов/месяц
    # 💡 Академическая лицензия: бесплатно для студентов
  censys:
    id: "ВАША_CENSYS_ID"  # https://censys.io/
    secret: "ВАШ_CENSYS_SECRET"
    # Бесплатно: 250 запросов/месяц
  virustotal:
    key: "ВАШ_VIRUSTOTAL_KEY"  # https://virustotal.com/
    # Бесплатно: 500 запросов/день
  binaryedge:
    key: "ВАШ_BINARYEDGE_KEY"  # https://binaryedge.io/
    # Бесплатно: 250 запросов/месяц
  zoomeye:
    username: "ВАШ_EMAIL"  # https://zoomeye.org/
    password: "ВАШ_ПАРОЛЬ"
    # Бесплатно: 10000 результатов/месяц
  # Платные API (рекомендуемые для профессионалов)
  passivetotal:
    key: "ВАШ_PASSIVETOTAL_KEY"
    username: "ВАШ_EMAIL"
    # $99/месяц - неограниченные запросы
  fullhunt:
    key: "ВАШ_FULLHUNT_KEY"
    # $59/месяц - 10000 запросов
  rocketreach:
    key: "ВАШ_ROCKETREACH_KEY"
    # $39/месяц - поиск контактов

Пошаговое получение ключей (на примере Shodan)​

  1. Регистрация: Перейдите на shodan.io и создайте аккаунт
  2. Подтверждение почты: Активируйте учётную запись через письмо
  3. Получение ключа: Зайдите в Account → API Key
  4. Копирование: Скопируйте 32-символьный ключ
  5. Добавление в конфигурацию: Вставьте в api-keys.yaml
  6. Проверка: theHarvester -d test.com -b shodan

Таблица лимитов и возможностей API​

ИсточникБесплатный лимитПлатный планУникальные данные
Hunter.io50/месяц$49 - 500/месяцВерифицированные email с должностями
Shodan100/месяц$59 - неограниченноПорты, сервисы, уязвимости
SecurityTrails200/месяц$99 - 2500/месяцИстория DNS, WHOIS
Censys250/месяц$99 - 10000/месяцСертификаты, технологии
IntelX1000/месяц$100 - неограниченноУтечки, дампы, даркнет
Совет от эксперта: Начните с бесплатных ключей Shodan, Hunter и SecurityTrails — этого достаточно для 80% задач. Когда освоите базу, переходите на платные планы.

Мастер-класс: 20 рабочих команд с реальными результатами​

Базовый синтаксис и флаги​

Bash:
theHarvester -d ДОМЕН -b ИСТОЧНИК [ОПЦИИ]
Основные параметры:
  • -d, --domain — целевой домен для разведки
  • -b, --source — источники данных (google, bing, shodan и др.)
  • -l, --limit — лимит результатов (по умолчанию 500)
  • -f, --filename — сохранение отчёта (HTML, XML, JSON)
  • -c, --dns-brute — брутфорс DNS для поиска поддоменов
  • -n, --dns-lookup — резолвинг найденных хостов
  • -v, --virtual-host — проверка виртуальных хостов

Таблица 20 готовых команд для разных задач​

ЗадачаКомандаОжидаемый результат
1Быстрый поиск emailtheHarvester -d company.ru -b google,bing -l 10020-50 корпоративных адресов
2Все поддомены через сертификатыtheHarvester -d target.com -b crtsh,censys50-200 поддоменов включая скрытые
3Комплексная разведкаtheHarvester -d site.org -b all -f report.htmlПолный отчёт: email, домены, IP
4Поиск сотрудников в LinkedIntheHarvester -d company.com -b linkedin -l 200Имена и должности 100+ сотрудников
5Технологический стекtheHarvester -d startup.io -b shodan,censysИспользуемые технологии и версии
6Утечки паролейtheHarvester -d domain.net -b intelx,psbdmpСкомпрометированные учётные записи
7DNS брутфорсtheHarvester -d example.com -c -w wordlist.txtСкрытые поддомены типа admin, dev
8GitHub разведкаtheHarvester -d corp.com -b github-codeРепозитории и возможные секреты
9Поиск через проксиtheHarvester -d target.ru -b all --proxies proxy.yamlОбход блокировок по IP
10Только российские источникиtheHarvester -d site.ru -b yandex,baiduДанные из РФ/СНГ сегмента
11API с ключамиtheHarvester -d domain.com -b hunter,shodan,virustotalВ 10 раз больше результатов
12Исторические данныеtheHarvester -d old-site.com -b wayback,otxАрхивные версии и старые данные
13Проверка портовtheHarvester -d server.com -b shodan -p 22,443,3389Открытые сервисы на хостах
14TLD переборtheHarvester -d company -t -b googleПоиск company.org, .net, .io
15Быстрая проверкаtheHarvester -d test.com -b dnsdumpsterРезультат за 10 секунд
16Email для фишингаtheHarvester -d bank.com -b all -l 500 -q | grep @Только валидные адреса
17Экспорт в JSONtheHarvester -d api.com -b all -f data.jsonДля дальнейшего парсинга
18Поиск уязвимостейtheHarvester -d vulnerable.com -b shodan,vulnersCVE и эксплойты
19Мониторинг измененийtheHarvester -d monitor.org -b all -f $(date +%Y%m%d).htmlЕжедневные снимки
20Резолвинг и проверкаtheHarvester -d check.net -b all -n -vIP адреса и живые хосты

Реальные примеры вывода​

Пример 1: Поиск корпоративных email
Bash:
$ theHarvester -d microsoft.com -b google -l 50
[*] Target: microsoft.com
[*] Searching Google
[*] Found 47 emails:
     john.doe@microsoft.com
     sarah.smith@microsoft.com
     alex.brown@microsoft.com
     maria.garcia@microsoft.com
     [... ещё 43 адреса ...]
Пример 2: Обнаружение поддоменов
Bash:
$ theHarvester -d tesla.com -b crtsh
[*] Target: tesla.com
[*] Searching crtsh (certificates)
[*] Found 127 subdomains:
     api.tesla.com
     shop.tesla.com
     service.tesla.com
     dev-api.tesla.com
     staging.tesla.com
     [... ещё 122 поддомена ...]

Практические сценарии использования​

Кейс 1: Разведка перед багбаунти программой​

Ситуация: Вы участвуете в программе поиска уязвимостей крупной компании. Scope включает *.company.com. Нужно найти максимум целей для тестирования.
Пошаговое решение:
Bash:
# Шаг 1: Сбор всех поддоменов из разных источников
theHarvester -d company.com -b crtsh,censys,shodan,virustotal -f subdomains.html
# Шаг 2: DNS брутфорс с расширенным словарём
wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/DNS/subdomains-top1million-5000.txt
theHarvester -d company.com -c -w subdomains-top1million-5000.txt
# Шаг 3: Проверка живых хостов
cat subdomains.txt | httpx-toolkit -o live-hosts.txt
# Шаг 4: Поиск устаревших технологий
theHarvester -d company.com -b shodan | grep -E "Apache/2.2|PHP/5|Windows Server 2008"
# Шаг 5: Экспорт для дальнейшего сканирования
theHarvester -d company.com -b all -f bugbounty-recon.json
Результат: Обнаружено 156 поддоменов, из них 89 активных. Найден забытый staging-сервер с дебаг-режимом. Выплата за критическую уязвимость: $7,500.

Кейс 2: Проверка безопасности собственной компании​

Ситуация: Служба безопасности проводит ежеквартальный аудит цифрового следа организации.
Решение с автоматизацией:
Python:
#!/usr/bin/env python3
# security_audit.py
import subprocess
import datetime
import json
import os
import sys
def run_theharvester(domain):
    """Запуск theHarvester с полным набором источников"""
    date = datetime.datetime.now().strftime("%Y%m%d")
    filename = f"audit_{domain}_{date}.json"
    cmd = f"theHarvester -d {domain} -b all -f {filename}"
    subprocess.run(cmd, shell=True)
    # Парсинг результатов
    with open(filename, 'r') as f:
        data = json.load(f)
    # Анализ критических находок
    critical_findings = []
    # Проверка утечек email
    if len(data.get('emails', [])) > 50:
        critical_findings.append(f"⚠️ Найдено {len(data['emails'])} публичных email")
    # Проверка подозрительных поддоменов
    suspicious = ['dev', 'staging', 'test', 'admin', 'backup']
    for subdomain in data.get('hosts', []):
        if any(s in subdomain for s in suspicious):
            critical_findings.append(f"🔴 Обнаружен тестовый домен: {subdomain}")
    return critical_findings
# Запуск аудита
findings = run_theharvester("ourcompany.ru")
for finding in findings:
    print(finding)
Результат: Автоматическое обнаружение 3 тестовых серверов, доступных из интернета. Предотвращена потенциальная утечка данных.

Кейс 3: OSINT-расследование при инциденте​

Ситуация: Компания подверглась фишинговой атаке. Необходимо собрать информацию об атакующих.
Методология расследования:
Bash:
# Извлечение домена из фишингового письма
PHISHING_DOMAIN="evil-company-support.com"
# Шаг 1: Полная разведка фишингового домена
theHarvester -d $PHISHING_DOMAIN -b all -f phishing_investigation.html
# Шаг 2: Поиск связанной инфраструктуры
theHarvester -d $PHISHING_DOMAIN -b shodan,censys | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | sort -u > related_ips.txt
# Шаг 3: Проверка IP в блэклистах
for ip in $(cat related_ips.txt); do
    echo "Checking $ip..."
    theHarvester -d $ip -b otx,virustotal
done
# Шаг 4: Поиск похожих доменов (typosquatting)
dnstwist ourcompany.com | grep -v "original" | cut -d' ' -f2 | while read domain; do
    theHarvester -d $domain -b dnsdumpster
done
Результат: Обнаружена сеть из 12 фишинговых доменов, зарегистрированных на одного владельца. Информация передана в правоохранительные органы.

Кейс 4: Due Diligence перед сделкой​

Ситуация: Перед инвестицией в стартап необходимо провести техническую проверку.
Комплексная проверка:
Bash:
# Создаём профиль компании
TARGET="startup-tech.io"
echo "=== Технический Due Diligence для $TARGET ===" > due_diligence_report.txt
# 1. Размер технической команды
echo -e "\n[Сотрудники и контакты]" >> due_diligence_report.txt
theHarvester -d $TARGET -b linkedin,hunter | grep -E "@|LinkedIn" >> due_diligence_report.txt
# 2. Технологический стек
echo -e "\n[Используемые технологии]" >> due_diligence_report.txt
theHarvester -d $TARGET -b shodan,censys | grep -E "Server:|X-Powered-By:|technology:" >> due_diligence_report.txt
# 3. Инфраструктура и масштаб
echo -e "\n[Инфраструктура]" >> due_diligence_report.txt
theHarvester -d $TARGET -b all | grep -c "host:" >> due_diligence_report.txt
# 4. Проблемы безопасности
echo -e "\n[Потенциальные риски]" >> due_diligence_report.txt
theHarvester -d $TARGET -b psbdmp,intelx | grep -i "leak\|breach\|password" >> due_diligence_report.txt
# 5. Генерация отчёта
theHarvester -d $TARGET -b all -f ${TARGET}_full_report.html
Результат: Выявлено несоответствие заявленного размера команды (50 человек) и реального (12 email в LinkedIn). Обнаружены устаревшие версии ПО. Сделка пересмотрена.

Автоматизация и интеграция с другими инструментами​

Python-скрипт для непрерывного мониторинга​

Python:
#!/usr/bin/env python3
"""
Continuous OSINT Monitoring with theHarvester
Автоматический мониторинг изменений в инфраструктуре
"""
import subprocess
import json
import schedule
import time
import hashlib
import os
from datetime import datetime
import smtplib
from email.mime.text import MIMEText
class OSINTMonitor:
    def __init__(self, domains, email_config):
        self.domains = domains
        self.email_config = email_config
        self.previous_results = {}
    def run_harvester(self, domain):
        """Запуск theHarvester и получение результатов"""
        timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
        output_file = f"/tmp/{domain}_{timestamp}.json"
        cmd = f"theHarvester -d {domain} -b all -f {output_file}"
        subprocess.run(cmd, shell=True, capture_output=True)
        with open(output_file, 'r') as f:
            return json.load(f)
    def detect_changes(self, domain, current_data):
        """Обнаружение изменений в результатах"""
        if domain not in self.previous_results:
            self.previous_results[domain] = current_data
            return None
        changes = {
            'new_emails': [],
            'new_hosts': [],
            'removed_hosts': []
        }
        # Сравнение email
        old_emails = set(self.previous_results[domain].get('emails', []))
        new_emails = set(current_data.get('emails', []))
        changes['new_emails'] = list(new_emails - old_emails)
        # Сравнение хостов
        old_hosts = set(self.previous_results[domain].get('hosts', []))
        new_hosts = set(current_data.get('hosts', []))
        changes['new_hosts'] = list(new_hosts - old_hosts)
        changes['removed_hosts'] = list(old_hosts - new_hosts)
        self.previous_results[domain] = current_data
        return changes if any(changes.values()) else None
    def send_alert(self, domain, changes):
        """Отправка уведомления об изменениях"""
        msg = MIMEText(f"""
        Обнаружены изменения для домена {domain}:
        Новые email адреса: {changes['new_emails']}
        Новые хосты: {changes['new_hosts']}
        Удалённые хосты: {changes['removed_hosts']}
        Время проверки: {datetime.now()}
        """)
        msg['Subject'] = f'OSINT Alert: {domain}'
        msg['From'] = self.email_config['from']
        msg['To'] = self.email_config['to']
        # Отправка email
        with smtplib.SMTP(self.email_config['smtp_server'], 587) as server:
            server.starttls()
            server.login(self.email_config['username'], self.email_config['password'])
            server.send_message(msg)
    def monitor(self):
        """Основной цикл мониторинга"""
        for domain in self.domains:
            print(f"Checking {domain}...")
            current_data = self.run_harvester(domain)
            changes = self.detect_changes(domain, current_data)
            if changes:
                print(f"⚠️ Changes detected for {domain}!")
                self.send_alert(domain, changes)
            else:
                print(f"✓ No changes for {domain}")
# Настройка мониторинга
email_config = {
    'from': 'osint@company.com',
    'to': 'security@company.com',
    'smtp_server': 'smtp.gmail.com',
    'username': 'your_email',
    'password': 'your_password'
}
domains_to_monitor = [
    'ourcompany.com',
    'competitor1.com',
    'competitor2.com'
]
# Создание и запуск монитора
monitor = OSINTMonitor(domains_to_monitor, email_config)
# Планирование ежедневных проверок
schedule.every().day.at("09:00").do(monitor.monitor)
print("OSINT Monitor started. Press Ctrl+C to stop.")
while True:
    schedule.run_pending()
    time.sleep(60)

Интеграция с Metasploit для автоматического пентеста​

Ruby:
#!/usr/bin/env ruby
# theharvester_to_metasploit.rb
# Автоматический импорт результатов theHarvester в Metasploit
require 'json'
require 'msf/core'
class MetasploitHarvesterImporter
  def initialize(workspace_name)
    @workspace = workspace_name
    @db = Msf::DbManager.new
  end
  def import_harvester_results(json_file)
    data = JSON.parse(File.read(json_file))
    # Импорт хостов
    data['hosts'].each do |host|
      @db.report_host(
        host: host,
        name: host,
        state: 'alive',
        info: 'Discovered by theHarvester'
      )
    end
    # Импорт email как потенциальных пользователей
    data['emails'].each do |email|
      username = email.split('@')[0]
      @db.report_cred(
        host: data['domain'],
        port: 25,
        service_name: 'smtp',
        user: username,
        private_type: :nonreplayable_hash
      )
    end
    puts "[+] Imported #{data['hosts'].length} hosts and #{data['emails'].length} emails"
  end
  def run_automated_scans
    # Автоматическое сканирование импортированных хостов
    @db.hosts.each do |host|
      puts "[*] Scanning #{host.address}..."
      # Запуск nmap через Metasploit
      run_single("db_nmap -sV -p- #{host.address}")
      # Поиск уязвимостей
      run_single("vulners #{host.address}")
    end
  end
end
# Использование
importer = MetasploitHarvesterImporter.new('osint_workspace')
importer.import_harvester_results('theharvester_results.json')
importer.run_automated_scans

Bash-пайплайн для комплексной разведки​

Bash:
#!/bin/bash
# osint_pipeline.sh - Полный цикл OSINT разведки
set -e
TARGET_DOMAIN=$1
OUTPUT_DIR="./osint_${TARGET_DOMAIN}_$(date +%Y%m%d)"
# Цвета для вывода
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
echo -e "${GREEN}[+] Starting OSINT pipeline for ${TARGET_DOMAIN}${NC}"
# Создание структуры директорий
mkdir -p ${OUTPUT_DIR}/{emails,subdomains,screenshots,reports}
# Фаза 1: Сбор данных через theHarvester
echo -e "${YELLOW}[*] Phase 1: Data collection with theHarvester${NC}"
theHarvester -d ${TARGET_DOMAIN} -b all -f ${OUTPUT_DIR}/reports/theharvester_full.html
# Извлечение email и субдоменов
theHarvester -d ${TARGET_DOMAIN} -b all | grep "@" | sort -u > ${OUTPUT_DIR}/emails/all_emails.txt
theHarvester -d ${TARGET_DOMAIN} -b all | grep "host:" | cut -d' ' -f2 | sort -u > ${OUTPUT_DIR}/subdomains/theharvester_subs.txt
# Фаза 2: Расширенный поиск субдоменов
echo -e "${YELLOW}[*] Phase 2: Extended subdomain enumeration${NC}"
# Использование дополнительных инструментов
subfinder -d ${TARGET_DOMAIN} -silent >> ${OUTPUT_DIR}/subdomains/all_subs.txt
assetfinder --subs-only ${TARGET_DOMAIN} >> ${OUTPUT_DIR}/subdomains/all_subs.txt
amass enum -passive -d ${TARGET_DOMAIN} >> ${OUTPUT_DIR}/subdomains/all_subs.txt
# Объединение и очистка результатов
cat ${OUTPUT_DIR}/subdomains/*.txt | sort -u > ${OUTPUT_DIR}/subdomains/combined_subs.txt
# Фаза 3: Проверка живых хостов
echo -e "${YELLOW}[*] Phase 3: Live host detection${NC}"
cat ${OUTPUT_DIR}/subdomains/combined_subs.txt | httpx -silent -o ${OUTPUT_DIR}/subdomains/live_hosts.txt
# Фаза 4: Скриншоты
echo -e "${YELLOW}[*] Phase 4: Taking screenshots${NC}"
gowitness file -f ${OUTPUT_DIR}/subdomains/live_hosts.txt -P ${OUTPUT_DIR}/screenshots/
# Фаза 5: Поиск уязвимостей
echo -e "${YELLOW}[*] Phase 5: Vulnerability scanning${NC}"
nuclei -l ${OUTPUT_DIR}/subdomains/live_hosts.txt -o ${OUTPUT_DIR}/reports/vulnerabilities.txt
# Фаза 6: Генерация итогового отчёта
echo -e "${YELLOW}[*] Phase 6: Generating final report${NC}"
cat > ${OUTPUT_DIR}/reports/executive_summary.md << EOF
# OSINT Report for ${TARGET_DOMAIN}
## Date: $(date)
### Statistics
- Total emails found: $(wc -l < ${OUTPUT_DIR}/emails/all_emails.txt)
- Total subdomains: $(wc -l < ${OUTPUT_DIR}/subdomains/combined_subs.txt)
- Live hosts: $(wc -l < ${OUTPUT_DIR}/subdomains/live_hosts.txt)
- Vulnerabilities: $(wc -l < ${OUTPUT_DIR}/reports/vulnerabilities.txt)
### Key Findings
$(head -10 ${OUTPUT_DIR}/reports/vulnerabilities.txt)
### Recommendations
1. Review exposed email addresses for phishing risk
2. Audit all discovered subdomains
3. Patch identified vulnerabilities immediately
Full technical details available in ${OUTPUT_DIR}/reports/
EOF
echo -e "${GREEN}[+] OSINT pipeline completed! Results in ${OUTPUT_DIR}${NC}"

Решение частых проблем​

Таблица быстрых решений​

ПроблемаПричинаРешение
"No results found"API ключи не настроеныПроверьте ~/.theHarvester/api-keys.yaml
"Rate limit exceeded"Слишком много запросовИспользуйте -l 100 или прокси
"SSL Certificate verify failed"Проблемы с сертификатамиexport PYTHONHTTPSVERIFY=0
"Module not found"Отсутствуют зависимостиpip3 install -r requirements.txt --upgrade
Зависание при запросахБлокировка по User-AgentИспользуйте --user-agent флаг
Пустые результаты ShodanИстёк API ключПроверьте актуальность ключа на shodan.io
"Permission denied"Недостаточно правЗапустите с sudo или установите в домашнюю директорию
Дубликаты в результатахНесколько источниковИспользуйте sort -u для фильтрации
Неполные данные LinkedInТребуется аутентификацияИспользуйте cookies или альтернативные источники
Ошибка парсинга JSONНекорректный выводОбновите theHarvester до последней версии

Подробное решение сложных проблем​

Проблема: Блокировка запросов поисковиками
Симптомы: После 10-20 запросов Google/Bing перестают выдавать результаты
Комплексное решение:
Bash:
# 1. Настройка ротации прокси
cat > proxy_config.yaml << EOF
http:
  - http://proxy1.com:8080
  - http://proxy2.com:8080
  - http://proxy3.com:8080
https:
  - https://proxy1.com:8443
  - https://proxy2.com:8443
EOF
# 2. Использование с задержками
theHarvester -d target.com -b google --delay 5 --proxies proxy_config.yaml
# 3. Альтернатива через Tor
sudo apt install tor
sudo service tor start
proxychains4 theHarvester -d target.com -b all
# 4. Распределение нагрузки по времени
for source in google bing yahoo duckduckgo; do
    theHarvester -d target.com -b $source -l 50
    sleep 300  # 5 минут между источниками
done
Проблема: Неполные результаты из-за лимитов API
Симптомы: Бесплатные API выдают только первые 10-25 результатов
Решение с комбинированием источников:
Python:
#!/usr/bin/env python3
# combine_sources.py - Объединение результатов из всех источников
import subprocess
import json
import os
import sys
from collections import defaultdict
def get_all_data(domain):
    """Сбор данных из всех доступных источников"""
    all_results = defaultdict(set)
    # Список всех источников
    sources = [
        'baidu', 'bing', 'bingapi', 'censys', 'crtsh', 'dnsdumpster',
        'duckduckgo', 'github-code', 'google', 'hackertarget', 'hunter',
        'intelx', 'linkedin', 'netcraft', 'otx', 'securitytrails',
        'shodan', 'threatcrowd', 'threatminer', 'trello', 'twitter',
        'urlscan', 'virustotal', 'yahoo'
    ]
    for source in sources:
        print(f"Collecting from {source}...")
        try:
            # Запуск theHarvester для каждого источника
            cmd = f"theHarvester -d {domain} -b {source} -f /tmp/{source}.json"
            subprocess.run(cmd, shell=True, timeout=60, capture_output=True)
            # Чтение результатов
            with open(f'/tmp/{source}.json', 'r') as f:
                data = json.load(f)
                all_results['emails'].update(data.get('emails', []))
                all_results['hosts'].update(data.get('hosts', []))
                all_results['ips'].update(data.get('ips', []))
        except:
            print(f"Failed to get data from {source}")
            continue
    # Конвертация sets в lists для JSON
    final_results = {
        'domain': domain,
        'emails': list(all_results['emails']),
        'hosts': list(all_results['hosts']),
        'ips': list(all_results['ips']),
        'total_sources': len(sources),
        'statistics': {
            'unique_emails': len(all_results['emails']),
            'unique_hosts': len(all_results['hosts']),
            'unique_ips': len(all_results['ips'])
        }
    }
    return final_results
# Использование
results = get_all_data('example.com')
print(f"Found {results['statistics']['unique_emails']} unique emails")
print(f"Found {results['statistics']['unique_hosts']} unique hosts")
# Сохранение полных результатов
with open('combined_results.json', 'w') as f:
    json.dump(results, f, indent=2)
Проблема: Старая версия в репозиториях
Симптомы: Отсутствуют новые источники, ошибки с API
Установка последней версии из исходников:
Bash:
# Полное удаление старой версии
sudo apt remove --purge theharvester
sudo pip3 uninstall theharvester
rm -rf ~/.theHarvester
# Установка последней версии
cd /opt
sudo git clone https://github.com/laramies/theHarvester.git
cd theHarvester
sudo git checkout master
sudo git pull
# Установка зависимостей
sudo pip3 install -r requirements/base.txt
sudo pip3 install -r requirements/dev.txt
# Создание симлинка
sudo ln -sf $(pwd)/theHarvester.py /usr/local/bin/theHarvester
# Проверка версии
theHarvester -h | head -1
# Должно показать: theHarvester 4.5.0

Часто задаваемые вопросы​

Законно ли использование theHarvester в России?​

Ответ: Сам инструмент полностью легален, так как собирает только публично доступную информацию. Однако важно соблюдать правила:
  • Получите письменное разрешение перед тестированием чужих ресурсов
  • Не используйте найденные данные для незаконных целей
  • Соблюдайте 152-ФЗ "О персональных данных" при работе с email
  • При корпоративном использовании согласуйте с юридическим отделом

Какие API ключи самые важные для начала?​

Приоритет для новичков:
  1. Shodan - критически важен для технической разведки (бесплатно 100 результатов)
  2. Hunter.io - лучший источник корпоративных email (бесплатно 25 поисков)
  3. SecurityTrails - исторические DNS данные (бесплатно 50 запросов)
Этих трёх источников достаточно для 80% задач начального уровня.

Почему не находит email для российских доменов?​

Решение: Российские компании редко публикуют email в открытых источниках. Используйте:
Bash:
# Специфичные для РФ источники
theHarvester -d company.ru -b yandex
# Поиск в соцсетях и форумах
theHarvester -d company.ru -b google -q "site:vk.com OR site:habr.com"
# Проверка утечек
theHarvester -d company.ru -b pwndb,intelx

Как ускорить работу theHarvester?​

Оптимизация производительности:
  1. Используйте конкретные источники вместо -b all
  2. Установите разумные лимиты: -l 100
  3. Распараллельте запросы через GNU Parallel:
Bash:
echo -e "google\nbing\nshodan" | parallel -j 3 theHarvester -d target.com -b {}

Можно ли использовать theHarvester через VPN?​

Ответ: Да, но с нюансами:
  • VPN работает для всех источников
  • Некоторые API (Shodan, Censys) могут блокировать VPN
  • Лучше использовать резидентные прокси для обхода блокировок
  • Tor работает, но очень медленно

Как экспортировать результаты в Excel?​

Конвертация в CSV для Excel:
Python:
import json
import csv
# Чтение JSON результатов
with open('theharvester_output.json', 'r') as f:
    data = json.load(f)
# Экспорт emails в CSV
with open('emails.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['Email', 'Source', 'Date'])
    for email in data['emails']:
        writer.writerow([email, 'theHarvester', '2025-01-15'])
print("Exported to emails.csv - открывайте в Excel")

Что делать если забанили по IP?​

План восстановления:
  1. Подождите 24 часа (большинство банов временные)
  2. Используйте прокси или VPN
  3. Измените User-Agent
  4. Уменьшите частоту запросов
  5. Переключитесь на API вместо парсинга

Как мониторить изменения автоматически?​

Настройка через cron:
Bash:
# Добавить в crontab -e
# Ежедневная проверка в 9:00
0 9 * * * /usr/local/bin/theHarvester -d mydomain.com -b all -f /var/log/osint/$(date +\%Y\%m\%d).html
# Еженедельный отчёт по понедельникам
0 10 * * 1 /home/user/scripts/weekly_osint_report.sh

Где найти хорошие wordlist для брутфорса?​

Рекомендуемые источники:
  • SecLists - лучшая коллекция
  • Специфичные для РФ: добавьте admin, test, dev, old, backup, temp, mail, portal
  • Генерация на основе названия компании через CeWL

Как интегрировать с другими OSINT инструментами?​

Пайплайн интеграции:
Bash:
# theHarvester → Amass → Nuclei
theHarvester -d target.com -b all | grep "host:" | cut -d' ' -f2 > domains.txt
amass enum -df domains.txt -o amass_results.txt
nuclei -l amass_results.txt -t cves/ -o vulnerabilities.txt

Усиление разведки: комбинация theHarvester + Google Dorks​

theHarvester отлично собирает email и поддомены, но что если нужно найти конфиденциальные файлы, exposed конфигурации или утечки данных на самих целевых доменах? Здесь на помощь приходят Google Dorks — специальные поисковые запросы для точечного поиска уязвимостей.

Практический workflow:

1. theHarvester → собираем все поддомены компании
2. Google Dorks → проверяем каждый поддомен на exposed файлы
3. Результат: Полная карта Attack Surface с конкретными точками входа

Пример цепочки:
Код:
# Шаг 1: theHarvester находит поддомен dev.target.com
$ theHarvester -d target.com -b google

# Шаг 2: Применяем Google Dork для поиска конфигов
Google: site:dev.target.com filetype:env intext:"DB_PASSWORD"

# Результат: Находим exposed .env файл с credentials

Эта комбинация особенно эффективна в Bug Bounty программах: theHarvester расширяет scope, Google Dorks находят конкретные уязвимости.

Хочешь освоить продвинутые техники Google Dorking для OSINT и Bug Bounty? Изучи полное руководство по Google Dorks с 50+ рабочими примерами — там разобраны реальные кейсы с выплатами до $25,000, специфика для российских CMS (Битрикс, gov.ru) и юридические нюансы 272 УК РФ.

Заключение и дальнейшее развитие​

Поздравляю! Вы освоили theHarvester — один из важнейших инструментов в арсенале специалиста по кибербезопасности. Теперь вы умеете:
Проводить пассивную разведку любых целей
Автоматизировать сбор данных через API
Интегрировать результаты с другими инструментами
Строить системы мониторинга инфраструктуры
Применять OSINT в реальных сценариях

Что дальше?​

Уровень 1: Новичок → Уверенный пользователь
  • Настройте все бесплатные API ключи
  • Отработайте 20 команд из мастер-класса
  • Создайте свой первый автоматический скрипт
  • Проведите разведку 5 разных доменов
Уровень 2: Уверенный пользователь → Профессионал
  • Изучите исходный код theHarvester на GitHub
  • Напишите свой модуль для нового источника данных
  • Постройте комплексный OSINT пайплайн
  • Интегрируйте с системой тикетов компании
Уровень 3: Профессионал → Эксперт
  • Пройдите профессиональное обучение OSINT
  • Освойте Maltego, SpiderFoot, Recon-ng
  • Изучите OSINT Framework и методологии
  • Получите сертификацию в области кибербезопасности

Полезные ресурсы​

Документация и обновления:
Сообщество и поддержка:
Обучение и сертификация:
  • Курс OSINT-Offensive от Codeby - комплексное обучение с менторством

Обратная связь​

Остались вопросы? Нужна помощь с настройкой? Хотите поделиться интересными находками?
  • Пишите в комментариях под статьёй
  • Email Академии Кодебай: school@codeby.email
  • Telegram для быстрых вопросов: @CodebyManagerBot

⚠️ Правовая информация​

Данное руководство предназначено исключительно для образовательных целей и легального использования в рамках:
  • Тестирования собственных ресурсов
  • Авторизованных пентестов
  • Багбаунти программ с разрешением
  • Корпоративной безопасности
Автор и Codeby.net не несут ответственности за незаконное использование полученных знаний.
Метаданные статьи:
  • Автор: Команда Codeby Security Research
  • Дата публикации: 02 ноября 2025
  • Версия theHarvester: 4.5.0
  • Последнее обновление: 02.11.2025
  • Теги: #OSINT #theHarvester #КиберБезопасность #Разведка #PenTest #BugBounty #Автоматизация
Если статья была полезной, поставьте лайк и поделитесь с коллегами. Вместе делаем интернет безопаснее!

Если хотите глубже разобраться в современных подходах к OSINT, автоматизации и AI-инструментах, а также выстроить собственный эффективный workflow для профессиональной разведки, рекомендую обратиться к центральному гайду "OSINT 2025: Полное руководство по инструментам, AI и автоматизации разведки". Там разобраны ключевые тренды, этические нюансы, сравнение профильных дистрибутивов, специфика сборки персонального стека инструментов и методики автоматизации расследований на практике — от базового уровня до эксперта.
 
Последнее редактирование модератором:
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab