Il arrive régulièrement de déposer des traces d'un trafic réseau sur un forum ou un blog. Pour garder l'anonymat des traces, on est obligé de camoufler les IPs ou autre champ des paquets. L'outil pktanon permet l'automatisation de cette démarche.
Allez hop, je l'installe :
- Décompression de pktanon :
wget http://www.tm.uka.de/software/pktanon/download/pktanon-1.2.3-dev.tar.gz
tar xfz pktanon-1.2.3-dev.tar.gz
- Installation des dépendances :
su
apt-get install libxerces-c2-dev libboost-dev
- Installation :
./configure
make
su
make install
Au préalable j'ai récupéré une trace pcap avec wireshark. ensuite je modifie le fichier ''settings_identity.xml situé dans le répertoire profile. Dans l'exemple ci-dessous, mon fichier source de se nomme trace.pcap et je le modifie en trace_new.pcap. Je valorise donc de la manière suivante le fichiersettings_identity.xml '':name="Input">trace.pcap
name="Output">trace_new.pcap
Dans ma trace, je souhaite modifier l'adresse IP source (celle de mon poste par exemple):anon="AnonBytewiseHashSha1" name="IpSourceip"
, par défaut le champ anon est à AnonIdentity
Ensuite, il suffit de lancer l'outil pktanon:pktanon settings_identity.xml
Paquet d'origine:
tcpdump -neXv -c 1 -r trace.pcap
reading from file trace.pcap, link-type EN10MB (Ethernet)
21:15:30.665242 00:23:54:1c:4c:a6 > 00:07:cb:21:1e:27, ethertype IPv4 (0x0800),
length 71: (tos 0x0, ttl 64, id 7617, offset 0, flags DF, proto TCP (6), length 57). 53135 > 65.54.172.110.1863: P, cksum 0xae82
192.168.0.10
(incorrect (-> 0xbe20), 1181321880:1181321885(5) ack 1801540939 win 594
0x0000: 4500 0039 1dc1 4000 4006 6ea7 c0a8 000a E..9..@.@.n.....
0x0010: 4136 ac6e cf8f 0747 4669 8a98 6b61 554b A6.n...GFi..kaUK
0x0020: 8018 0252 ae82 0000 0101 080a 0010 45b7 ...R..........E.
0x0030: 002e b810 504e 470d 0a ....PNG..
Paquet formaté: tcpdump -neXv -c 1 -r trace_new.pcap
reading from file trace_new.pcap, link-type EN10MB
(Ethernet) 21:15:30.665242 da:d5:44:a7:12:59 > 00:07:cb:21:1e:27,
ethertype IPv4 (0x0800), length 71: (tos 0x0, ttl 64, id 7617, offset 0,
flags DF, proto TCP (6), length 57)246.142.218.253
.53135 >
65.54.172.110.1863: P, cksum 0x6745 (incorrect (-> 0xad46),
1181321880:1181321885(5) ack 1801540939 win 594
0x0000: 4500 0039 1dc1 4000 4006 5dcd f68e dafd E..9..@.@.].....
0x0010: 4136 ac6e cf8f 0747 4669 8a98 6b61 554b A6.n...GFi..kaUK
0x0020: 8018 0252 6745 0000 0101 080a 0010 45b7 ...RgE........E.
0x0030: 002e b810 504e 470d 0a ....PNG..
Juste pour info, tu peux faire un truc similaire avec scapy :
ReplyDeletel = sniff(iface='eth0', count=10)
l.replace( IP.src, "192.168.1.1", "10.0.0.1" )
Faut que j'écrive un patch pour donner une fonction Python à replace() de façon à pouvoir faire un truc dynamique.
Ok, tout est modifié en conséquence (ex: checksum)?
ReplyDeleteOui, automatiquement
ReplyDelete