TCP扫描有三种类型:全连接扫描,隐蔽扫描,僵尸扫描。全连接扫描无须赘述。
隐蔽扫描:发送完SYN数据包以及收到SYN/ACK数据包后不再发送SCK数据包,由于没有建立完整的TCP连接,所以在目标主机的应用日志中不会有扫描的记录,只会在ip层有记录,因而较为隐蔽。
僵尸扫描:条件较为苛刻。首先要能够进行地址欺骗,其次僵尸机没有什么网络流量产生,最后僵尸机的ipid必须是递增的(win xp及以前windows机型)。
僵尸扫描的过程:
1 向僵尸机发送SYN/ACK数据包,僵尸机会返回一个RST数据包,记录下ipip为n。
2 向目标主机发送SYN数据包(原地址伪造成僵尸机)。
3.1 若目标主机端口开放,则向僵尸机发送SYN/ACK数据包。
3.2 僵尸机收到SYN/ACK数据包,则向目标主机发送RST数据包,此时僵尸机ipid为n+1.
3.3 攻击方向僵尸机发送SYN/ACK数据包,僵尸机返回一个RST数据包,此时ipid为n+2.
4.1 若目标主机端口关闭,则向僵尸机发送RST数据包,此时僵尸机不会产生任何数据包。
4.2 攻击方向僵尸机发送SYN/ACK数据包,僵尸机返回一个RST数据包,此时ipdi为n+1.
5. 通过攻击方从僵尸机接收到的两个RST数据包的ipid可以判断目标主机的目标端口是否开放。