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
Option
Description

-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 :

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

▶ 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.


▶ ❌ 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)
Drapeaux TCP
Signification

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


⚡ La bonne détection des versions conditionne directement le succès de l'énumération des vulnérabilités.


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