僵尸扫描原理详解

今天继续给大家介绍渗透测试相关知识,本文主要内容是僵尸扫描原理。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!

一、僵尸扫描概述

僵尸扫描是一种端口扫描方式,并且具有极强的隐蔽性,很难被发现。在僵尸扫描中,除了需要攻击机和目标主机外,还需要一台僵尸主机。这里的僵尸主机,并不是传统意义上的感染僵尸病毒,被黑客控制的主机,而是要求一台闲置(至少是短时间内闲置)的主机,并且其IP数据包中的ID是递增的,但是并不要求该僵尸主机被攻击者控制。这里的闲置主机,指的是该主机不主动向外部发送数据包,或者是在一段时间内很少向外部发送数据包。
尽管僵尸扫描具有隐蔽性强、不需要控制的僵尸主机等的优点,但是一个闲置的主机的要求非常苛刻,在现实中很难实现,IP数据包ID递增的主机则可以选择Windows XP系统。然而,尽管僵尸扫描很难在实战中实现,但是我们还是可以借鉴僵尸扫描的思路,因为其实施过程和原理非常巧妙。

二、僵尸扫描原理

要实施僵尸扫描,那么第一步是攻击者向僵尸机的一个开放端口发送一个SYN+ACK的数据包,根据TCP三次握手协议,由于僵尸机并没有向攻击者主动发送SYN数据包,因此僵尸机会回复一个RST的数据包,通过该数据包,我们可以得到该僵尸机的ID。之后,攻击者会伪装成僵尸机,向目标主机的指定端口发送一个SYN数据包,如果目标主机的该端口打开,目标主机在收到攻击者发送的SYN数据包后,会向僵尸机(因为攻击者是伪装的僵尸主机进行发送的)发送一个SYN+ACK的数据包,这样僵尸主机就会向目标主机发一个RST的数据包。而如果目标主机该端口没有打开,那么它则会向僵尸主机发送一个RST的数据包,僵尸主机在接收到这个RST的数据包后,不会有任何动作。这样,目标主机端口的开放就决定了僵尸主机是否发送一个RST的数据包,进而影响到僵尸主机IP数据包的ID号。最后,攻击者再次向僵尸主机发送SYN+ACK的数据包,收到僵尸主机的RST数据包后,查看其中的ID号,如果ID号比一开始增加了1,那么就说明目标主机的指定端口为关闭状态,如果ID号比一开始增加了2,就说明目标主机的指定端口为开放状态。
目标主机的指定端口为开放状态示意图如下所示:
在这里插入图片描述
目标主机的指定端口为关闭状态示意图如下所示:
在这里插入图片描述

三、写在最后

从以上原理,可以很容易的看出僵尸扫描的局限性——需要僵尸主机不主动对外发送IP数据包。如果不符合这一条件,那么就有可能导致IP数据包的ID号混乱。实际上,在实战环境中,这种条件是非常苛刻的。我们学习僵尸扫描,更主要的是学习僵尸扫描的思路和原理。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/124920378