(Facile) Ping Pong
Description
Nous avons accès à une capture réseau :
Le but est de retrouver le flag dans cette dernière.
Analyse
La capture est uniquement composée de paquet ICMP (Ping)
Le début du flag étant "404CTF{" on commence alors à chercher un patterne de la forme XYX.
Solution
On trouve ce paterne dans la taille des paquets, on va alors les extraires :
from scapy.all import *
import binascii
packets = rdpcap('ping.pcapng')
flag = []
for packet in packets:
if packet[IP].src == "10.1.0.10":
# print(packet.show())
# break
flag.append(chr(packet[IP].len))
print("".join(flag))
Malheureusement le résultat ne semble pas être le bon :
Ici nous obtenons un P hors nous voulons un C mais le paterne du départ est présent.
Cette taille correspond à la taille globale du paquet ICMP mais il existe une autre taille, celle des données envoyés, on peut la récupérer de la manière suivante :
from scapy.all import *
import binascii
packets = rdpcap('ping.pcapng')
flag = []
for packet in packets:
if packet[IP].src == "10.1.0.10":
# print(packet.show())
# break
flag.append(chr(len(packet[Raw].load)))
print("".join(flag))
Cette fois c'est la bonne : 404CTF{Un_p1ng_p0ng_p4s_si_1nn0c3nt}