4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
热卖商品
新闻详情
从一次 Connection Reset 说起,TCP 半连接队列与全连接队列 - new...
来自 : 开源中国 发布时间:2021-03-24
IP 127.0.0.1.ftp-data 127.0.0.1.8877: Flags [S], seq 0, win 8192, length 0IP 127.0.0.1.8877 127.0.0.1.ftp-data: Flags [S.], seq 2150811556, ack 1, win 43690, options [mss 65495], length 0IP 127.0.0.1.ftp-data 127.0.0.1.8877: Flags [R], seq 1, win 0, length 0

前进的道路总是崎岖的,这次又是为什么???

这次问题比较好回答了,Scapy 运行在用户空间,SYN/ACK 这个包内核会先收到。因为我们用的是 RawSocket,内核不知道我们在进行三次握手,内核突然收到了一个 SYN/ACK 包,同时这个包对应的端口没有相关的 Socket,那么内核会认为这是一个无效的数据包,返回 RST 断开连接。正常情况下,三次握手都是由内核完成,内核知道我们在握手,此时内核并不知道。

因为我们要测试 SYN Flood,这个 RST 包会使得 Server 断开连接,将连接从半连接队列中清除,使得我们的攻击无效。

解决这个问题的方法有两个。第一,我们不用 Loopback Network Interface,换一个,比如 en0,IP 地址是 192.168.10.2。我们构造数据包发给 en0,src IP 随便填写,比如 192.168.100.2,因为返回的 SYN/ACK 不会由我们自己的系统接收,自然也不存在内核发送 RST 的问题。

第二,我们继续使用 Loopback,但是我们使用 iptables 将 RST 包直接丢弃,这里我们选择使用这个方法。

CentOS 7 默认使用的是 firewalld 而不是 iptables,我们需要手动安装。

$ systemctl stop firewalld$ yum install -y iptables-services$ systemctl start iptables# 添加规则,丢弃所有的 RST 包$ iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP

现在终于可以编写我们的攻击脚本了

本文链接: http://polyresyn.immuno-online.com/view-690929.html

发布于 : 2021-03-24 阅读(0)
公司介绍
品牌分类
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616
官网:http://