Sockstress脚本DoS攻击原理及实战演示

首先说一说放大攻击及Sockstress相应原理

放大攻击原理:攻击者向目标发送一个很小的流量,但是会造成产生的攻击流量是一个巨大的、成百上千倍上万倍流量被放大的一个效果,才适合作为一个拒绝服务攻击效果。(实现攻击者很小的流量打垮一个看似很大的被攻击者)

对于主题Sockstress主要作用即:建立了连接,但是不传数据,而且这个连接不会断开,占用资源,最后导致拒绝服务攻击
————————————————
Sockstress是2008年由Jack C. Louis发现的,其主要针对TCP服务的拒绝服务攻击
目的在于:消耗被攻击目标系统资源,但不消耗网络带宽资源,会产生大量TCP连接但不会产生大量流量;在与攻击目标建立大量socket链接;当完成三次握手、最后的ACK包window大小为0(客户端不接收数据)(再回数据的时候,客户端与服务器端都会各自相对方确认自己的空间大小,防止双方各自传送内容过大,主要是流控的作用)

对于攻击者的优势:

1、攻击者资源消耗小(CPU、内存、宽带)
2、异步攻击,单机可拒绝服务高配资源服务器

主要机理在于:window窗口实现的TCP流控(在第三次传送ACK包的时候出现)
:利用流控的攻击特性,造成攻击:攻击者将ACK包中的流控大小修改为0,然后促使ACK不停发向服务器,那么就会造成拒绝服务。在服务器看来就是客户端暂时没有空间来接受数据流量,所以服务器一直处于等待状态;但是攻击者只需要发完ACK包就行,不需要维持这么一个连接,所以对于攻击者就不会消耗巨量的CPU内存、带宽资源(以小搏大,放大)。

接下来用实战进行演示:

准备工具:kali、metasploitable靶机、Jack C. Louis的c脚本

脚本下载地址:https://github.com/defuse/sockstress 

首先:确定好两个机器ip地址,下载脚本并对脚本c文件进行编译,,同时靶机进行top监视系统资源。

git clone https://github.com/defuse/sockstress 
gcc -Wall -c sockstress.c 
gcc -pthread -o sockstress sockstress.o 

 

使用./sockstress可以查看相关的参数: 

 接下来需要对防火墙规则进行限制:

因为当脚本对目标发起攻击时,主机是不会响应ACK包,但在操作系统内部如果不对其限制,默认是会由系统响应RST包表示连接可以断开,这样达不到一直建立连接的效果。

iptables -A OUTPUT -p TCP --tcp-flags rst rst -d 1.1.1.1 -j DROP
iptables -L     #查看配置

当完成配置后就可以执行程序了,然后就可以看到对比靶机上的效果,主要是cup内存、free空间、交换空间的变化,当一直减小那么说明效果已经体现了。

————————————————————

以上便是对Sockstress攻击的利用及原理。

发布了36 篇原创文章 · 获赞 16 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Jack0610/article/details/88648304
今日推荐