TheHarvester
| Fiche express | |
|---|---|
| Nom | theHarvester |
| Type | Collecte OSINT (e-mails, sous-domaines, hôtes) |
| Auteur | Christian Martorella (Edge-Security) |
| Voir aussi | Recon-ng · Maltego · script historique |
theHarvester est un outil de reconnaissance OSINT qui collecte, à partir de sources publiques, des adresses e-mail, sous-domaines, noms d'hôtes et adresses IP associés à un domaine cible. C'est l'un des outils les plus utilisés en toute première phase d'un test d'intrusion, avant tout contact actif avec la cible : il ne fait qu'interroger des services tiers (moteurs de recherche, bases de certificats, etc.), sans jamais toucher directement l'infrastructure visée.
L'outil a beaucoup évolué depuis sa version d'origine (voir TheHarverster.py pour le script historique en Python 2, qui n'interrogeait que deux moteurs de recherche par expression régulière) : la version actuelle est réécrite en Python 3, multi-sources, et intégrée par défaut dans Kali Linux.
Installation
# Kali Linux : préinstallé, sinon
apt install theharvester
# Depuis les sources
git clone https://github.com/laramies/theHarvester.git
cd theHarvester
pip install -r requirements/base.txt
Sources
theHarvester agrège des résultats depuis de nombreuses sources, notamment (liste non exhaustive, à vérifier selon la version) :
- Moteurs de recherche généralistes : Google, Bing, DuckDuckGo, Yahoo, Baidu.
- Bases de certificats TLS : crt.sh (Certificate Transparency), très efficace pour l'énumération de sous-domaines.
- Moteurs orientés sécurité : Shodan, VirusTotal, SecurityTrails, HackerTarget.
- Réseaux professionnels : LinkedIn (collecte de noms d'employés).
Certaines sources nécessitent une clé API (Shodan, VirusTotal, SecurityTrails…) à configurer dans le fichier api-keys.yaml de l'outil.
Utilisation
# Recherche simple via Google
theHarvester -d domaine-cible.tld -b google
# Toutes les sources disponibles, limité à 500 résultats
theHarvester -d domaine-cible.tld -b all -l 500
# Sous-domaines via la transparence des certificats
theHarvester -d domaine-cible.tld -b crtsh
# Export des résultats
theHarvester -d domaine-cible.tld -b all -f resultats.html
Principales options : -d (domaine cible), -b (source ou all), -l (limite de résultats), -f (fichier de sortie HTML/JSON), -s (décalage pour paginer), -v (vérification DNS des hôtes trouvés, plus bruyante côté cible).
Résultats
- Adresses e-mail liées au domaine.
- Sous-domaines et noms d'hôtes.
- Adresses IP associées.
- Selon les sources activées : noms d'employés, URLs, bannières de services exposés (via Shodan).
Limites
- Dépend entièrement de la disponibilité et des quotas des services tiers interrogés (rate-limiting, blocage de scraping par les moteurs de recherche, clés API expirées).
- Les résultats sont déclaratifs et doivent être recoupés (faux positifs, sous-domaines historiques non résolus).
- Le mode
-v(résolution DNS active) touche l'infrastructure cible et doit être autorisé par le périmètre de la mission ; le mode par défaut reste passif.
Points clés à retenir
- theHarvester automatise la collecte OSINT (emails, sous-domaines, hôtes) depuis des sources publiques, en reconnaissance passive.
- Multi-sources : moteurs de recherche, transparence des certificats (crt.sh), Shodan, VirusTotal, LinkedIn…
- Intégré par défaut dans Kali Linux ; certaines sources nécessitent une clé API.
- Complémentaire de Recon-ng (framework plus large) et Maltego (visualisation graphique des relations OSINT).
Voir aussi
- Recon-ng — framework de reconnaissance OSINT plus large
- Maltego — cartographie graphique des résultats OSINT
- Domained · Subdomainer.py — autres outils d'énumération de sous-domaines
- TheHarverster.py — script historique (version 1.1, Python 2)