修改socks capture pcap中的ip地址

时间:2017-02-16 20:16:48

标签: pcap socks

我有一个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地址。?

由于

1 个答案:

答案 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选项。