0x01. PRESENTATION
À fortiori, c'est bien un fichier pcap, file nous renvoie :
cap_ou_pas_cap.pcap: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 65535)
0x02. LECTURE
Wireshark n'est pas très pratique pour le coup, trop d'info tue l'info ... essayons avec des outils en ligne de commande.
Vu que file nous dit que c'est un fichier tcpdump, autant lire avec tcpdump:
tcpdump -n -r cap_ou_pas_cap.pcap > cap_ou_pas_cap.pcap.txt cat cap_ou_pas_cap.pcap.txt
11:53:44.125425 IP 192.168.1.8.2521 > 192.168.1.1.0: Flags [P], seq 1385482471:1385482503, win 512, length 32 11:53:45.320041 IP 192.168.1.8.1076 > 192.168.1.1.0: Flags [.], seq 121386197:121386229, ack 820296534, win 512, length 32 11:53:46.627922 IP 192.168.1.8.1968 > 192.168.1.1.0: Flags [S], seq 1007513463:1007513495, win 512, length 32 11:53:48.426859 IP 192.168.1.8.2715 > 192.168.1.1.0: Flags [S], seq 646772903:646772935, win 512, length 32 11:53:49.768026 IP 192.168.1.8.2567 > 192.168.1.1.0: Flags [S], seq 1524549835:1524549867, win 512, length 32 11:53:51.270001 IP 192.168.1.8.2632 > 192.168.1.1.0: Flags [W], seq 1153370461:1153370493, win 512, length 32 11:53:52.700063 IP 192.168.1.8.2179 > 192.168.1.1.0: Flags [E], seq 973372470:973372502, win 512, length 32 11:53:54.080072 IP 192.168.1.8.2138 > 192.168.1.1.0: Flags [S], seq 1670668128:1670668160, win 512, length 32 11:53:55.520578 IP 192.168.1.8.2645 > 192.168.1.1.0: Flags [.], seq 1481173273:1481173305, ack 1952037335, win 512, length 32 11:53:57.120087 IP 192.168.1.8.1853 > 192.168.1.1.0: Flags [R], seq 23203336:23203368, win 512, length 32 11:54:01.944147 IP 192.168.1.8.2944 > 192.168.1.1.0: Flags [.], seq 357741022:357741054, ack 477905127, win 512, length 32 11:54:03.343882 IP 192.168.1.8.1117 > 192.168.1.1.0: Flags [P], seq 1060186542:1060186574, win 512, length 32 11:54:04.764102 IP 192.168.1.8.2536 > 192.168.1.1.0: Flags [E], seq 1942608348:1942608380, win 512, length 32 11:54:06.048571 IP 192.168.1.8.1681 > 192.168.1.1.0: Flags [R], seq 1566910636:1566910668, win 512, length 32 11:54:09.327754 IP 192.168.1.8.1897 > 192.168.1.1.0: Flags [W], seq 998560469:998560501, win 512, length 32 11:54:10.600241 IP 192.168.1.8.2620 > 192.168.1.1.0: Flags [U], seq 1897217943:1897217975, win 512, urg 0, length 32 11:54:11.916047 IP 192.168.1.8.2996 > 192.168.1.1.0: Flags [.], seq 643529719:643529751, ack 540653141, win 512, length 32 11:54:13.036029 IP 192.168.1.8.1591 > 192.168.1.1.0: Flags [U], seq 1338116056:1338116088, win 512, urg 0, length 32 11:54:14.212370 IP 192.168.1.8.2069 > 192.168.1.1.0: Flags [P], seq 82679952:82679984, win 512, length 32 11:54:15.640072 IP 192.168.1.8.1474 > 192.168.1.1.0: Flags [R], seq 2035165314:2035165346, win 512, length 32 11:54:18.092063 IP 192.168.1.8.2444 > 192.168.1.1.0: Flags [E], seq 406227844:406227876, win 512, length 32 11:54:20.020177 IP 192.168.1.8.2696 > 192.168.1.1.0: Flags [S], seq 1100638795:1100638827, win 512, length 32 11:54:23.955342 IP 192.168.1.8.2372 > 192.168.1.1.0: Flags [F], seq 1619215485:1619215517, win 512, length 32 11:54:25.436108 IP 192.168.1.8.2690 > 192.168.1.1.0: Flags [U], seq 1244473554:1244473586, win 512, urg 0, length 32 11:54:26.524041 IP 192.168.1.8.2568 > 192.168.1.1.0: Flags [S], seq 1056279743:1056279775, win 512, length 32 11:54:27.451593 IP 192.168.1.8.2803 > 192.168.1.1.0: Flags [E], seq 869099532:869099564, win 512, length 32 11:54:28.426977 IP 192.168.1.8.2733 > 192.168.1.1.0: Flags [E], seq 681208219:681208251, win 512, length 32
0x03. FLAGS TCP
Drapeaux Réservé : réserv pour un usage futur ECN /NS : signale la présence de congestion, voir RFC 3168 ; ou Nonce Signaling, voir RFC 3540 CWR : Congestion Window Reduced : indique qu'un paquet avec ECE a été reéu et que la congestion a été traitée ECE : ECN-Echo : si SYN=1 indique la capacité de gestion ECN, si SYN=0 indique une congestion signalé par IP (voir RFC 3168) URG : Signale la présence de données urgentes ACK : signale que le paquet est un accusé de réception (acknowledgement) PSH : données é envoyer tout de suite (push) RST : rupture anormale de la connexion (reset) SYN : demande de synchronisation (SYN) ou établissement de connexion FIN : demande la FIN de la connexion Source: https://fr.wikipedia.org/wiki/Transmission_Control_Protocol
Les paquets n'ont (quasi) pas de données, les seules informations changeantes sont les flags et le port source. Essayons de lire le fichier autrement, surtout que :
awk '{ print $7 }' cap_ou_pas_cap.pcap.txt|tr -d "\n"|sed 's/,//g;s/\[//g;s/\]//g'
P.SSSWES.R.PERWU.UPRESFUSEE
0x04. RELECTURE
Essayons avec notre ami Scapy:
>>> rdpcap("cap_ou_pas_cap.pcap") <cap_ou_pas_cap.pcap: TCP:27 UDP:0 ICMP:0 Other:0> >>> p=rdpcap("cap_ou_pas_cap.pcap") >>> p.show()
0000 Ether / IP / TCP 192.168.1.8:2521 > 192.168.1.1:0 P / Raw 0001 Ether / IP / TCP 192.168.1.8:1076 > 192.168.1.1:0 A / Raw 0002 Ether / IP / TCP 192.168.1.8:1968 > 192.168.1.1:0 S / Raw 0003 Ether / IP / TCP 192.168.1.8:2715 > 192.168.1.1:0 S / Raw 0004 Ether / IP / TCP 192.168.1.8:2567 > 192.168.1.1:0 / Raw 0005 Ether / IP / TCP 192.168.1.8:2632 > 192.168.1.1:0 C / Raw 0006 Ether / IP / TCP 192.168.1.8:2179 > 192.168.1.1:0 E / Raw 0007 Ether / IP / TCP 192.168.1.8:2138 > 192.168.1.1:0 S / Raw 0008 Ether / IP / TCP 192.168.1.8:2645 > 192.168.1.1:0 A / Raw 0009 Ether / IP / TCP 192.168.1.8:1853 > 192.168.1.1:0 R / Raw 0010 Ether / IP / TCP 192.168.1.8:2944 > 192.168.1.1:0 A / Raw 0011 Ether / IP / TCP 192.168.1.8:1117 > 192.168.1.1:0 P / Raw 0012 Ether / IP / TCP 192.168.1.8:2536 > 192.168.1.1:0 E / Raw 0013 Ether / IP / TCP 192.168.1.8:1681 > 192.168.1.1:0 R / Raw 0014 Ether / IP / TCP 192.168.1.8:1897 > 192.168.1.1:0 C / Raw 0015 Ether / IP / TCP 192.168.1.8:2620 > 192.168.1.1:0 U / Raw 0016 Ether / IP / TCP 192.168.1.8:2996 > 192.168.1.1:0 A / Raw 0017 Ether / IP / TCP 192.168.1.8:1591 > 192.168.1.1:0 U / Raw 0018 Ether / IP / TCP 192.168.1.8:2069 > 192.168.1.1:0 P / Raw 0019 Ether / IP / TCP 192.168.1.8:1474 > 192.168.1.1:0 R / Raw 0020 Ether / IP / TCP 192.168.1.8:2444 > 192.168.1.1:0 E / Raw 0021 Ether / IP / TCP 192.168.1.8:2696 > 192.168.1.1:0 S / Raw 0022 Ether / IP / TCP 192.168.1.8:2372 > 192.168.1.1:0 F / Raw 0023 Ether / IP / TCP 192.168.1.8:2690 > 192.168.1.1:0 U / Raw 0024 Ether / IP / TCP 192.168.1.8:2568 > 192.168.1.1:0 S / Raw 0025 Ether / IP / TCP 192.168.1.8:2803 > 192.168.1.1:0 E / Raw 0026 Ether / IP / TCP 192.168.1.8:2733 > 192.168.1.1:0 E / Raw
0x04. FLAG
On met tout éa dans un fichier texte, et on affiche le pass:
cat cap_ou_pas_cap.pcap.txt|awk '{ print $10 }'|tr -d "\n"
PASS/CESARAPERCUAUPRESFUSEE
0x05. CREDITS
J'avais vu que les flags ressemblait à quelque chose, avec tcpdump, puis j'suis parti sur une autre piste qu'il y avait un fichier à récupérer.
st0rn (http://st0rn.anbu-pentest.com/) a suivi cette voie et a eu l'idée de lire le fichier avec Scapy.
=> Écrit par : Saelyx' team, le 30 juin 2015