修改socks捕获pcap中的IP地址

Sun*_*ine 4 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
Run Code Online (Sandbox Code Playgroud)

是否可以更改 src_ip 和 dst_ip 地址?

我尝试了 bitwaste 作为:

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
Run Code Online (Sandbox Code Playgroud)

但是,只有第一个数据包被修改。从第二个开始的所有数据包都保持不变。

我还尝试了 tcprewrite 作为:

tcprewrite --seed=325 --infile=in.pcap --outfile=out.pcap
Run Code Online (Sandbox Code Playgroud)

这会将所有 src_ip 和 dst_ip (127.0.0.1) 更改为相同的随机 IP,因为它似乎只找到一个(相同)端点 IP。

如何修改socks流量捕获中的src和dst IP地址?

谢谢

pch*_*gno 5

TL;博士。--endpoints的选项就是tcprewrite您正在寻找的。它需要来自以下位置的缓存文件tcpprep

\n\n
$ tcpprep --port --pcap=in.pcap --cachefile=in.cache\n$ tcprewrite --cachefile=in.cache --endpoints=1.2.3.4:4.3.2.1  --infile=in.pcap --outfile=out.pcap\n$\n$ tshark -r out.pcap\n1   0.000000     1.2.3.4 \xe2\x86\x92 4.3.2.1     TCP 74 49870 \xe2\x86\x92 80 [SYN] Seq=0 Win=43690 Len=0 MSS=65495 SACK_PERM=1 TSval=10438137 TSecr=0 WS=128\n2   0.000030     4.3.2.1 \xe2\x86\x92 1.2.3.4     TCP 74 80 \xe2\x86\x92 49870 [SYN, ACK] Seq=0 Ack=1 Win=43690 Len=0 MSS=65495 SACK_PERM=1 TSval=10438137 TSecr=10438137 WS=128\n3   0.000051     1.2.3.4 \xe2\x86\x92 4.3.2.1     TCP 66 49870 \xe2\x86\x92 80 [ACK] Seq=1 Ack=1 Win=43776 Len=0 TSval=10438137 TSecr=10438137\n4   0.000101     1.2.3.4 \xe2\x86\x92 4.3.2.1     HTTP 139 GET / HTTP/1.1 \n5   0.000121     4.3.2.1 \xe2\x86\x92 1.2.3.4     TCP 66 80 \xe2\x86\x92 49870 [ACK] Seq=1 Ack=74 Win=43776 Len=0 TSval=10438137 TSecr=10438137\n6   0.023045     4.3.2.1 \xe2\x86\x92 1.2.3.4     HTTP 11642 HTTP/1.1 200 OK  (text/html)\n7   0.023094     1.2.3.4 \xe2\x86\x92 4.3.2.1     TCP 66 49870 \xe2\x86\x92 80 [ACK] Seq=74 Ack=11577 Win=174720 Len=0 TSval=10438143 TSecr=10438143\n8   0.023517     1.2.3.4 \xe2\x86\x92 4.3.2.1     TCP 66 49870 \xe2\x86\x92 80 [FIN, ACK] Seq=74 Ack=11577 Win=174720 Len=0 TSval=10438143 TSecr=10438143\n9   0.023547     4.3.2.1 \xe2\x86\x92 1.2.3.4     TCP 66 80 \xe2\x86\x92 49870 [FIN, ACK] Seq=11577 Ack=75 Win=43776 Len=0 TSval=10438143 TSecr=10438143\n10   0.023560     1.2.3.4 \xe2\x86\x92 4.3.2.1     TCP 66 49870 \xe2\x86\x92 80 [ACK] Seq=75 Ack=11578 Win=174720 Len=0 TSval=10438143 TSecr=10438143\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

说明

\n\n

根据的文档tcprewrite--endpoints=ip1:ip2重写所有数据包,使其看起来位于 ip1 和 ip2 之间。然而,这个选项需要这个--cachefile选项。

\n\n

缓存文件tcpprep用于根据端口、IP地址、MAC 地址等将流量分成两侧。这里,根据wikitcpprep,我们要使用该--port选项。

\n