Packetforge-ng
描述
packetforge-ng的目的是創建可隨后用于注入的加密數據包。您可以創建各種類型的數據包,例如arp請求,UDP,ICMP和自定義數據包。最常見的用途是為后續注入創建ARP請求。
要創建加密的數據包,您必須具有PRGA(偽隨機生成算法)文件。這用于加密您創建的數據包。這通常是從aireplay-ng chopchop或fragmentation攻擊中獲得的。
用法
用法:packetforge-ng
偽造選項
-p :設置幀控制字(十六進制)
-a :設置訪問點MAC地址
-c :設置目標MAC地址
-h :設置源MAC地址
-j:設置FromDS位
-o:清除ToDS位
-e:禁用WEP加密
-k <ip [:port]>:設置目標IP [端口]
-l <ip [:port]>:設置源IP [端口](短劃線小寫字母L)
-t ttl:設置生存時間
-w <文件>:將數據包寫入此pcap文件
來源選項
-r <文件>:從此原始文件讀取數據包
-y <文件>:從此文件讀取PRGA
模式
- -arp:偽造的ARP分組(-0)
- -udp:偽造一個UDP包(-1)
- -icmp:偽造的ICMP分組(-2)
- -null:建立一個空數據包(-3)
- -custom:建立一個自定義數據包(-9)
使用范例
生成ARP請求報文
這是如何生成arp請求數據包的示例。
首先,使用aireplay-ng chopchop或fragmentation方法獲得xor文件(PRGA)。
然后使用以下命令:
packetforge-ng -0 -a 00:14:6C:7E:40:80 -h 00:0F:B5:AB:CB:9D -k 192.168.1.100 -l 192.168.1.1 -y fragment-0124-161129.xor -w arp-request
哪里:
-0表示要生成arp請求數據包
-a 00:14:6C:7E:40:80是訪問點MAC地址
-h 00:0F:B5:AB:CB:9D是您要使用的源MAC地址
-k 192.168.1.100是目標IP。 IE在arp中是“誰擁有此IP”
-l 192.168.1.1是源IP。 IE在arp中是“告訴此IP”
-y片段0124-161129.xor
-w arp-packet
假設您正在嘗試使用自己的接入點,則可以使用您自己的密鑰解密上面生成的arp請求數據包。因此,看到我們剛剛創建的數據包可以被解密:
輸入“ airdecap-ng -w <接入點加密密鑰> arp-request”
結果如下:
Total number of packets read 1
Total number of WEP data packets 1
Total number of WPA data packets 0
Number of plaintext data packets 0
Number of decrypted WEP packets 1
Number of decrypted WPA packets 0
要查看剛剛解密的數據包,請輸入“ tcpdump -n -vvv -e -s0 -r arp-request-dec”
結果如下:
reading from file arp-request-dec, link-type EN10MB (Ethernet)
18:09:27.743303 00:0f:b5:ab:cb:9d > Broadcast, ethertype ARP (0x0806), length 42: arp who-has 192.168.1.100 tell 192.168.1.1
這正是我們所期望的。現在,您可以按照“ aireplay-ng -2 -r arp-request ath0”的方式注入此arp請求數據包。
該程序將響應如下:
Size: 68, FromDS: 0, ToDS: 1 (WEP)
BSSID = 00:14:6C:7E:40:80
Dest. MAC = FF:FF:FF:FF:FF:FF
Source MAC = 00:0F:B5:AB:CB:9D
0x0000: 0841 0201 0014 6c7e 4080 000f b5ab cb9d .A....l~@.......
0x0010: ffff ffff ffff 8001 6c48 0000 0999 881a ........lH......
0x0020: 49fc 21ff 781a dc42 2f96 8fcc 9430 144d I.!.x..B/....0.M
0x0030: 3ab2 cff5 d4d1 6743 8056 24ec 9192 c1e1 :.....gC.V$.....
0x0040: d64f b709 .O..
Use this packet ? y
Saving chosen packet in replay_src-0124-163529.cap
You should also start airodump-ng to capture replies.
End of file.
通過在上方輸入“ y”,將注入您使用packetforge-ng創建的數據包。
生成空數據包
此選項使您可以生成LLC空數據包。這些是最小的數據包,不包含任何數據。開關“ -s”用于手動設置數據包的大小。這是生成用于注入的小數據包的簡單方法。
請記住,大小值(-s)定義了未加密數據包的絕對大小,因此您需要添加8個字節以獲得加密后的最終長度(iv + idx為4個字節,icv為4個字節)。此值還包括長度為24個字節的802.11標頭。
該命令是:
packetforge-ng --null -s 42 -a BSSID -h SMAC -w short-packet.cap -y fragment.xor
哪里:
–null表示生成LLC null數據包(需要雙破折號)。
-s 42指定要生成的包長度。
-a BSSID是接入點的MAC地址。
-h SMAC是要生成的數據包的源MAC地址。
-w short-packet.cap是輸出文件的名稱。
-yfragment.xor是包含PRGA的文件的名稱。
生成自定義數據包
如果要生成客戶數據包,請首先使用所選工具創建數據包。這可能是一個專用工具,十六進制編輯器,甚至是以前的捕獲結果。然后將其另存為pcap文件。之后,運行命令:
packetforge-ng -9 -r input.cap -y keystream.xor -w output.cap
哪里:
-9表示生成自定義數據包。
-r input.cap是輸入文件。
-y keystream.xor是包含PRGA的文件。
-w output.cap是輸出文件。
當它運行時,packetforge-ng會詢問您要使用哪個數據包,然后輸出文件。
使用技巧
大多數接入點實際上并不關心arp請求使用了什么IP。因此,您可以使用255.255.255.255作為源IP和目標IP。
因此,packetforge-ng命令變為:
packetforge-ng -0 -a 00:14:6C:7E:40:80 -h 00:0F:B5:AB:CB:9D -k 255.255.255.255 -l 255.255.255.255 -y fragment-0124-161129.xor -w arp-request
使用故障排除
同時包含-j和-o標志
人們經常犯的一個錯誤是包括-j和-o標志中的一個或兩個,并創建無效的數據包。這些標志調整生成的數據包中的FromDS和ToDS標志。除非您正在做一些特別的事情并且真的知道自己在做什么,否則不要使用它們。通常,不需要它們。
錯誤消息”Mode already specified”
這通常是由于在命令中使用數字(-1)而不是短劃線L(-l)引起的。
輸入:
packetforge-ng -0 -a 00:14:6C:7E:40:80 -h 00:09:5B:EC:EE:F2 -k 255.255.255.255 -1 255.255.255.255 -y 00:14:6C:7E:40:80-03-00-14-6C-7E-40-80.xor -w arp-request
給出:
Mode already specified.
"packetforge-ng --help" for help.
這是因為使用了-1(第一)而不是正確的-l(字母ell)。因此,只需使用“ -l”。
Aircrack-ng中文使用教程
推薦文章: