Service Enumeration
📄 Objectif
La détection des services et de leurs versions précises est une étape cruciale en test d'intrusion. Elle permet d'identifier les services en exécution, de repérer les failles connues, et de cibler efficacement les exploitations potentielles.
📊 Scan de version (-sV)
✅ Commande de base :
sudo nmap -p- -sV 10.xx.xx.xx
🔹 Résultat attendu :
Nmap scan report for 10.xx.xx.xx
Host is up (0.013s latency).
Not shown: 65525 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
25/tcp open smtp Postfix smtpd
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
110/tcp open pop3 Dovecot pop3d
139/tcp filtered netbios-ssn
143/tcp open imap Dovecot imapd (Ubuntu)
445/tcp filtered microsoft-ds
993/tcp open ssl/imap Dovecot imapd (Ubuntu)
995/tcp open ssl/pop3 Dovecot pop3d
-p-
Scan tous les ports (1-65535)
-sV
Détecte les versions des services
--stats-every=5s
Affiche la progression du scan toutes les 5 secondes
-v
ou -vv
Augmente la verbosité (affiche les ports dès leur détection)
🔢 Affichage de l'état du scan en direct
▶ Option [Espace] pendant le scan :
Permet d'afficher les statistiques sans arrêter le scan.
▶ Exemple avec --stats-every
:
--stats-every
:sudo nmap 10.xx.xx.xx -p- -sV --stats-every=5s
📊 Sortie :
Stats: 0:00:05 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 13.91% done; ETC: 19:49 (0:00:31 remaining)
🌐 Verbosité : voir les découvertes en direct
sudo nmap 10.129.2.28 -p- -sV -v
📊 Exemple de sortie :
Discovered open port 995/tcp on 10.129.2.28
Discovered open port 80/tcp on 10.129.2.28
Discovered open port 993/tcp on 10.129.2.28
📢 Banner Grabbing avec Nmap
▶ Objectif : extraire les informations des bannières de services.
sudo nmap -p- -sV -Pn -n --disable-arp-ping --packet-trace 10.129.2.28
📊 Réponse :
NSOCK INFO [0.4200s] Callback: READ SUCCESS for EID 18 [10.129.2.28:25] (35 bytes):
220 inlane ESMTP Postfix (Ubuntu)
✅ On remarque ici qu'une information sur le système distant (Ubuntu) est présente dans la bannière, mais ne figure pas directement dans la sortie nmap standard.
📡 Banner Grabbing manuel avec Netcat + Tcpdump
▶ ❌ Limitation : Nmap ne montre pas tout !
🔄 Solution :
Se connecter manuellement au port avec
nc
Observer le trafic avec
tcpdump
# Capter le trafic
sudo tcpdump -i eth0 host <IP ATTAQUANT> and <IP CIBLE>
# Connexion manuelle
nc -nv 10.xx.xx.xx 25
📊 Résultat :
Connection to 10.xx.xx.xx port 25 [tcp/*] succeeded!
220 inlane ESMTP Postfix (Ubuntu)
📊 Trafic réseau intercepté :
18:28:07.319306 IP <IP CIBLE>.smtp > <IP ATTAQUANT>.59618: Flags [P.], seq 1:36, ack 1, ...
SMTP: 220 inlane ESMTP Postfix (Ubuntu)
SYN
Demande de connexion (1ère étape handshake)
SYN-ACK
Accusé de réception de la demande
ACK
Confirme la connexion établie
PSH-ACK
Données envoyées + confirmation
🔐 Conclusion
Le scan de version est indispensable pour identifier précisément les services actifs.
La combinaison de Nmap, Netcat et Tcpdump offre une visibilité complète.
L'analyse des bannières est une méthode simple mais puissante pour enrichir la collecte d'informations.
📚 Références utiles
Nmap Service Version Detection : https://nmap.org/book/man-version-detection.html
Tcpdump Examples : https://danielmiessler.com/study/tcpdump/
Enumerate all ports and their services. One of the services contains the flag you have to submit as the answer.
Scan effectué afin de valider le flag demandé :
$ nmap -sV -p- -oA Version 10.xx.xx.xx
Host is up (0.033s latency).
Not shown: 65528 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
110/tcp open pop3 Dovecot pop3d
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
143/tcp open imap Dovecot imapd (Ubuntu)
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
31337/tcp open Elite?
SF:etRequest,1F,"220\x20HTB{pr0F7pDv3r510nb4nn3r}\r\n");
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Comme nous pouvons l'observer ici, le flag attendu nous est retourné :
HTB{pr0F7pDv3r510nb4nn3r}
Mis à jour