1、Tcpreplay 回放报文

# tcpreplay 
tcpreplay -h  # help file
tcpreplay -H  # help file 更详细

1.1 使用tcpreplay回放报文

# tcpreplay 回放
# 001 -i:回放接口 -p:回放速率(数据包/秒) -l:循环回放次数
tcpreplay -i eth1 -p 1000 -l 2 xxx.pcap
# 002 -M:回放速率(Mps)
tcpreplay -i eth1 -M 50  xxx.pcap
# 003 -t:回放速率(以最快速率回放)
tcpreplay -i eth1 -t xxx.pcap
#004 -o 逐一回放数据包
tcpreplay -o -i eth1 xxx.pcap
	sending out eth1 
	processing file: xxx.pcap
	**** Next packet #1 out eth2.  How many packets do you wish to send? 2
	Sending packet 1 out: eth2
	**** Next packet #4 out eth2.  How many packets do you wish to send? 5
	Sending packet 3 out: eth2

1.2 拆分C-S两端报文,分别回放报文

(1)0tcpreplay 的基本操作是将pcap文件中的所有报文发送到单一接口中。
(2)Tcpprep 通过用户定义的一系列规则处理 pcap 文件,生成cache文件,通过cache文件tcpreply可以确定单个报文是否发送以及通过哪个接口发送。比如通过端口,ip之类的。

# tcpreplay 回放
# 001 拆分包 -a:(报文自动区分) -i:(待处理pcap) -o:(生成的缓存文件)
tcpprep -a client -i mytest.pcap -o mytest_c_s.cache
# 002 从两个网卡发送:-c:(缓存文件分割流量) -i:(回放接口1) -I:(回放接口2)
tcpreplay -i eth1  -I eth2 -p 10000 -c mytest_c_s.cache  mytest.pcap

2、tcprewrite 修改报文

Tcprewrite是一个修改pcap文件报文的工具。修改后的报文可通过 tcpreplay回放。

1. 修改端口

# 001 修改UDP、TCP端口号
# --portmap=srcport:newsrcport,dstport:newdstport
# --infile=待处理pcap
# --outfile=修改后的pcap
tcprewrite --portmap=80:8080,22:8022 --infile=input.pcap --outfile=output.pcap
tcprewrite --portmap=80:8080 --infile=input.pcap --outfile=output.pcap

#002 将10.0.0.0/8网段的IP替换为172.16.0.0/12,将192.168.0.0/16网段IP替换为172.168.0.0/12
tcprewrite --pnat=10.0.0.0/8:172.16.0.0/12,192.168.0.0/16:172.168.0.0/12 --infile=input.pcap --outfile=output.pcap
tcprewrite --pnat=33.45.195.89:172.16.0.0/12 --infile=input.pcap --outfile=output.pcap

tcprewrite --srcipmap=127.0.0.1/32:192.168.147.223/32  --infile=104-input.pcap --outfile=outputs.pcap
tcprewrite --dstipmap=127.0.0.1/32:192.168.148.223/32  --infile=outputs.pcap --outfile=104-av.pcap
#随机生成源IP:
tcprewrite --seed=423 --infile=input.pcap --outfile=output.pcap
#3. 修改MAC
 tcprewrite --enet-smac=修改后的MAC  --infile=opctest02.pcap --outfile=opctest03.pcap
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐