Host and Port Scanning

Dans le cadre d'une analyse de réseau, une fois qu'un hôte est confirmé comme "vivant", la prochaine étape cruciale est l'identification des ports ouverts et des services à l'écoute. Cette phase est essentielle pour obtenir une vision globale du système cible. Voici les informations que l'on cherche à collecter :

  • Les ports ouverts et les services actifs

  • Les versions des services

  • Les informations fournies par ces services

  • Le système d'exploitation utilisé

🔐 Les états d'un port selon Nmap

Etat
Description

open

Une connexion a été établie (TCP/UDP/SCTP).

closed

Le port est inaccessible. Un paquet RST est renvoyé (TCP).

filtered

Nmap n'a pas pu déterminer si le port est ouvert ou fermé.

unfiltered

Vu uniquement lors d'un scan TCP ACK. Port accessible mais état inconnu.

`open

filtered`

`closed

filtered`

🔹 Scan des ports TCP les plus fréquents

sudo nmap 10.xx.xx.xx --top-ports=10

Cette commande scanne les 10 ports les plus couramment ouverts. Le flag --top-ports=10 provient de la base de données interne de Nmap.

🌐 Analyse des paquets envoyés et reçus

Pour comprendre ce qu'envoie Nmap et comment les réponses sont traitées :

sudo nmap 10.xx.xx.xx -p 21 --packet-trace -Pn -n --disable-arp-ping
  • -Pn : Ignore les requêtes ICMP

  • -n : Pas de résolution DNS

  • --disable-arp-ping : Pas de ping ARP

🌐 Scan TCP Connect (3-way handshake complet)

sudo nmap 10.xx.xx.xx -p 443 -sT --packet-trace -Pn -n --disable-arp-ping --reason

Le scan TCP Connect (-sT) est très fiable mais moins discret que le SYN scan. Il complète le 3-way handshake et peut générer des logs sur le système cible.

🔒 Ports filtrés par pare-feu

Un port filtré peut soit dropper les paquets sans réponse (lent), soit renvoyer une réponse ICMP (plus rapide).

Exemple 1 - Drop silencieux :

sudo nmap 10.xx.xx.xx -p 139 --packet-trace -n -Pn --disable-arp-ping

Exemple 2 - Port inaccessible (rejet explicite) :

sudo nmap 10.xx.xx.xx -p 445 --packet-trace -n -Pn --disable-arp-ping

On obtient une réponse ICMP type 3/code 3 signifiant que le port est inaccessible.

📁 Scan UDP

Le scan UDP (-sU) est plus lent car il n'y a pas de handshake et peu de réponses en retour.

Scan rapide des ports UDP :

sudo nmap 10.xx.xx.xx -F -sU

Analyse d'un port UDP ouvert :

sudo nmap 10.129.2.28 -sU -Pn -n --disable-arp-ping --packet-trace -p 137 --reason

Exemple d'un port UDP fermé (ICMP port unreachable) :

sudo nmap 10.129.2.28 -sU -Pn -n --disable-arp-ping --packet-trace -p 100 --reason

Port UDP open|filtered :

sudo nmap 10.129.2.28 -sU -Pn -n --disable-arp-ping --packet-trace -p 138 --reason

ℹ️ Scan de version avec -sV

Pour obtenir des détails sur les services en cours d'exécution :

sudo nmap 10.129.2.28 -Pn -n --disable-arp-ping --packet-trace -p 445 --reason -sV

Permet de repérer par exemple : Samba smbd 3.X - 4.X (workgroup: WORKGROUP)


🔧 Récapitulatif des options utiles

Option
Description

-sS

SYN scan (semi-ouvert)

-sT

TCP connect scan (complet)

-sU

UDP scan

-sV

Détection de version

--top-ports=N

Scan des N ports les plus courants

-p

Définir les ports à scanner

--packet-trace

Montrer les paquets envoyés/reçus

--reason

Afficher la raison de l'état du port

-n

Pas de résolution DNS

-Pn

Pas de ping ICMP

--disable-arp-ping

Désactive le ping ARP


⚠️ Note : Chaque environnement peut réagir différemment selon les réglages pare-feu. Adaptez vos scans en conséquence et utilisez --max-retries, -T4, etc., pour améliorer les performances.


Find all TCP ports on your target. Submit the total number of found TCP ports as the answer.

$ nmap -n -Pn -oA tnet 10.129.225.24

Nmap scan report for 10.129.225.24
Host is up (0.032s latency).
Not shown: 993 closed tcp ports (reset)
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
110/tcp   open  pop3
139/tcp   open  netbios-ssn
143/tcp   open  imap
445/tcp   open  microsoft-ds
31337/tcp open  Elite

# Nmap done at Tue Jun 17 18:51:44 2025 -- 1 IP address (1 host up) scanned in 0.63 seconds

Nous pouvons compter 7 ports TCP sur notre cible.

Enumerate the hostname of your target and submit it as the answer. (case-sensitive)

$ nmap -A 10.129.225.24
Starting Nmap 7.93 ( https://nmap.org ) at 2025-06-17 19:05 CEST

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 4.7.6-Ubuntu (workgroup: WORKGROUP)
31337/tcp open  Elite?
Service Info: Host: NIX-NMAP-DEFAULT; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
[...]
| smb-os-discovery: 
|   OS: Windows 6.1 (Samba 4.7.6-Ubuntu)
|   Computer name: nix-nmap-default
|   NetBIOS computer name: NIX-NMAP-DEFAULT\x00
|   Domain name: \x00
|   FQDN: nix-nmap-default
|_  System time: 2025-06-17T19:08:41+02:00

[...]
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 190.28 seconds

Nous relevons ici le nom de la machine : nix-nmap-default.


Mis à jour