常用示例
主要介紹端口,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