pcap - 修改socks中的ip地址捕获pcap

标签 pcap socks

我有一个 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 和 dst_ip (127.0.0.1) 更改为相同的随机 IP,因为它似乎只找到一个(相同的)端点 IP。

如何在socks流量捕获中修改src和dst ip地址。?

谢谢

最佳答案

TL;博士。 --endpoints tcprewrite 的选项就是你要找的。它需要来自 tcpprep 的缓存文件:

$ 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

说明

根据 the documentation for tcprewrite , --endpoints=ip1:ip2重写所有数据包,使其看起来在 ip1 和 ip2 之间。但是,此选项需要 --cachefile选项。
tcpprep缓存文件被使用 to split traffic in two sides取决于端口、IP地址、MAC地址等。这里,根据the tcpprep wiki ,我们要使用 --port选项。

关于pcap - 修改socks中的ip地址捕获pcap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42283757/

相关文章:

c - "Replay"tcpdump 文件

python - 使用 Scapy 解析 MySQL header

c - 从 C 中的 pcap 文件生成数据包

java - maven项目中socks服务器的回复格式错误

java - 来自 HTTPS 请求的 SSLException 通过 SOCKS 代理上的套接字

c++ - 如何捕获接入点和与其连接的主机的 MAC 地址?

c - PCAP header 类型

go - 如何在 socks5 代理中将 2 个字节的端口号返回给客户端?

php - 使用 PHP 时使用 socks5 代理的 cURL 请求失败,但它通过命令行工作

node.js - NodeJS-错误 : write EPIPE on SOCKS5 proxy