Retour au cours

cyber / cybersecurite-fondamentale

Méthodologie de pentest : reconnaissance

Leçon 181 exercice

Explication

Ce que vous allez apprendre

  • Comprendre les six phases standard d'un test d'intrusion (PTES / OWASP Testing Guide)
  • Distinguer reconnaissance passive et active, et savoir laquelle exige une autorisation écrite préalable
  • Utiliser des sources OSINT (WHOIS, Certificate Transparency, theHarvester) pour cartographier une cible
  • Découvrir des sous-domaines avec subfinder/amass et vérifier lesquels répondent réellement
  • Documenter systématiquement chaque information collectée en vue du rapport final

Dans quel contexte ?

Une entreprise mandate un pentester pour auditer son exposition externe avant un audit de conformité. Avant d'envoyer le moindre paquet vers l'infrastructure cible, le pentester commence par consulter les certificats TLS déjà émis publiquement et les résultats de moteurs de recherche : il découvre ainsi un sous-domaine staging-admin.entreprise.com oublié, jamais mentionné dans la documentation officielle, et pourtant potentiellement accessible depuis Internet.

On change de posture : penser comme l'attaquant, légalement

Jusqu'ici, le cours enseignait comment se défendre. À partir de cette leçon, on adopte le point de vue offensif — le pentest (test d'intrusion) — pour comprendre les défenses de l'intérieur.

Piège fréquent

Ce changement de posture s'accompagne d'une règle absolue et non négociable : aucune action ne peut être menée sans une autorisation écrite préalable définissant précisément le périmètre. Sans cela, exactement les mêmes actions deviennent un délit pénal.

Pourquoi la reconnaissance vient toujours en premier

Avant d'attaquer quoi que ce soit, un professionnel — comme un cambrioleur méthodique dans les films, mais légalement — commence par observer sans toucher. La reconnaissance construit une cartographie de la cible : quels sous-domaines existent, quelles technologies sont utilisées, quels employés sont exposés publiquement.

La distinction cruciale : passive vs active

Type de reconnaissanceTouche la cible ?Autorisation requise ?
Passive (WHOIS, Certificate Transparency, OSINT)Non, sources déjà publiquesRecommandée mais moins critique
Active (résolution DNS ciblée, requêtes HTTP)Oui, directementObligatoire, par écrit

La reconnaissance passive est indétectable car elle ne touche jamais l'infrastructure de la cible. La reconnaissance active, elle, laisse des traces et peut déjà être perçue comme une attaque.

Pourquoi documenter dès cette étape

Un bon pentester note tout dès le début : la source de chaque information, l'heure de chaque action, les hypothèses à vérifier plus tard. Ce n'est pas de la paperasse accessoire — c'est ce qui permettra de produire un rapport final crédible et de prouver, en cas de question, que le périmètre autorisé a été respecté à la lettre.

Lien avec la suite

Cette carte du terrain construite en reconnaissance sert de base directe à la phase suivante : le scanning, qui va chercher activement des vulnérabilités précises sur les éléments identifiés ici.

Commandes & code

Méthodologie de pentest : reconnaissance

Avertissement essentiel : tout ce qui suit ne doit être exécuté que dans un environnement de lab autorisé (VM dédiée, plateforme d'entraînement type TryHackMe/HackTheBox, ou périmètre couvert par un mandat écrit). Scanner ou tester un système sans autorisation explicite est illégal dans la quasi-totalité des juridictions.

text
# Phases standard d'un test d'intrusion (méthodologie PTES / OWASP Testing Guide)
1. Pre-engagement    : périmètre, autorisation écrite (règles d'engagement), fenêtre horaire
2. Reconnaissance     : collecte d'information (passive puis active)
3. Scanning           : identification des services et versions exposés
4. Exploitation        : validation contrôlée des vulnérabilités identifiées
5. Post-exploitation   : évaluation de l'impact réel (sans dommage), pivot éventuel
6. Reporting            : documentation claire, priorisée par risque, avec remédiations
text
# Reconnaissance passive : ne touche jamais directement la cible, invisible pour elle
OSINT (Open Source Intelligence) : sources publiques (réseaux sociaux, sites web, dépôts de code publics)
WHOIS                             : informations d'enregistrement de domaine
Certificate Transparency logs     : découverte de sous-domaines via les certificats TLS émis publiquement
bash
# OSINT sur un domaine de lab (ex: domaine de test que vous possédez)
whois technologik-lab.local

# Découverte de sous-domaines via les logs de certificats publics (Certificate Transparency)
curl -s "https://crt.sh/?q=%.technologik-lab.local&output=json" | jq -r '.[].name_value' | sort -u

# theHarvester : agrège des informations publiques (emails, sous-domaines, IPs) depuis moteurs de recherche
theHarvester -d technologik-lab.local -b google,bing,crtsh -l 200
bash
# Recherche de sous-domaines par force brute contrôlée sur un domaine de LAB
subfinder -d technologik-lab.local -silent | tee subdomains.txt
amass enum -passive -d technologik-lab.local -o amass-results.txt

# Vérifier quels sous-domaines découverts répondent réellement (httpx = probing HTTP, pas le client Python)
cat subdomains.txt | httpx -silent -status-code -title
bash
# Google dorking : recherche avancée pour repérer des fuites d'information publiquement indexées
# À utiliser uniquement pour auditer SES PROPRES domaines
site:technologik-lab.local filetype:pdf
site:technologik-lab.local inurl:admin
site:technologik-lab.local ext:env OR ext:log
site:pastebin.com "technologik-lab.local"   # recherche de fuites potentielles sur des sites tiers
text
# Reconnaissance active : interagit directement avec la cible, potentiellement détectable/loggée
# NE JAMAIS lancer sans autorisation écrite explicite - c'est ici que la légalité devient stricte
Ping sweep       : identifier les hôtes actifs sur une plage réseau
Port scanning     : identifier les ports/services ouverts (voir leçon nmap dédiée)
Banner grabbing    : identifier les versions exactes de logiciels exposés
bash
# Ping sweep sur un LAB réseau (ex: réseau de VM d'entraînement 192.168.56.0/24)
nmap -sn 192.168.56.0/24 -oG - | grep "Up" | cut -d ' ' -f 2

# Banner grabbing manuel avec netcat pour identifier une version de service
nc -nv 192.168.56.10 22
# Réponse type : "SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6" -> permet de croiser avec des CVE connues
text
# Documentation systématique dès la phase de reconnaissance (base du futur rapport)
- Périmètre exact autorisé (IPs, domaines, exclusions explicites)
- Chaque information collectée, sa source, et l'heure de collecte
- Toute action active horodatée (traçabilité en cas de question du client/blue team)
- Hypothèses de vulnérabilités à vérifier en phase de scanning

Résumé

  • Toute reconnaissance active nécessite une autorisation écrite préalable (règles d'engagement).
  • La reconnaissance passive (OSINT, WHOIS, Certificate Transparency) ne touche jamais la cible directement.
  • theHarvester, subfinder, amass automatisent la collecte d'informations publiques sur un périmètre autorisé.
  • Documenter chaque étape dès la reconnaissance prépare un rapport final exploitable.

Exercices pratiques

1 disponible
1

Mission : le sous-domaine de staging que personne n'a documenté

Objectif : Mener une reconnaissance passive méthodique sur un domaine de lab et justifier chaque étape avant toute action active.

Contexte

Technologik te mandate par écrit pour auditer son exposition externe sur le domaine technologik-lab.local, avant un audit de conformité. Le mandat précise explicitement que la phase de reconnaissance doit être menée d'abord entièrement en passif, avant toute autorisation d'actions actives sur l'infrastructure.

Résoudre l’exercice →