Collecte d'infos d’un pentest
Comprendre comment identifier des informations utiles sans alerter la cible
Notions théoriques
La reconnaissance est la première étape d’un test d’intrusion Web. Elle consiste à collecter un maximum d’informations sur la cible avant toute interaction directe.
Cette phase peut être divisée en 2 types : la reconnaissance passive et la reconnaissance active.
Reconnaissance passive
Elle permet de récolter des informations sans envoyer de requêtes à la cible. Cela évite de se faire détecter.
Les sources d’informations sont publiques et accessibles librement.
Techniques et outils utilisés :
- Whois : permet d’obtenir des informations sur le propriétaire d’un nom de domaine (nom, adresse, email, etc.)
- DNSdumpster : identifie les sous-domaines et les adresses IP associées à un domaine
- Google Dorking : utilise des opérateurs de recherche avancés pour trouver des fichiers sensibles ou des pages non indexées
- Netcraft : donne des informations sur la technologie du serveur Web, le système d’exploitation ou les historiques d’hébergement
- Shodan : moteur de recherche pour les objets connectés, permet de trouver des services exposés (serveurs Web, caméras IP, etc.)
Informations recherchées :
- Adresse IP du serveur
- Fournisseur d’hébergement
- Sous-domaines
- Technologies utilisées (CMS, framework)
- Fichiers ou répertoires exposés
- Emails ou identifiants dans des fuites de données
Reconnaissance active
Elle implique une interaction directe avec la cible.
Cette étape est plus risquée car elle peut être détectée par les systèmes de sécurité.
Techniques et outils utilisés :
- Ping : vérifie si une machine est en ligne
- Traceroute : affiche le chemin réseau jusqu’à la cible
- Nmap : scanne les ports ouverts et identifie les services actifs
- WhatWeb : détecte les technologies utilisées par une application Web (CMS, langages, serveurs)
- Wappalyzer : extension de navigateur pour identifier les frameworks et outils côté client
Informations recherchées :
- Ports ouverts
- Services en écoute
- Versions des logiciels
- Points d’entrée potentiels (formulaires, API)
Importance de la reconnaissance
La qualité des informations collectées conditionne l’efficacité du reste du pentest.
Une bonne reconnaissance permet de :
- Gagner du temps dans les phases suivantes
- Détecter des failles passives (ex : fuite d’informations dans des fichiers publics)
- Préparer des attaques ciblées et efficaces
Exemple pratique
Il est possible de réaliser une reconnaissance passive et active sur un site volontairement vulnérable mis en ligne pour l'entraînement : http://testphp.vulnweb.com
Étapes :
-
Identifier les informations publiques du domaine :
- Utiliser
whois testphp.vulnweb.com
- Utiliser
nslookup testphp.vulnweb.com
pour obtenir son adresse IP - Rechercher des sous-domaines avec https://dnsdumpster.com
- Utiliser
-
Utiliser Google Dorking :
- Rechercher :
site:testphp.vulnweb.com filetype:php
- Rechercher :
inurl:admin site:testphp.vulnweb.com
- Rechercher :
-
Lancer un scan avec WhatWeb :
whatweb http://testphp.vulnweb.com
-
Scanner les ports ouverts avec Nmap :
nmap -sS -Pn testphp.vulnweb.com
-
Utiliser Wappalyzer (extension navigateur) pour détecter les technologies utilisées.
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
L’objectif de ce TP est de mettre en pratique les techniques de reconnaissance passive et active sur un site Web vulnérable différent de celui de l’exemple.
La cible de ce TP est : https://www.hackthissite.org
Ce site pédagogique propose des défis légaux pour s’entraîner à la sécurité Web.
Le but ici est uniquement de collecter des informations (pas d’exploiter de vulnérabilités).
Étape 1 — Identifier les informations publiques du domaine
Utiliser des outils en ligne ou en ligne de commande pour récolter les informations suivantes :
- Propriétaire du domaine
- Adresse IP
- Fournisseur d’hébergement
- Serveur DNS
- Sous-domaines éventuels
Une solution
Vous devez être connecté pour voir le contenu.
Étape 2 — Rechercher des informations via Google Dorking
Utiliser des requêtes avancées sur Google pour identifier :
- Des pages d’administration
- Des fichiers ou répertoires intéressants
- Des erreurs ou messages de debug
Une solution
Vous devez être connecté pour voir le contenu.
Étape 3 — Identifier les technologies utilisées par le site
Utiliser des outils pour reconnaître les frameworks, CMS, bibliothèques ou serveurs utilisés.
Une solution
Vous devez être connecté pour voir le contenu.
Étape 4 — Scanner les ports ouverts et services actifs
Réaliser un scan Nmap sur le domaine pour détecter les ports ouverts et les services en écoute.
Une solution
Vous devez être connecté pour voir le contenu.
Étape 5 — Créer une fiche de reconnaissance
Créer un fichier reconnaissance.md
contenant toutes les informations collectées, organisées par catégorie :
- Informations DNS
- Sous-domaines
- Technologies détectées
- Ports ouverts
- Services actifs
- Requêtes Google Dorking pertinentes
Une solution
Vous devez être connecté pour voir le contenu.
Étape 6 — Proposer des pistes d’exploitation futures
Sur la base des informations collectées, proposer des hypothèses sur les vecteurs d’attaque possibles (sans les mettre en œuvre).
Une solution
Vous devez être connecté pour voir le contenu.