tcprewrite使用示例

常用示例

主要介绍端口,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

posted @ 2022-01-23 17:13  超级宝宝11  阅读(3038)  评论(0编辑  收藏  举报