Scapy如何处理数据包


本篇内容介绍了“Scapy如何处理数据包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!发送仅设置了SYN的空TCP数据包。SYN/ACK或RST响应表示机器已启动并正在运行。发送仅设置了ACK位的空TCP数据包。未经请求的ACK数据包应通过RST进行响应,RST显示一台机器。SYN-ping和ACK-ping看起来可能是多余的,但是大多数无状态防火墙不会过滤未经请求的ACK数据包,所以最好同时使用这两种ping技术。将UDP数据包发送给给定的端口(无论是否带有有效载荷),协议特定的有效载荷会使扫描更加有效。选择最有可能关闭的端口(开放的UDP端口可能会收到空数据包,但会忽略它们)。ICMP端口不可达表示机器是启动的。在同一网络/ LAN上探测存活主机时,可以使用ARP Ping。更快,更可靠,因为它仅通过ARP在第2层上运行。ARP是任何第2层通信的骨干协议由于在 IPv6 中没有 ARP协议,所以在 IPv6 上层定义了 NDP 协议实现 ARP 的地址解析,冲突地址检测等功能以及IPV6 的邻居发现功能。ICMP扫描涉及无处不在的_ping程序_发送的标准数据包。向目标IP发送一个ICMP类型8(回显请求)数据包,收到一个ICMP类型0(回显应答)的包表示机器存活。现在许多主机和防火墙阻止这些数据包,因此基本的ICMP扫描是不可靠的。ICMP还支持时间戳请求和地址掩码请求,可以显示计算机的可用性。找了个网图( 侵删)这里展示一下tcpdump抓到的握手包IP与端口号之间以’.’分隔,ACK用’.’表示,SYN用’S’表示,而[S.]则表示SYN+ACK使用源IP地址和目标IP地址制作一个IP头。制作一个TCP标头,在其中生成TCP源端口,设置服务器侦听的目标端口,设置TCP的flag SYN,并生成客户端的seq。保存服务器的响应。获取服务器的TCP序列号,并将该值加1。IP标头与初始SYN数据包具有相同的源和目标。TCP报头具有与syn数据包相同的TCP源端口和目标端口,仅设置ACK位,由于SYN数据包消耗一个序列号,因此将客户端的ISN递增1,将确认值设置为递增的服务器的序列号值。完整代码如下SYN扫描也称为半开放扫描。可以使用这种策略来确定通信端口的状态而无需建立完整的连接。客户端首先向被测主机发送一个syn数据包,如果端口开放,那么服务端会响应一个syn+ack的数据包,之后客户端会发送rst数据包进行重置。否则服务端会直接响应一个rst包,表示端口没有开放。如果我们发了大量的syn包而不去确认,服务端会继续发送syn+ack的包,会不断的消耗服务器的CPU和内存,这也就是我们常说的syn泛洪攻击了。接下来我们使用scapy来模拟syn扫描使用sr1功能发送并响应数据包使用sprintf方法在响应中打印字段。(“ SA”标志表示开放的端口,“ RA”标志表示关闭的端口)make_table接受三个值,行,列和表数据。(在下面的示例中,目标IP位于x轴上,目标端口位于y轴上,响应中的TCP标志是表格数据)60.205.177.169的20和22端口没有响应数据包,猜测中间可能有设备(防火墙)给拦下了。客户端会发送带有fin标志(关闭连接)的数据包到服务端,当服务端没有响应时,表示端口是开放状态,否则会收到rst的包。null扫描会发送一个没有设置任何flag的TCP数据包,当收到rst的响应包则表示端口关闭,否则表示端口开放,如果收到类型为3且代码为1、2、3、9、10或13的ICMP错误表示该端口已被过滤,获取不到端口状态。XMAS扫描会发送带有URG,PUSH,FIN标志的TCP数据包,如果未接收到任何数据包,则认为该端口处于打开状态;如果接收到RST数据包,则将该端口视为已关闭。如果收到类型为3且代码为1、2、3、9、10或13的ICMP错误表示该端口已被过滤,获取不到端口状态。UDP扫描最常见于检测DNS,SNMP和DHCP服务。客户端会发送带有要连接的端口号的UDP数据包。如果服务器使免费云主机域名用UDP数据包响应客户端,那么该端口在服务器上是开放的。如果返回ICMP端口不可达的类型为3和code为3错误数据包,表示该端口在服务器是关闭状态。跟踪路由技术基于IP协议的设计方式。IP标头中的TTL值被视为跳数限制。每当路由器收到要转发的数据包时,它将TTL减1并转发数据包。当TTL达到0时,路由器将向源计算机发送答复,表示数据包已被丢弃。各种工具背后的技术是相同的,但是实现它们的方式略有不同。Unix系统使用UDP数据报文,而Windows tracert则发送ICMP请求,Linux的tcptraceroute使用TCP协议。Scapy包含一个内置的traceroute()函数可以实现与上面相同的功能我们可以通过在traceroute()函数的l4参数中指定完整的数据包来执行DNS跟踪路由“Scapy如何处理数据包”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注云编程开发博客网站,小编将为大家输出更多高质量的实用文章!

相关推荐: 使用OpenSSL构建私有CA

一、什么是CA CA就像工商局,CA证书就是给商户颁发的经营许可证,是互联网上颁发给各个站点的身份认证牌照。例如,我们输入www.xxx.com后出现的网站,我们怎么知道它是不是安全的?怎么知道它就是我们要登录的网站呢?如果它有CA证书,并且我们电脑里存了它的…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 02/01 22:22
Next 02/01 22:22