Aller au contenu
mouaad.sek:~$
Tous les dossiers~/work/cf-06$
CF-06Sécurité réseauSTATUS: REMÉDIÉ

Audit réseau NetSecure Corp

D’un réseau plat où un seul accès donnait tout, à cinq VLAN segmentés, un filtrage en refus par défaut et une détection sur chaque menace relevée.

RÔLE
Seul
QUAND
Mai 2026
STACK
Wireshark, Suricata, nftables, FreeRADIUS, 802.1X, VLANs, MITRE ATT&CK
LIEN
Repo privé, démo sur demande
01 / CONTEXTE

Le problème

NetSecure Corp est une PME fictive de 200 salariés avec un siège et deux agences. Son réseau était plat (10.0.0.0/16), avec des switches administrés en Telnet avec les mots de passe par défaut, sans DMZ, sans IDS et avec une clé Wi-Fi faible.

Le travail : prouver le risque à partir du trafic capturé, l’enchaîner en attaque réaliste, puis repenser et durcir le réseau.

02 / APPROCHE

Chaîne d’attaque reconstruite depuis la capture

  1. 01Clé Wi-Fi faible
  2. 02Scan SYN
  3. 03Identifiants Telnet
  4. 04ARP spoofing
  5. 05Vol de session
  6. 06Exfiltration
03 / CONSTATS ET CORRECTIONS

Constats et corrections

CONSTATCORRECTIONNIVEAU
Identifiants admin Telnet en clairSSH avec clésCRITIQUE
ARP spoofing : une MAC pour 3 IPDAI + DHCP snoopingCRITIQUE
Réseau plat, mouvement latéral total5 VLANCRITIQUE
Cookie de session en HTTP clairTLS + DMZÉLEVÉ
Scan de ports passé inaperçuRègles SuricataÉLEVÉ
Aucun contrôle d’accès sur les ports802.1X + RADIUSÉLEVÉ
04 / PREUVES

Directement depuis le code

Extraits du vrai dépôt et des livrables, raccourcis pour la lecture.

configurations/firewall.nftbash
table inet filter {
    chain forward {
        type filter hook forward priority 0;
        policy drop;

        ct state established,related accept

        # admin VLAN: full access
        ip saddr 10.10.10.0/24 accept

        # employees: internal DNS and file server only
        ip saddr 10.10.20.0/24 ip daddr 10.10.30.10 udp dport 53 accept
        ip saddr 10.10.20.0/24 ip daddr 10.10.30.20 tcp dport 445 accept

        # Internet to DMZ web server
        ip daddr 10.10.40.10 tcp dport 443 accept

        # guests: Internet only, no internal access
        ip saddr 10.10.50.0/24 ip daddr 10.10.0.0/8 drop
        ip saddr 10.10.50.0/24 accept

        log prefix "FORWARD_DROP: " drop
    }
}

Filtrage inter-VLAN en refus par défaut : les admins accèdent à tout, les employés seulement au DNS et au serveur de fichiers, les invités seulement à Internet.

configurations/netsecure.rulestxt
# telnet
alert tcp any any -> any 23 (msg:"NETSECURE TELNET CONNECTION DETECTED"; sid:1000001; rev:1;)

# port scan: 5 SYN in 10 seconds from the same source
alert tcp any any -> any any (flags:S; msg:"NETSECURE POSSIBLE PORT SCAN"; threshold:type both, track by_src, count 5, seconds 10; sid:1000002; rev:1;)

# session cookie in clear text (session hijacking)
alert tcp any any -> any any (content:"Cookie:"; msg:"NETSECURE SESSION COOKIE OBSERVED"; sid:1000006; rev:1;)

Règles Suricata écrites pour les menaces trouvées dans la capture, dont un seuil pour détecter le scan SYN.

05 / RÉSULTATS

Résultats

12vulnérabilités : 4 critiques, 6 élevées, 2 moyennes
5VLAN avec nftables en refus par défaut
6règles de détection Suricata
06 / RETOUR D’EXPÉRIENCE

Ce que je ferais autrement

La capture ne faisait que 76 paquets, et elle suffisait à prendre tout le réseau. Prochaine étape : valider DAI et port security sur de vraies images de switch dans un lab GNS3, pas seulement sur le papier.

DOSSIER SUIVANT · CF-01Travistello
Esc

↑↓ naviguer · Entrée ouvrir · Échap fermer