|
知识路径: > 网络安全 > 黑客攻击及预防方案 > 端口扫描 >
|
相关知识点:9个
|
|
|
|
端口扫描主要有经典的扫描器(全连接)及所谓的SYN(半连接)扫描器,此外还有间接扫描和秘密扫描等。
|
|
|
|
全连接扫描是TCP端口扫描的基础,现有的全连接扫描有TCP connect扫描和TCP反向ident扫描等。其中TCP connect扫描的实现原理如下所述:
|
|
|
扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。连接由系统调用connect开始。如果端口开放,则连接将建立成功;否则,若返回-1,则表示端口关闭。建立连接成功如下图(a)所示。
|
|
|
|
TCP connect扫描服务器端与客户端建立连接图
|
|
|
上图(a)中表明目标主机的一指定端口以ACK响应扫描主机的SYN/ACK连接请求,这一响应表明目标端口处于监听(打开)的状态。如果目标端口处于关闭状态,则目标主机会向扫描主机发送RST的响应,如上图(b)所示。
|
|
|
|
若端口扫描没有完成一个完整的TCP连接,在扫描主机和目标主机的一指定端口建立连接时候只完成了前两次握手,在第三步时,扫描主机中断了本次连接,使连接没有完全建立起来,这样的端口扫描称为半连接扫描,也称为间接扫描。现有的半连接扫描有TCP SYN扫描和IP ID头dumb扫描等。
|
|
|
SYN扫描的优点在于即使日志中对扫描有所记录,但是尝试进行连接的记录也要比全扫描少得多。缺点是在大部分操作系统下,发送主机需要构造适用于这种扫描的IP包,通常情况下,构造SYN数据包需要超级用户或者授权用户访问专门的系统调用。
|
|
|
|
这种扫描方法的思想一方面是关闭的端口会用适当的RST来回复FIN数据包;另一方面,打开的端口会忽略对FIN数据包的回复。这种技术可以避开一些防火墙和包过滤器的监视,保密性较好。相反FIN数据包可能会没有任何麻烦地通过。这种方法和系统的实现有一定的关系,使用时应区分操作系统的类型。
|
|
|
|
这种方法与上述的有所不同,不是直接发送TCP探测包,而是将IP数据包分成较小的IP段,将一个TCP头分成好几个数据包,从而通过过滤器而很难探测到。
|
|
|
|
这种方法使用的时UDP协议,由于协议很简单,打开的端口对扫描探测并不发送一个确认,而关闭的端口会返回一个ICMP_PORT_UNREACH错误。
|
|
|