Retour au cours

cyber / cybersecurite-fondamentale

Outils : nmap et Burp Suite

Leçon 201 exercice

Explication

Ce que vous allez apprendre

  • Utiliser nmap pour découvrir les hôtes actifs, les ports ouverts et les versions de services
  • Choisir la bonne technique de scan nmap selon le besoin de furtivité (SYN scan vs TCP connect)
  • Automatiser des vérifications ciblées avec les scripts NSE (vulnérabilités, TLS, SMB)
  • Intercepter et modifier une requête HTTP avec le proxy Burp Suite pour tester une hypothèse
  • Différencier les modules Repeater et Intruder de Burp Suite selon le type de test à mener

Dans quel contexte ?

Un pentester doit auditer un serveur de lab exposant plusieurs services. Il lance d'abord nmap pour découvrir que les ports 22, 80 et 443 sont ouverts, avec un Apache 2.4.49 identifié sur le port 80. Il ouvre ensuite Burp Suite pour intercepter les requêtes du site web, repère un paramètre id dans l'URL d'une facture, et utilise le module Repeater pour tester manuellement si cet identifiant permet d'accéder aux factures d'autres utilisateurs (IDOR, vu en leçon 12).

Deux outils, deux couches du système à auditer

Après avoir vu la méthodologie générale du pentest, cette leçon présente les deux outils les plus emblématiques de la profession, chacun couvrant une couche différente : nmap pour le réseau, Burp Suite pour l'application web.

nmap : cartographier ce qui répond sur le réseau

nmap répond à des questions simples mais essentielles : quelles machines sont actives sur ce réseau, quels ports sont ouverts sur chacune, quel logiciel et quelle version tournent derrière chaque port. C'est la base de toute évaluation réseau — on ne peut pas sécuriser ce dont on ignore l'existence. Les scripts NSE (Nmap Scripting Engine) automatisent ensuite des vérifications ciblées, comme tester les suites de chiffrement TLS supportées ou détecter des vulnérabilités SMB connues.

Burp Suite : voir et manipuler ce que le navigateur cache

Burp Suite se positionne comme un intermédiaire (proxy) entre le navigateur et le serveur, ce qui permet d'observer et de modifier chaque requête HTTP échangée — quelque chose d'invisible en utilisant simplement un navigateur normal.

Module Burp SuiteRôleCas d'usage typique
ProxyIntercepte et modifie les requêtes/réponsesObserver le trafic entre navigateur et serveur
RepeaterRejoue une requête modifiée manuellementTester un paramètre pour un IDOR (voir leçon 12)
IntruderAutomatise l'envoi de nombreuses variantesFuzzing de paramètres, brute force en lab

Pourquoi apprendre les deux ensemble

nmap répond à "quoi est exposé", Burp Suite répond à "comment cette exposition se comporte en détail". Un audit complet combine généralement les deux : nmap pour le premier balayage, Burp pour l'analyse fine des applications web découvertes.

Rappel qui ne se répète jamais assez

Piège fréquent

Ces outils sont d'une puissance réelle et leur usage sans autorisation explicite constitue une infraction, indépendamment de l'intention de l'utilisateur.

Commandes & code

Outils : nmap et Burp Suite

Usage exclusivement sur des cibles possédées ou couvertes par une autorisation écrite (lab, VM d'entraînement, mandat de test).

bash
# nmap - options fondamentales
nmap -sn 192.168.56.0/24              # ping sweep, découverte d'hôtes actifs, pas de scan de port
nmap -p 22,80,443 192.168.56.10        # scan de ports spécifiques
nmap -p- 192.168.56.10                 # scan des 65535 ports (lent mais exhaustif)
nmap -F 192.168.56.10                  # scan rapide des ~100 ports les plus courants
bash
# nmap - techniques de scan
nmap -sS 192.168.56.10     # SYN scan ("half-open"), furtif, nécessite les privilèges root
nmap -sT 192.168.56.10     # TCP connect scan, complète le handshake (plus détectable, pas besoin de root)
nmap -sU -p 53,161 192.168.56.10   # scan UDP (plus lent, souvent négligé alors que critique - DNS, SNMP)
nmap -sV 192.168.56.10     # détection de version des services (bannières, fingerprinting)
nmap -O 192.168.56.10      # détection du système d'exploitation (fingerprinting TCP/IP)
bash
# nmap - Nmap Scripting Engine (NSE), très puissant pour l'audit ciblé
nmap --script vuln 192.168.56.10                        # scripts de détection de vulnérabilités connues
nmap --script http-title,http-headers -p 80,443 192.168.56.10
nmap --script ssl-enum-ciphers -p 443 192.168.56.10       # audit des suites TLS supportées
nmap --script smb-vuln-ms17-010 -p 445 192.168.56.10      # détection ciblée EternalBlue (référence historique)
bash
# nmap - timing et furtivité (à adapter : agressif en lab, prudent si mandat de test discret réel)
nmap -T0 192.168.56.10   # paranoiaque, très lent, évite la détection par IDS
nmap -T4 192.168.56.10   # agressif, rapide, adapté à un lab dédié sans contrainte de discrétion

# Sortie structurée pour intégration dans d'autres outils / rapport
nmap -sV -oX scan-results.xml 192.168.56.10
nmap -sV -oJ scan-results.json 192.168.56.10   # (via un plugin/xml2json selon la distribution)
text
# Burp Suite : proxy d'interception pour l'audit d'applications web
Proxy      : intercepte et modifie les requêtes/réponses HTTP(S) entre navigateur et serveur
Repeater   : rejoue une requête modifiée manuellement pour tester une hypothèse (ex: payload SQLi)
Intruder   : automatise l'envoi de multiples variantes d'une requête (fuzzing, brute force en lab)
Scanner    : (édition Pro) détection automatisée de vulnérabilités web courantes
Decoder    : encode/décode (Base64, URL, hex...) rapidement une valeur pour analyse
text
# Flux de travail type avec Burp Suite en lab
1. Configurer le navigateur pour utiliser Burp comme proxy (127.0.0.1:8080)
2. Installer le certificat CA de Burp dans le navigateur (nécessaire pour intercepter le HTTPS)
3. Naviguer normalement sur l'application cible -> Burp capture tout le trafic dans "Proxy > HTTP history"
4. Envoyer une requête intéressante vers Repeater (clic droit -> Send to Repeater)
5. Modifier un paramètre (ex: injecter un payload de test) et observer la réponse
6. Utiliser Intruder pour automatiser un test sur plusieurs valeurs (ex: liste de payloads XSS)
http
# Exemple de requête modifiée dans Repeater pour tester un contrôle d'accès (IDOR, voir leçon dédiée)
GET /api/invoices/1042 HTTP/1.1
Host: technologik-lab.local
Authorization: Bearer <token_utilisateur_A>

# Test : remplacer 1042 par l'ID d'une facture appartenant à un autre utilisateur (utilisateur B)
# Si la réponse 200 renvoie la facture de B avec le token de A -> IDOR confirmé
text
# Positions Intruder (marquées avec §...§ dans l'interface Burp)
POST /login HTTP/1.1
Host: technologik-lab.local

username=admin&password=§payload§

# Attack type "Sniper" : teste une liste de mots de passe (wordlist) sur cette unique position
# UNIQUEMENT sur un compte de test en lab, jamais pour un brute force réel sans autorisation

Résumé

  • nmap combine découverte d'hôtes, scan de ports, détection de version/OS et scripts NSE pour l'audit ciblé.
  • --script vuln et les scripts spécifiques (ssl-enum-ciphers, smb-vuln-*) accélèrent l'identification de faiblesses connues.
  • Burp Suite Proxy/Repeater/Intruder couvrent respectivement l'interception, le rejeu manuel et l'automatisation de tests.
  • Tout usage de ces outils hors d'un lab ou d'un mandat écrit explicite est illégal.

Exercices pratiques

1 disponible
1

Mission : de la découverte nmap au test manuel dans Burp

Objectif : Enchaîner un scan nmap ciblé et un test d'IDOR manuel dans Burp Repeater sur une cible de lab autorisée.

Contexte

Tu audites 192.168.56.10, une VM de lab dédiée couverte par un mandat écrit. Un premier scan rapide a déjà montré que les ports 22, 80 et 443 sont ouverts. Ton objectif est maintenant d'identifier précisément les versions de services exposées, puis de tester manuellement un paramètre suspect (id) repéré dans l'URL d'une facture affichée par l'application web du port 443.

Résoudre l’exercice →