概述
(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
修改成功
总结:莫名其妙的问题,可以试试重新安装软件。
最后
以上就是虚幻秀发为你收集整理的tcprewrite的安装和用法的全部内容,希望文章能够帮你解决tcprewrite的安装和用法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复