• 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

  • 相关阅读:
    《JAVA程序设计》第10周学习总结
    《JAVA程序设计》第9周学习总结
    《Java程序设计》第8周学习总结
    《Java程序设计》第7周学习总结
    《Java程序设计》第6周学习总结
    《Java程序设计》第5周学习总结
    《Java程序设计》第4周学习总结
    《Java程序设计》第3周学习总结
    《Java程序设计》第2周学习总结
    201521123044 《Java程序设计》第12周学习总结
  • 原文地址:https://www.cnblogs.com/superbaby11/p/15836809.html
Copyright © 2020-2023  润新知