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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM