tcprewrite的安装和用法

(2011年2月14日更新)

tcprewrite可以修改pcap包的端口、IP、MAC地址等,搭配tcpreplay回放数据包。

对于一个通过tcpdump得到的数据包test.pcap,它是oIP1:oIP2之间的数据交互,要将其源目的IP地址修改为nIP1:nIP2,首先要执行tcpprep命令,生成中间文件test_cache.pcap:

tcpprep -p --pcap=test.pcap --cachefile=test_cache.pcap

然后执行tcprewrite对数据包进行修改,需要注意的是一般情况下修改了源目的IP地址的同时还要修改二者的MAC地址,如原MAC地址对应为oMAC1:oMAC2,要将oMAC1修改为nMAC1,oMAC2修改为nMAC2,命令如下:

tcprewrite -i test.pcap -o output_test.pcap --cachefile=test_cache.pcap -e nIP1:nIP2 --dmac=oMAC1,nMAC1 --smac=oMAC2,nMAC2

ouput_test.pcap为重写后的输出文件,如果重写后的数据报文IP和MAC的对应于期待不一致,调换IP(MAC)1、IP(MAC)2的顺序即可。

P.S.修改目的IP的MAC地址的时候,如果是三层交换网络,MAC地址不是目的机网卡物理地址,而是源机器所连接的交换机MAC地址。

同事需要修改一个pcap包的端口,官网 提供的方法是使用"--portmap"选项,如

$ tcprewrite --portmap=80:8080,22:8022 --infile=input.pcap --outfile=output.pcap

would re-map TCP/UDP traffic running on 80 to be 8080 and traffic on port 22 to port 8022.

但是,试来试去改端口都不生效,但是修改ip地址却无问题。

检查了下安装的tcprewrite版本,显示是3.0.0beta,官方最新稳定版是3.4.4,系统的libnet和libpcap在安装tcpreplay套件后升级过,怀疑是兼容问题,遂下载最新版安装。

tar xzvf  tcpreplay-3.4.4.tar.gz

cd tcpreplay-3.4.4/

./configure

make

make install

需求是要将53端口号修改为54,命令如下

 

tcprewrite --portmap=53:54 --infile=input.pcap --outfile=output.pcap

修改成功

总结:莫名其妙的问题,可以试试重新安装软件。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值