Post

ECOWAS CTF 2026 — Abidjan [Network Forensics/100pts]

CTF : ECOWAS CTF 2026 · Catégorie : Network Forensics · Difficulté : ⭐ (Easy) · Points : 100
← Retour à l’index du CTF


Fichiers du challenge

⚠️ Note : Les fichiers sont hébergés sur la plateforme ECOWAS CTF. Les liens de téléchargement peuvent expirer après la fin de la compétition. Si un lien ne fonctionne plus ou consultez les archives de la plateforme.

Fichier Télécharger
Abidjan.pcap ⬇ Télécharger

Description

Analyse d’un fichier PCAP Abidjan.pcap (9 KB, 105 paquets) capturant du trafic réseau suspect.


Analyse du PCAP

ARP Poisoning — vecteur principal

En analysant les paquets ARP avec scapy :

from scapy.all import rdpcap, ARP pkts = rdpcap("Abidjan.pcap") for pkt in pkts: if pkt.haslayer(ARP) and pkt[ARP].op == 2: # ARP reply print(pkt[ARP].hwsrc, "->", pkt[ARP].psrc)

Résultat :

  • 00:11:22:33:44:55 : 12 ARP replies non sollicités se réclamant être 192.168.1.1
  • de:ad:be:ef:00:01 : 1 seule réponse ARP (légitimate gateway)

→ L’attaquant est 00:11:22:33:44:55 : 12 empoisonnements ARP = attaque en-masse.

Autres artefacts trouvés dans le PCAP

Type Détail
DNS tunneling Requêtes base64 vers exfil.tunnel-ns.xyz → password=Sup3rS3cr3t, user=admin@ACLEVP
SQL Injection shop.acmecorp.local/products.php → dump admin:5f4dcc3b5aa765d61d8327deb882cf99
C2 Beaconing Vers cdn-update.evil-c2.ru avec UUID a1b2c3d4e5f6
SMB Scan 192.168.1.105 scannant .10, .15, .20, .25 sur le port 445
Tor Trafic via nœud de sortie 185.220.101.47:443

Flag Format

Le format du flag est EcowasCTF{x.x.x.x.x.x} mais avec des deux-points (pas des points) :

Tentatives échouées :

  • EcowasCTF{00.11.22.33.44.55} ❌
  • EcowasCTF{de.ad.be.ef.00.01} ❌
  • EcowasCTF{de:ad:be:ef:00:01} ❌

Bonne réponse :

  • EcowasCTF{00:11:22:33:44:55} ✅ — l’adresse MAC de l’attaquant avec colons

Script de solve

from scapy.all import rdpcap, ARP from collections import Counter pkts = rdpcap("Abidjan.pcap") arp_senders = Counter() for pkt in pkts: if pkt.haslayer(ARP) and pkt[ARP].op == 2: # is-at arp_senders[pkt[ARP].hwsrc] += 1 # L'attaquant = MAC avec le plus grand nombre de ARP replies attacker = max(arp_senders, key=arp_senders.get) flag = f"EcowasCTF}" print(flag) # EcowasCTF{00:11:22:33:44:55}

Flag

EcowasCTF{00:11:22:33:44:55}

Leçon

L’ARP poisoning se reconnaît à l’envoi massif de ARP replies non sollicités (gratuitous ARP) depuis un MAC usurpant la gateway. Le format flag utilise bien les deux-points standard Unix pour les adresses MAC.


← Retour à l’index du CTF

Cet article est sous licence CC BY 4.0 par t3chw1z4rd.