一、拒绝服务攻击相关概念 1.1DoS和DDoS 1.1.1DoS拒绝服务攻击 拒绝服务攻击(Denial of Service,DoS):通过向目标系统发送大量的请求或数据,耗尽其资源,如 CPU、内存、网络带宽等,导致系统无法及时处理合法用户的请求,从而使服务中断或变得不可用。
服务(Service):系统提供的,用户在对其使用中会受益的功能 拒绝服务(DoS: Denial of Service):任何对服务的干涉如果使得其可用性降低或者失去可用性称为拒绝服务, 如: 计算机系统崩溃;带宽耗尽;硬盘被填满 攻击方式: 消耗系统或网络资源; 阻断访问路径;更改系统配置 1.1.2DDoS 分布式拒绝服务攻击 分布式拒绝服务攻击 DDoS(Distributed Denial of Service):如果处于不同位置的多个攻击者同时向一个或多个目标发起拒绝服务攻击,或者一个或多个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施拒绝服务攻击.
1.1.3 DDoS与DoS的关系 广义:DDoS属于DoS攻击,且是DoS主流的攻击模式 狭义: DoS指的是单一攻击者针对单一受害者的攻击(传统的DoS), 而DDoS则是多个攻击者向同一受害者的攻击 1.2分类 拒绝服务攻击的分类方式有多种,其中按照攻击机制分类可分为如下三类:剧毒包或杀手包型、风暴型、重定向型
1.2.1 剧毒包或杀手包型( Killer Packet) 这类攻击主要是通过构造具有特殊格式或内容的恶意数据包,发送给目标系统。这些数据包利用了目标系统在协议实现或程序处理上的漏洞,当目标系统接收并处理这些数据包时,会导致系统出现异常,如崩溃、重启或资源耗尽,从而无法正常提供服务。
下面是几种典型的剧毒包型拒绝服务攻击:
原理:利用在 TCP/IP 协议栈实现中信任 IP 碎片中的包的标题头所包含的信息来实现攻击。IP 分段含有指示该分段所包含的是原包哪一段的信息,某些 TCP/IP 协议栈在收到含有重叠偏移的伪造分段时将崩溃。
也称为死亡之ping、ICMP Bug攻击,攻击者发送特制的 ICMP 回应请求,其大小超过了 IP 协议允许的最大值(65,535字节)。这可能导致目标主机在处理这些异常大的数据包时崩溃或变得不稳定。
原是一段C程序,其功能是向受害者发送TCP SYN包,而这些包的源IP地址和目的IP地址被伪造成受害者的IP地址,源端口和目的端口也是相同的(端口必须是激活的),目标系统在收到这样的包以后可能会挂起、崩溃或重启。
1.2.2 风暴型(Flood Type) 原理 :攻击者通过向目标系统发送大量的数据包,形成类似风暴的流量冲击,从而耗尽目标系统的网络带宽、计算资源或内存等,使其无法正常处理合法的请求,也称为“数据风暴” 一般分为直接风暴型攻击 和反射攻击(DRDoS)
直接风暴型 原理 :攻击者利用大量的攻击源(如僵尸网络中的计算机)直接向目标系统发送海量的攻击数据包,试图耗尽目标系统的资源,如网络带宽、CPU 处理能力、内存等,从而使目标系统无法正常处理合法用户的请求,导致服务中断。特点 攻击直接 :攻击数据包直接从攻击者控制的节点发送到目标系统,路径相对简单直接。流量巨大 :需要控制大量的攻击源来产生足够的流量,以对目标系统造成严重影响。通常会形成非常高的网络带宽占用,使目标系统的网络连接拥堵不堪。容易被检测 :由于攻击流量直接指向目标,相对容易被网络安全设备监测到攻击源的 IP 地址等信息,便于采取一定的防御措施,如封堵攻击源 IP 等。 典型攻击方式 :
1. PING风暴攻击(直接型) 原理:单纯地向受害者发送大量的ICMP回应请求(ICMP Echo Request,即Ping)消息,使受害者系统忙于处理这些消息而降低性能,严重者可能导致系统无法对其他的消息做出响应。 缺点: 需要大规模僵尸网络的支持 ;大多防火墙会过滤ICMP包 2.SYN风暴攻击(直接型) 原理: 发送大量SYN报文,但对服务器的SYN+ACK应答报文不作应答,即三次握手的第三次握手无法完成,造成服务器维护大量的半连接列表,消耗服务器半连接资源(一般系统的上限为1024,超过此数则不接受新的连接请求)的攻击方式。 缺点: 需伪造地址(一方面逃避追踪,另一方面为了攻击能成功) 3.TCP连接耗尽攻击(直接型) 原理:通过大量的TCP连接耗尽受害者资源,也称为“空连接攻击”。 与SYN风暴的区别:不需要不停地向受害者发起连接 4.HTTP风暴攻击(直接型) 原理: 用HTTP协议对网页进行的语义上合法的请求,不停地从受害者处获取数据,占用连接的同时占用带宽。 进行连接耗尽攻击的一个有效手段是不停地获取受害者网站上的大的文件,从而使得一次请求占用系统更多的资源。 缺点: 一般要使用真实的IP地址(傀儡主机) 与前面讲的“连 反射风暴型 原理 :攻击者通过向一些具有放大功能的网络服务(如 DNS 服务器、NTP 服务器等)发送请求,同时将请求中的源 IP 地址伪装成目标系统的 IP 地址。这些网络服务接收到请求后,会根据请求向伪装的源 IP 地址(即目标系统)发送大量的响应数据包,从而形成反射风暴,对目标系统造成拒绝服务攻击。特点 隐蔽性强 :攻击者利用中间网络服务作为反射点,使得攻击流量看似来自于正常的网络服务,而不是直接来自攻击者控制的节点,增加了追踪攻击源的难度。流量放大 :借助具有放大特性的网络服务,能够将攻击者发送的少量请求放大为大量的响应流量,从而以较小的攻击成本对目标系统造成较大的影响。例如,通过精心构造 DNS 查询请求,可使返回的响应数据量比请求数据量大很多倍。难以防御 :由于攻击流量来自于正常的网络服务,目标系统难以简单地通过封堵 IP 地址等方式来防御攻击,因为这些 IP 地址可能是正常的网络服务地址,封堵可能会影响正常的网络服务使用。 典型攻击方式 :
1.NTP 反射放大攻击 NTP (Network Time Protocol,网络时间协议):用于计算机间的时间同步。 原理 :攻击者伪造 “monlist” 请求,将源地址设置为目标受害者的 IP 地址,然后发送到互联网中开放的 NTP 服务器。NTP 服务器收到请求后,会向被伪造的受害者 IP 地址发送大量数据包,形成流量放大效应。因为 NTP 服务器的 “monlist” 功能可返回上次与 NTP 服务器同步的客户端 IP 列表,当列表较长时,单个响应包可能达几百字节,且一个请求会使服务器向受害者发送多个响应包。例如,单次发起的请求可能引发数百倍甚至千倍的流量放大,导致受害者网络带宽阻塞,业务中断。危害 :能迅速放大攻击流量,攻击者可用较小资源和成本发动大规模 DDoS 攻击。攻击具有隐蔽性,受害者难以直接追踪到攻击源,且攻击流量可能持续数小时甚至数天,给企业和服务提供商带来巨大影响,还会消耗防御方的网络带宽和大量计算资源。 2.DNS 反射攻击 攻击过程 :黑客将自己的源 IP 地址伪造成被攻击目标的 IP 地址,然后向网络中开放的 DNS 服务器发送大量查询请求。由于 DNS 回应报文通常比请求报文大几倍甚至几十倍,这些放大后的 DNS 回应报文会被引导至被攻击目标,导致网络拥塞,使其无法正常提供服务。例如,攻击者控制僵尸网络向 DNS 服务器发送大量域名解析请求,使 DNS 服务器因处理大量解析请求而过载,无法响应正常用户的请求。危害 :会使目标系统因承受巨大网络流量而无法正常工作,导致服务中断,影响用户对网络服务的正常访问,还可能造成信息泄露等安全问题,如在 DNS 缓存投毒攻击中,用户可能被引导至虚假站点,导致财产安全受到影响。 3.SSDP 反射攻击 :
SSDP 即简单服务发现协议,常用于智能家居设备等通过 UPnP(即插即用)协议进行网络通讯。攻击者伪造成受害者的 IP 地址,向互联网上大量的智能设备发送 SSDP 请求,接收到请求的智能设备会根据源 IP 地址将响应数据包返回给受害者,从而形成反射攻击由于互联网上智能设备数量庞大,这种攻击能产生大量流量,对目标造成拒绝服务。例如,黑客利用僵尸网络控制大量设备向目标发送伪造源 IP 的 SSDP 请求,使目标被海量回应数据包淹没。 4.Memcached 反射攻击 :
Memcached 是一款开源的高性能分布式内存对象缓存服务,支持 UDP 协议访问且默认开放 UDP 端口 11211。攻击者通过快速端口扫描收集大量未限制的 Memcached 服务器,然后向其 UDP:11211 端口发送伪造源 IP 为攻击目标 IP 地址的特定请求数据包。服务器收到后会将返回数据发送至攻击目标 IP,由于 Memcached 服务器的响应数据量可能比请求数据量大很多,在大量请求下,攻击目标会因收到海量数据包而无法正常提供服务 1.2.3 重定向型( Redirection Type) 原理 :攻击者通过各种手段,将原本发往目标系统的合法流量重定向到其他恶意服务器或地址,或者干扰目标系统的正常路由信息,使得合法用户的请求无法到达目标系统,或者被引导到错误的地址,从而导致目标系统无法正常提供服务。典型攻击方式: 一种方式是通过攻击域名系统(DNS),将目标网站的域名解析到错误的 IP 地址,使用户无法访问真正的网站。例如,攻击者利用 DNS 缓存投毒技术,篡改 DNS 服务器中的缓存记录,将目标域名指向攻击者控制的服务器。当用户访问该域名时,就会被重定向到错误的服务器,无法获取正常的服务。
另一种方式是通过操纵网络路由协议,如通过发送虚假的路由信息,使数据包在网络中被错误地路由,无法到达目标系统。
二、实验设备及环境 软件环境:
攻击机Kali2022 IP:192.168.127.130 软件: hping3 靶机Windows Server2012 IP:192.168.127.102 硬件环境:
两台虚拟机,分别作为攻击机和靶机。 攻击机和靶机在同一局域网内,确保网络连通性。 三、实验步骤 1.查看靶机IP地址 确认靶机IP:
确保靶机Windows Server 2012的IP地址为192.168.127.102,攻击机Kali 2022的IP地址为192.168.127.130。
ipconfig //Windows上查看IP
ifconfig //Linux上查看IP2. 建立靶机环境 确保靶机Windows Server 2012已安装并运行,并配置好网络,确保可以通过IP地址访问。 关闭靶机的防火墙,防止防火墙过滤ICMP数据包等异常数据等。 3. 学习使用DDoS、DRDos攻击等工具 使用hping3
在Kali2022虚拟机上确定hping3和wireshark已经安装,并打开wireshark进行抓包
hping3 -U --flood -V --rand-source 192.168.127.102通过伪造大量的IP实现对目标主机的攻击
查看靶机状态:
CPU利用率直线上升,最高可到92%,以太网接受数据包的速度达到了10.2,发送回去的速度为2.1Mbps,在“进程”可以看到CPU利用率73%时“系统终端”占比68%
查看wireshark抓包情况,攻击主机向靶机伪造底子大量发生TCP数据包
hping3 -S -a 1.1.1.1 -V 192.168.127.102-a 为伪造IP地址来源
-V冗余模式
-S 发送SYN数据包
1.1.1.1伪造的IP为1.1.1.1
192.168.127.102靶机的IP地址
查看wireshark,通过对数据分析可以看到:已经成功的伪造了数据包的来源,并且在不断的向外发送TCP数据包。
打开靶机Windows Server2012的任务管理器,在一瞬间CPU利用率100%,结束发送数据包,CPU利用率恢复正常
hping3 -S -p 80 - –flood -–rand-source --data 128 192.168.127.102-S:发送SYN数据包。
-p 80:指定目标端口为80(HTTP)。
--flood:以最大速度发送数据包。
--rand-source:随机伪造源IP地址(可选,但为模拟真实DDoS攻击常用)。
--data 128:设置数据包大小为128字节。
192.168.127.102:目标IP地址。
查看wireshark,通过对数据分析可以看到:已经成功的伪造了数据包的来源,并且在不断的向外发送TCP数据包。
打开靶机Windows Server2012的任务管理器,在一瞬间CPU利用率100%,结束发送数据包,CPU利用率恢复正常
此时靶机的CPU利用率直线上升,点击“性能”,在“以太网”可以看到靶机接收到大量数据包,速度为2.69GHz。
hping3 -1 -U --flood -V --rand-source 192.168.127.102 -1发送icmp数据包
-U设置URG(紧急)标志
--flood:以尽可能快的速度发送数据包,不显示每个数据包的回复。
--rand-source:使用随机的源IP地址发送数据包。
192.168.127.102:目标主机的IP地址
短时间内向特定目标不断请求ICMP回应,致使目标系统负担过重而不能处理合法的传输任务,就发生了ICMp Flood
查看靶机的CPU状态,此时CPU利用率直线上升到100%,接受数据的速度达到了6.5Mbps,发送数据的速度为3.7Mbps
打开wireshark可以看到此时攻击主机向靶机随机伪造地址发起ICMP洪泛攻击
hping3 -2 -U --flood -V --rand-source 192.168.127.102-2 发送udp数据包
查看此时的CPU利用率,快速上升,后趋于稳定,以太网接受的速度为5.0Mbps,发送速度112Kbps
打开wireshark查看状态,此时攻击主机向靶机随机伪造地址大量发送UDP数据包