Exploitation Avancée Style TryHackMe
Reconnaissance de précision
Au-delà du scan de base
En cybersécurité, la reconnaissance n'est pas une simple formalité. C'est un art. Un scan de ports basique est bruyant et facilement détectable par un Système de Détection d'Intrusion (IDS). Une approche avancée, en revanche, est chirurgicale. L'objectif est de cartographier la surface d'attaque d'une cible sans déclencher d'alarmes, en mimant la discrétion d'un attaquant expérimenté.
Cela signifie passer de la question « quels ports sont ouverts ? » à « quelle version exacte de ce service tourne sur ce port, et comment puis-je l'interroger sans me faire repérer ? ». Nous allons nous concentrer sur des techniques qui permettent de recueillir des informations très précises tout en restant sous le radar.
Nmap : L'art de l'évasion
Pour éviter la détection, il faut comprendre comment les systèmes de sécurité fonctionnent. Beaucoup d'entre eux recherchent des signatures d'outils de scan connus. L'une des techniques d'évasion les plus simples mais efficaces avec Nmap consiste à fragmenter les paquets. Au lieu d'envoyer une sonde TCP complète, le flag -f demande à Nmap de la diviser en plusieurs petits paquets IP.
# Envoie des paquets fragmentés de 8 octets
sudo nmap -f <adresse_ip_cible>
Cette fragmentation peut dérouter les pare-feux ou les IDS moins sophistiqués qui n'arrivent pas à réassembler correctement le paquet pour l'inspecter. Une autre technique consiste à manipuler la taille de l'unité de transmission maximale (MTU) avec le flag --mtu. En spécifiant une taille de MTU inhabituelle, comme 8 ou 16 octets, vous forcez la création de paquets encore plus petits, ce qui peut également semer la confusion.
N'oubliez jamais le flag
-Pn. De nombreuses cibles durcies ne répondent pas aux requêtes ping (ICMP). En utilisant-Pn, vous dites à Nmap de ne pas vérifier si l'hôte est en ligne avant de scanner, et de lancer directement l'analyse des ports. C'est indispensable.
Énumération et empreintes
Savoir qu'un port 80 est ouvert est une chose. Savoir qu'il s'agit d'un serveur Apache 2.4.29 sur Ubuntu en est une autre. Pour obtenir ces détails, nous utilisons la détection de version (-sV) et l'intensité de cette détection (--version-intensity). Une intensité plus élevée envoie plus de sondes pour identifier précisément le service, mais augmente le risque de détection.
# Scan SYN (-sS), détection de version et d'OS, exécution des scripts par défaut
sudo nmap -sS -sV -O -sC --version-intensity 5 <adresse_ip_cible>
Le flag -sC est un raccourci pour --script=default. Il exécute un ensemble de scripts du considérés comme sûrs et utiles pour la reconnaissance. Ces scripts peuvent découvrir des informations précieuses, comme des partages SMB anonymes, des informations SNMP ou des titres de pages HTTP. C'est un moyen puissant d'automatiser la collecte d'informations sans être excessivement agressif.
L'analyse des bannières est une autre source d'informations. De nombreux services (FTP, SSH, SMTP) annoncent leur nom et leur version dans une bannière de bienvenue. Nmap capture ces bannières pendant le scan -sV, vous donnant des indices directs sur les logiciels en cours d'exécution.
Fouiller les répertoires web
Lorsqu'un serveur web est identifié, la prochaine étape est de trouver des fichiers et des répertoires cachés. Des outils comme Gobuster ou Dirsearch excellent dans cette tâche. Ils fonctionnent en testant une liste de noms de répertoires et de fichiers courants (une liste de mots ou ). La clé est de ne pas utiliser des listes génériques, mais de cibler votre recherche.
Si vous savez que la cible utilise PHP, il est inutile de chercher des fichiers .asp. Utilisez le flag -x pour spécifier les extensions qui vous intéressent. Cela réduit le bruit et accélère considérablement la recherche.
# Utilise Gobuster pour chercher des répertoires et des fichiers avec des extensions spécifiques
gobuster dir -u http://<adresse_ip_cible> -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt,bak
Cette commande va tester chaque mot de la liste et y ajoutera les extensions .php, .html, .txt, et .bak. La découverte d'un fichier comme config.php.bak peut représenter une faille critique. La reconnaissance de précision consiste à faire des suppositions éclairées pour trouver exactement ce genre d'informations exploitables.
Quel est l'objectif principal de la reconnaissance avancée en cybersécurité, par rapport à un scan de ports basique ?
Lors de l'utilisation d'un outil comme Gobuster pour rechercher des répertoires cachés sur un serveur web qui utilise PHP, quelle est la meilleure stratégie ?