常用示例
主要介绍端口,IP和MAC地址的修改方法,其他参考tcprewrite -h
举例:$tcprewrite -r 80:8080 -i login.pcap -o login_update_port.pcap
修改login.pcap中端口,80端口修改成8080;也可以同时修改源和目的端口-r 80:8080,62165:8267;
$tcprewrite -e 1.1.1.1:2.2.2.2 -i login.pcap -o login_update_ip.pcap
修改login.pcap中客户端ip为1.1.1.1,服务器端ip为2.2.2.2,输出login_update_ip.pcap
$tcprewrite --enet-smac=01:02:03:04:05:06 -i login.pcap -o login_update_ip.pcap
修改服务器端源mac地址,也可以同时修改服务器端和客户端的源mac地址
注:参数--enet-dmac与--enet-smac类似
把源地址中的192.168.1.55替换为172.16.0.1,把目的地址中的192.168.1.1替换为172.16.0.2
tcprewrite --srcipmap=192.168.1.55:172.16.0.1 --dstipmap=192.168.1.1:172.16.0.2 --infile=abnormal.pcap --outfile=output.pcap
不区分源地址和目的地址,把192.168.1.55替换为172.16.0.1,把192.168.1.1替换为172.16.0.2
tcprewrite --pnat=192.168.1.55:172.16.0.1,192.168.1.1:172.16.0.2 --infile=abnormal_icmp_fragment.pcap --outfile=output.pcap
1、修改报文IP到同一指定值
tcpprep -p --pcap=input.pcap --cachefile=output.cache
tcprewrite -i input.pcap -o output.pcap --cachefile=ouput.cache -e 1.1.1.1:2.2.2.2
2、修改端口到指定端口,不区分源、目的
tcprewrite --portmap=53:54 --infile=input.pcap --outfile=output.pcap
3、随机生成指定数量的IP
tcprewrite --seed=200 --infile=input.pcap --outfile=output.pcap
4、修改源IP到指定段
tcprewrite --srcipmap=172.16.0.0/12:10.1.0.0/24 --infile=input.pcap --outfile=output.pcap
【参数选项】详解:
-r string, --portmap=string
修改TCP/UDP端口号,该选项可重复出现多次。
示例:
--portmap=80:8000 --portmap=8080:80 # 80->8000 and 8080->80
--portmap=8000,8080,88888:80 # 3 different ports become 80
--portmap=8000-8999:80 # ports 8000 to 8999 become 80
-s number, --seed=number
通过给定的seed随机化 src/dst IPv4/v6 地址,该选项只能出现一次。随机化的地址仍然保持客户端/服务器之间的关系。
-N string, --pnat=string
改写 IPv4/v6 地址,该选项最多能重复出现2次,该选项不能跟srcipmap 选项混合使用。
IPv4 示例:
--pnat=192.168.0.0/16:10.77.0.0/16,172.16.0.0/12:10.1.0.0/24
IPv6 示例:
--pnat=[2001:db8::/32]:[dead::/16],[2001:db8::/32]:[::ffff:0:0/96]
-S string, --srcipmap=string
改写 IPv4/v6 源 IP 地址,该选该项只能出现一次,该选项不能同 pnat 选项混合使用。
-D string, --dstipmap=string
改写 IPv4/v6 目的地址,该选项只能出现一次, 该选项不能同 pnat 选项联合使用。
-e string, --endpoints=string
点对点修改IP地址,该选项只能出现一次,将pcap文件中的所有客户端、服务器都改成这一对IP地址。该选项必须跟 --cachefile 选项联合使用。
IPv4 示例:
--endpoints=172.16.0.1:172.16.0.2
IPv6 示例:
--endpoints=[2001:db8::dead:beef]:[::ffff:0:0:ac:f:0:2]
-b, --skipbroadcast
跳过广播/组播地址改写。
默认情况下, --seed, --pnat and --endpoints 会修改 IPv4/v6 的组播广播地址以及 MAC 地址。设置该选项可以保持组播、广播数据包IP及MAC地址不变。
-C, --fixcsum
强制重新计算 IPv4/TCP/UDP 头部校验和,选项 --seed, --pnat, --endpoints,--fixlen 自动计算。
-m number, --mtu=number
修改默认的MTU长度(1500字节),该选项只能出现一次,该选项为 1 through MAXPACKET的整数。
--mtu-trunc
截取报文到指定的MTU,该选项只能出现一次。跟 --fixlen 类似,该选项丢弃数据包中长于MTU的部分。
-E, --efcs
丢弃位于报文尾部的 Ethernet checksums (FCS) 部分。并不检查FCS是否真正存在,必须在确保你的系统在读raw报文时候提供 FCS 时候才用该选项。
--ttl=string
修改IPv4/v6 TTL。
示例:
--ttl=10
--ttl=+7
--ttl=-64
--tos=number
修改 IPv4 TOS/DiffServ/ECN 位,该选项只能出现一次。该选项参数为 0-255 的整数。
--tclass=number
设置 IPv6 Traffic Class 位。该选项只能出现一次,该选项参数为 0-255的整数。
--flowlabel=number
设置IPv6 Flow Label,参数为 0 - 1048575 整数。
-F string, --fixlen=string
补充或者截断报文数据,使得跟头部长度匹配。该选该项只能出现一次,string值如下。
pad:补全截断的报文
trunc:重写IPv4头部长度来匹配实际报文长度。
del: 删除报文
--skipl2broadcast
跳过修改广播、组播二层地址。该选项会保持广播、组播MAC地址不变。
--dlt=string
修改的输出的 LDT 封装,该选项只能出现一次。改变输出报文的DLT类型可以选取下边几个值:
enet:Ethernet aka DLT_EN10MB
hdlc:Cisco HDLC aka DLT_C_HDLC
user:User specified Layer 2 header and DLT type
--enet-dmac=string
修改以太网目的地址。该选该项只能出现一次。第一个mac地址用于服务器到客户端,第二个mac地址用于客户端到服务器。
示例:
--enet-dmac=00:12:13:14:15:16,00:22:33:44:55:66
--enet-smac=string
修改源mac地址。该选项只能出现一次。第一个mac地址用于服务器到客户端,第二个mac地址用于客户端到服务器。
示例:
--enet-smac=00:12:13:14:15:16,00:22:33:44:55:66
--enet-vlan=string
修改以太网 802.1q VLAN tag,该选项只能出现一次。
add : 给以太网头添加802.1q VLAN 头部
del : 删除 vlan tags
--enet-vlan-tag=number
指定新的 vlan tag 值,该选项只能出现一次。该选型必须跟 enet-vlan 联合使用。该选项参数为 0-4095 整数。
--enet-vlan-cfi=number
指定 vlan tag 的 CFI 值,该选项只能出现一次,该选项必须跟 enet-vlan 联合使用。该选项参数为 0-1 的整型。
--enet-vlan-pri=number
指定 vlan tag 的优先级。该选项只能出现一次,该选项参数为 0-7 整型。
--hdlc-control=number
指定 HDLC control 值,该选项只能出现一次,该选项参数为整数。通常情况下该值为 0, 你可以给这个域制定 1 字节的数值。
--hdlc-address=number
指定 HDLC 地址,该选项只能出现一次,该选项参数为整数。有 1 字节的地址,可以设置数值:
0x0F:Unicast
0xBF:Broadcast
--user-dlt=number
设置输出pcap文件的DLT值。该选项只能出现一次,该选项参数为整数。
--user-dlink=string
设置用户定义的 Data-Link layer 数据,该选项最多出现 2 次。该选项第一个参数会用户修改客户端、服务器。
示例:
--user-dlink=01,02,03,04,05,06,00,1A,2B,3C,4D,5E,6F,08,00
-i string, --infile=string
指定要处理的 pcap 文件,改选项只能出现一次。
-o string, --outfile=string
输出 pcap 文件,该选项只能出现一次。
-c string, --cachefile=string
通过tcpprep的cache文件划分流量,该选项只能出现一次。
原文链接:https://www.jianshu.com/p/696ac64de2fb