如何利用僵尸扫描来发现服务器的开放端口

本文介绍了僵尸扫描这种极度隐蔽的端口扫描技术,包括其原理和实验过程。通过僵尸机进行扫描,可以避免直接暴露扫描者的IP,提高隐蔽性。文章使用Kali Linux和Scapy库展示了僵尸扫描的实现,并提供了Python脚本示例。同时,提到了nmap工具的类似功能,强调在端口扫描时应结合多种方法以获取更准确的结果。
摘要由CSDN通过智能技术生成

请输入图片描述

0x00:简介

渗透测试信息搜集阶段,在发现目标服务器所开放端口时,扫描方式可分为三种,分别是:隐蔽扫描,全链接扫描和僵尸扫描。

全链接扫描:即正常的请求,过程包含了三次握手,判断端口开放的依据是第三次握手返回的信息是否为 FIN/ACK。

请输入图片描述

隐蔽扫描:即只发送第一次握手的 SYN 包,判断端口开放的依据是返回的信息是否为 SYN/ACK,如果为 SYN/ACK 则端口开放,否则为未开放状态。未开放时会返回 RST/ACK 的信息。

请输入图片描述

僵尸扫描:即用僵尸机(非自己的机器)对目标服务器进行端口探测,因为使用的为僵尸机,所以其隐蔽性高,追查不到自己的 IP,利用程度比隐蔽扫描和全链接扫描要大。

0x01:原理

僵尸扫描可分为自己的机器、僵尸机和目标服务器。

请输入图片描述

第一步:扫描者直接向僵尸机发送第二次握手包,即 SYN/ACK,类似于隐蔽扫描,直接发送 SYN/ACK,僵尸机会返回一个 RST 包,RST 包中包含了 ipid 参数,此参数为数据包的序列号,记录此序列号,例如为 x。

第二步:扫描者伪造自己的 ip 为僵尸机的 ip,向目标服务器发送第一次握手包 SYN,发送后就关闭了链接,这时的目标服务器收到的是一个不正常的 SYN 包。

第三步:端口开放的情况,当目标服务器端口开放时,收到 SYN 后会返回一个 SYN/ACK,这个包是返回给僵尸机的,因为 SYN 是自己伪造僵尸机发的,所以僵尸机会直接返回一个 RST,此时 RST 的序号为 x+1.

第四步:端口关闭的情况,当目标服务器只收到一个 SYN 时,因为没有完整的后续握手,所以会返回一个 RST 包。因为这时的僵尸机直接收到了一个 RST 包,所以后面不会再有发送其他握手包的情况,此时包序号还停留在 x。

第五步:扫描者再次直接向僵尸机发送 SYN/ACK 包,不完整的握手,还是类似于隐蔽扫描,所以僵尸机会直接返回 RST 包,此时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值