cyber / pentest-red-team
Reconnaissance passive : OSINT et empreinte numérique
Explication
Ce que vous allez apprendre
- Comprendre pourquoi la reconnaissance passive ne génère aucun trafic détectable par la cible
- Utiliser WHOIS et les enregistrements DNS pour cartographier une infrastructure
- Découvrir des sous-domaines via la Certificate Transparency, sans jamais interroger la cible
- Vérifier une fuite de mot de passe via une API en k-anonymity, sans exposer le mot de passe en clair
- Extraire des métadonnées de documents publics révélant des informations internes
Dans quel contexte ?
Une mission de pentest en lab débute officiellement (cadre légal posé à la leçon précédente), mais avant d'envoyer le moindre paquet vers la cible, un testeur méthodique commence toujours par collecter tout ce qui est déjà public sur cette organisation — un travail qui, à lui seul, révèle souvent une surface d'attaque considérable sans jamais risquer de déclencher la moindre alerte.
D'abord, il faut comprendre pourquoi cette étape est dite "passive"
Contrairement au scan actif (vu dans la prochaine leçon), la reconnaissance passive ne touche JAMAIS directement les systèmes de la cible : on interroge des sources tierces déjà publiques — registrars de domaines, autorités de certification, moteurs de recherche. La cible ne voit littéralement rien de cette activité dans ses propres journaux.
Cette distinction n'est pas qu'un détail technique : c'est ce qui permet de commencer une mission red team (leçon 16) plusieurs semaines avant que la moindre alerte ne soit possible côté défenseur.
| Source | Ce qu'elle révèle | Trafic vers la cible ? |
|---|---|---|
| WHOIS | Propriétaire du domaine, dates d'enregistrement | Non |
| DNS (dig) | Serveurs mail, enregistrements TXT (SPF, vérifications) | Non (interroge un résolveur tiers) |
| Certificate Transparency (crt.sh) | Sous-domaines révélés par les certificats TLS émis | Non |
| Google Dorking | Fichiers/pages exposés indexés par erreur | Non |
Prérequis
Cette leçon suppose que le cadre légal de la mission est déjà validé (voir la leçon précédente) ; la reconnaissance passive reste néanmoins la technique la moins risquée juridiquement, puisqu'elle n'interroge jamais directement la cible elle-même.
Une fois les bases WHOIS/DNS posées, une technique plus subtile mérite d'être comprise : la Certificate Transparency
Depuis 2013, tout certificat TLS émis publiquement doit être enregistré dans des journaux publics et infalsifiables, initialement pour lutter contre les certificats frauduleux. Un effet de bord très utile pour un pentester : interroger ces journaux (via crt.sh) révèle souvent des sous-domaines que l'organisation ne pensait pas exposer, comme dev.example.com ou admin-interne.example.com.
Astuce
theHarvester automatise l'agrégation de plusieurs sources (Certificate Transparency, moteurs de recherche) en une seule commande, produisant une liste d'emails, sous-domaines et IP en quelques secondes — un excellent point de départ avant d'affiner manuellement.
Il reste une question intéressante : comment vérifier une fuite de mot de passe sans envoyer ce mot de passe à un tiers ?
L'API Have I Been Pwned répond à ce problème via une technique élégante, la k-anonymity : seuls les 5 premiers caractères du hash SHA-1 du mot de passe sont envoyés au serveur, qui renvoie toutes les correspondances possibles pour ce préfixe. La comparaison finale se fait localement, sans que le mot de passe complet — ni même son hash complet — ne quitte jamais la machine du testeur.
Le piège à connaître avant de continuer
Piège fréquent
Les métadonnées de fichiers publics (PDF, images) sont une source d'information constamment sous-estimée : un simple rapport PDF publié sur le site d'une entreprise peut révéler, via exiftool, le nom d'utilisateur Windows de son auteur, la version exacte du logiciel utilisé pour le créer, voire un chemin de fichier interne complet. Ne jamais négliger cette étape, même quand elle semble anecdotique.
Toutes ces informations collectées et croisées, la prochaine leçon franchit une étape importante : la reconnaissance ACTIVE, qui cette fois envoie du trafic directement vers la cible, dans le strict respect du périmètre autorisé.
Commandes & code
Reconnaissance passive : OSINT et empreinte numérique
La reconnaissance passive ne touche jamais directement la cible : on collecte de l'information déjà publique.
# WHOIS : propriétaire et infrastructure d'un domaine
whois example.com
# Enregistrements DNS publics (n'interroge pas directement la cible)
dig example.com ANY
dig example.com MX
dig example.com TXT # révèle souvent SPF, vérifications tierces (google-site-verification, etc.)# Certificate Transparency : découvrir des sous-domaines via les certificats TLS émis publiquement
curl -s "https://crt.sh/?q=%25.example.com&output=json" | jq -r '.[].name_value' | sort -u
# theHarvester : agrège emails, sous-domaines, IP depuis des sources publiques
theHarvester -d example.com -b crtsh,bing -f resultat.html# Google Dorking : requêtes avancées pour trouver des fichiers/pages exposés par erreur
site:example.com filetype:pdf
site:example.com inurl:admin
site:example.com intitle:"index of /"
site:pastebin.com "example.com" password# Vérifier si un mot de passe a fuité, sans jamais envoyer le mot de passe en clair
# (technique de k-anonymity utilisée par l'API Have I Been Pwned)
import hashlib
import requests
def check_pwned_password(password: str) -> int:
sha1 = hashlib.sha1(password.encode()).hexdigest().upper()
prefix, suffix = sha1[:5], sha1[5:]
resp = requests.get(f"https://api.pwnedpasswords.com/range/{prefix}", timeout=5)
for line in resp.text.splitlines():
h, count = line.split(":")
if h == suffix:
return int(count)
return 0
# Seuls les 5 premiers caractères du hash SHA1 sont envoyés au serveur distant# Métadonnées de documents publics : peuvent révéler noms d'utilisateurs, logiciels, chemins internes
exiftool rapport_public.pdf
exiftool -a -u -g1 photo_equipe.jpgRésumé
- L'OSINT ne génère aucun trafic direct détectable par la cible.
- DNS, WHOIS, Certificate Transparency et Google Dorking révèlent souvent une surface d'attaque énorme.
- Les métadonnées de fichiers publics (PDF, images) fuient des informations internes.
- Toujours croiser les sources pour construire une cartographie fiable avant de scanner activement.
Exercices pratiques
Mission : cartographier NordShield sans toucher son infrastructure
Objectif : Utiliser uniquement des sources tierces publiques pour révéler la surface d'attaque de NordShield avant tout scan actif.
Contexte
La mission NordShield est officiellement cadrée (voir la mission précédente). Avant d'envoyer le moindre paquet vers leur infrastructure, tu dois documenter tout ce qui est déjà public sur nordshield-lab.example, sans jamais interroger directement leurs serveurs.