我有一个pcap捕获袜子流量。流量就像 -
client_ip <-> 127.0.0.1:9050 <-> destination_ip
看看wireshark中的pcap,显示:
src_ip = 127.0.0.1
dst_ip = 127.0.0.1
是否可以更改src_ip和dst_ip地址?
我尝试了bittwiste:
bittwiste -I in.pcap -O out.pcap -T ip -p 6 -s 127.0.0.1,1.2.3.4 -d
127.0.0.1,4.3.2.1
但是,只有第一个数据包被修改。从第二个开始的所有数据包都保持不变。
我也尝试过tcprewrite:
tcprewrite --seed=325 --infile=in.pcap --outfile=out.pcap
这会改变所有src_ip&amp; dst_ip(127.0.0.1)到相同的随机IP,因为它似乎只找到一个(相同的)端点IP。
如何修改src&amp;在袜子流量捕获中使用dst ip地址。?
由于
答案 0 :(得分:1)
TL; DR。 --endpoints
的{{1}}选项正是您所需要的。它需要tcprewrite
的缓存文件:
tcpprep
<强>说明强>
根据the documentation for tcprewrite
,$ tcpprep --port --pcap=in.pcap --cachefile=in.cache
$ tcprewrite --cachefile=in.cache --endpoints=1.2.3.4:4.3.2.1 --infile=in.pcap --outfile=out.pcap
$
$ tshark -r out.pcap
1 0.000000 1.2.3.4 → 4.3.2.1 TCP 74 49870 → 80 [SYN] Seq=0 Win=43690 Len=0 MSS=65495 SACK_PERM=1 TSval=10438137 TSecr=0 WS=128
2 0.000030 4.3.2.1 → 1.2.3.4 TCP 74 80 → 49870 [SYN, ACK] Seq=0 Ack=1 Win=43690 Len=0 MSS=65495 SACK_PERM=1 TSval=10438137 TSecr=10438137 WS=128
3 0.000051 1.2.3.4 → 4.3.2.1 TCP 66 49870 → 80 [ACK] Seq=1 Ack=1 Win=43776 Len=0 TSval=10438137 TSecr=10438137
4 0.000101 1.2.3.4 → 4.3.2.1 HTTP 139 GET / HTTP/1.1
5 0.000121 4.3.2.1 → 1.2.3.4 TCP 66 80 → 49870 [ACK] Seq=1 Ack=74 Win=43776 Len=0 TSval=10438137 TSecr=10438137
6 0.023045 4.3.2.1 → 1.2.3.4 HTTP 11642 HTTP/1.1 200 OK (text/html)
7 0.023094 1.2.3.4 → 4.3.2.1 TCP 66 49870 → 80 [ACK] Seq=74 Ack=11577 Win=174720 Len=0 TSval=10438143 TSecr=10438143
8 0.023517 1.2.3.4 → 4.3.2.1 TCP 66 49870 → 80 [FIN, ACK] Seq=74 Ack=11577 Win=174720 Len=0 TSval=10438143 TSecr=10438143
9 0.023547 4.3.2.1 → 1.2.3.4 TCP 66 80 → 49870 [FIN, ACK] Seq=11577 Ack=75 Win=43776 Len=0 TSval=10438143 TSecr=10438143
10 0.023560 1.2.3.4 → 4.3.2.1 TCP 66 49870 → 80 [ACK] Seq=75 Ack=11578 Win=174720 Len=0 TSval=10438143 TSecr=10438143
重写所有数据包,看似在ip1和ip2之间。但是,此选项需要--endpoints=ip1:ip2
选项。
--cachefile
缓存文件使用to split traffic in two sides,具体取决于端口,IP地址,MAC地址等。根据the tcpprep
wiki,我们要使用tcpprep
选项。