网安实验2:Dos攻击
课堂实验
实验环境准备
虚拟机设置:
- 准备两台虚拟机:
- 攻击机:Kali Linux (内置hping3 和 nmap )
- 靶机:Windows XP
靶机服务配置
在Windows靶机上,将nginx文件夹放到C盘
打开命令行,进入 C:\nginx1.1.0 路径,运行 start nginx 来启动HTTP服务
连通性验证:
- 在靶机上,打开浏览器访问
localhost或127.0.0.1,应能看到nginx欢迎页面 。 - 在攻击机和靶机上分别使用
ifconfig/ipconfig查看各自IP地址 。 - 在攻击机上,ping靶机IP,确保网络互通。
- 在攻击机上,打开浏览器访问
http://[靶机IP],应能看到nginx欢迎页面 。
查看IP


扫描靶机开放端口

端口 80/tcp 是 open(开放)的,并且正在运行 http 服务
靶机上打开localhost验证

ping通

攻击机上打开浏览器访问靶机

SYN Flood 攻击
1 | sudo hping3 -S -p 80 -a 192.168.130.99 --flood 192.168.130.143 |
kali中访问网页失败了

ping的延迟大大增加

windows XP被攻击时直接卡死。因此停止攻击后再查看Windows XP任务管理器。看到被攻击时的CPU占用率显著提高

wireshark抓包

- Source (源地址):
192.168.130.99。这是用-a参数伪造的IP地址。 - Destination (目标地址):
192.168.130.143。这是靶机IP。 - Protocol (协议):
TCP。 - Info (信息):
[SYN]。发送的全都是SYN请求包 - Time (时间): 时间戳,
10.0995...,10.0996...,数据包之间的时间间隔极其微小。
发送数据包的速度快到连源端口号都来不及换了,只能不断重用。

SYN Flood原理
- 攻击:攻击机(Kali)发送海量伪造源IP的SYN包到靶机(Windows XP)。
- 靶机响应:靶机收到SYN后,会分配资源来准备建立连接,并向那个伪造的IP回复一个
SYN-ACK包。 - 资源耗尽:因为源IP是伪造的,靶机永远等不到来自那个IP的第三次握手。但靶机并不知道,它会傻傻地为这个“半开连接”保留资源,并进行重试。
- 拒绝服务:
--flood攻击瞬间发送了成千上万个这种请求,靶机的“半开连接”队列被迅速填满,系统资源被耗尽,最终导致系统卡死,无法处理任何新的连接请求。
UDP Flood 攻击
执行攻击:使用 hping3 发送 UDP 洪水。我们随便选一个端口,比如 53 (DNS)
1 | # --udp 表示使用UDP协议 |
wireshark抓包

- Source (源地址):
192.168.130.99(伪造的IP)。 - Destination (目标地址):
192.168.130.143(靶机IP)。 - Protocol (协议):
UDP。 - Info (信息):
... 53 Len=0。正在向靶机的 53 端口发送长度为 0 的 UDP 包。 - Time (时间): 同样,时间戳
...4960...,...4961...,...4963...间隔极短
延迟高达100ms以上

一直转圈,刷新不出来


原理对比
- SYN Flood (状态耗尽攻击):
- 原理:通过发送海量伪造的
SYN包,迫使靶机为每一个包创建“半开连接”状态,并分配内存。 - 目标:耗尽靶机的连接状态表 (connection table) 或 TCP 队列,使其无法处理新的、合法的 TCP 连接。
- 证据:抓到的满屏
[SYN]包。
- 原理:通过发送海量伪造的
- UDP Flood (带宽/资源耗尽攻击):
- 原理:通过发送海量的
UDP包,不关心状态,只为塞满靶机的网络带宽。 - 目标:当带宽被垃圾数据占满时,合法的网络包(如
ping包或http请求)就无法通过了。此外,系统也需要花费 CPU 资源去处理这些涌入的 UDP 包(检查哪个端口、哪个程序在监听),最终耗尽CPU 和带宽资源。 - 证据:抓到的满屏
UDP包。
- 原理:通过发送海量的
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Bastandern's Blog!
评论

