/ forensic

NDH2K16 - Draw Me A Ship

Ce challenge consistait à l'analyse d'un fichier pcapng (drawmeaship.pcapng).

On ouvre ce fichier avec Wireshark pour voir ce qu'il contient :

Nous avons donc affaire à une capture de traffic de USB. Nous pouvons remarquer les paquets du type DESCRIPTOR DEVICE.
En analysant ces paquets on trouve dans le paquet 2 les informations suivantes :

En recherchant sur google notre ami on trouve ce device est une souris de la marque Mad Catz.

Si l'on regarde la suite de la capture on a plein de paquet de data pour le device à l'adresse 2 qui correspond à notre souris.

Nous allons donc récupérer ces data, qui correspondent surement au mouvement de la souris, avec tshark.

tshark -r drawmeaship.pcapng -Y "usb.capdata and usb.device_address==2" -T fields -e usb.capdata > mouse

On obtient des données qui ressemble à ça :

...
00:ff:00:20:00
00:ff:00:20:00
ff:00:00:20:00
00:ff:00:20:00
00:ff:00:20:00
ff:00:00:20:00
00:ff:00:20:00
00:ff:00:20:00
ff:00:00:20:00
00:ff:00:20:00
ff:00:00:20:00
...

On identifie assez facilement les champs 'utiles' et avec de nouvelles recherches internet on trouve que les deux premiers champs correspondent au coordonnées du curseur de la souris par rapport à la position précédente (nombre signé) et le 4e correspond à l'état du bouton (enfoncé (0x21) ou non (0x20)).

On extrait les coordonnées avec la commande suivante :

awk -F: 'function comp(v){if(v>127)v-=256;return v}{x+=comp(strtonum("0x"$1));y+=comp(strtonum("0x"$2))}$4=="21"{print x,y}' mouse > coord

...
117 -27
120 -28
122 -28
124 -28
127 -29
129 -29
131 -29
133 -29
136 -30
138 -30
140 -30
143 -31
146 -31
149 -31
152 -31
154 -32
...

Puis on trace les points correpondant à ces coordonnées avec gnuplot :

$ gnuplot
gnuplot> plot "coord"

On obtient ceci :

On retourne l'image avec gimp :

Et voilà !
NDH2k16_ADA89632BE