当前位置: 首页 > 面试题库 >

Scapy不需要的RST TCP数据包

慕云
2023-03-14
问题内容

为了了解TCP的工作原理,我尝试建立自己的TCP SYN / SYN-ACK /
ACK(基于该教程:http://www.thice.nl/creating-ack-get-packets-with-
scapy/
)。

问题是,每当我的计算机从服务器收到SYN-ACK时,它都会生成一个RST数据包,该数据包将停止连接过程。

我在OS X Lion和Ubuntu 10.10 Maverick
Meerkat上尝试过,都重置了连接。我发现了这一点:http
:
//lkml.indiana.edu/hypermail/linux/net/0404.2/0021.html,我不知道这是否是原因。

有人能告诉我原因吗?以及如何避免这个问题?

谢谢。


问题答案:

您引用的文章对此很清楚…

由于您尚未完成完整的TCP握手,因此您的操作系统可能会尝试控制并可以开始发送RST(重置)数据包,为避免这种情况,我们可以使用iptables:

iptables -A OUTPUT -p tcp --tcp-flags RST RST -s 192.168.1.20 -j DROP

本质上,问题在于scapy它在用户空间中运行,并且Linux内核将首先接收SYN-
ACK。内核将发送RST,因为在有机会使用之前,它不会在有问题的端口号上打开套接scapy

解决方案(如博客所述)是对内核进行防火墙保护,以防止发送RST数据包。



 类似资料:
  • 我想更新xml中的一个值 更新trb1_sub_errs set error_status='ready_to_recycle',general_data_c=updatexml(xmltype(general_data_c),'//data/cmheadertransaction/transactionrsn/text()','creq'),其中sub_trx_id=4678604091;更新t

  • 我试图弄清楚如何配置一个方法,使其不在使用Spring的事务中运行。我读到Spring数据存储库默认情况下激活其方法中的事务行为。我不想要这个事务,因为我有许多对存储库的“保存”调用,并且每个调用都是独立的。我认为为每个对存储库方法的调用创建一个事务会降低代码和应用程序的性能。所以: 这是可能的还是每个服务或dao方法都必须在一个事务中运行? 如果有,为什么? 如果可能,如何配置方法不在事务中运行

  • 我尝试使用@ControllerAdvise+@ExceptionHandler来捕获ConstraintViolationException,但是它似乎是以前捕获的,抛出的是TransactionSystemException。 验证数据是非常基本的事情,但出于某种原因,在搜索了很多次之后,我还没有找到解决方案。 编辑:显示代码:

  • 问题内容: 我正在通过批处理文件运行文件 批处理文件: SQL文件abc.sql: Output.txt: 请帮助我删除output.txt文件开头和结尾的多余数据。 问题答案: 似乎是您要找的东西; [-沉默的]](https://docs.oracle.com/cd/B10501_01/server.920/a90842/ch4.htm#1006196) 禁止所有SQL * Plus信息和提示

  • Scapy是一款强大的交互式数据包处理工具、数据包生成器、网络扫描器、网络发现工具和包嗅探工具。它提供多种类别的交互式生成数据包或数据包集合、对 数据包进行操作、发送数据包、包嗅探、应答和反馈匹配等等功能。Python解释器提供交互功能,所以要用到Python编程知识(例如 variables、loops、和functions)。支持生成报告,且报告生成简单。

  • DShell Dshell是一个基于Python的网络取证分析工具包。 该工具包由美国陆军研究实验室开发。 该开源工具包的发布于2014年。该工具包的主要重点是轻松进行取证调查。 该工具包由大量解码器组成,如下表所示。 Sr.No. 解码器名称和描述 1 dns 这用于提取DNS相关的查询 2 reservedips 标识DNS问题的解决方案 3 large-flows netflows列表 4