一个开放的网络端口就是一条与计算机进行通信的信道,对网络端口的扫描可以得到目标计算机开放的服务程序、运行的系统版本信息,从而为下一步的入侵做好准备。
扫描工具
扫描工具是对目标主机的安全性弱点进行扫描检测的软件。根据使用的环境不同,可分为两种类型:网络漏洞扫描工具和主机漏洞扫描工具。
主机漏洞扫描工具是指在本机运行的扫描工具,以期检测本地系统存在的安全漏洞;网络漏洞扫描工具是指通过网络检测远程目标网络和主机系统所存在漏洞的扫描工具。而端口扫描则主要是对网络漏洞的扫描。
端口扫描器是黑客常用的工具,目前的扫描工具有很多种,例如Nmap、Netcat、X-port、PortScanner、Netscan tools、Winscan、WUPS、Fscan、LANguard Network Scanner等。
扫描原理
端口扫描大致可分为两种,即 TCP 扫描和 UDP 扫描,下面分别来介绍:
TCP 扫描
一个 TCP 报文段分为首部和数据两部分,TCP报文段的首部格式如下图所示。
TCP首部(不含选项字段)-
SYN 用来建立连接
-
ACK 为确认标志位,例如,当 SYN = 1、ACK = 0表示请求连接的数据包;当SYN = 1、ACK = 1 表示接受连接的数据包
-
FIN 表示发送端已经没有数据可传了,希望释放连接
-
RST位用于复位错误的连接,比如收到的一个数据分段不属于该主机的任何一个连接,则向远端计算机发送一个 RST = 1的复位数据包,拒绝连接请求
1. TCP SYN 扫描
本地主机向目标主机发送一个 SYN = 1 数据段,请求与主机建立连接。如果远端目标主机端口开放,则回应 SYN = 1、ACK = 1,此时本地主机发送 RST = 1 给目标主机,拒绝连接;如果远端目标主机端口未开放,则会回应 RST = 1 给本地主机。
由此可知,根据回应的数据段可判断目标主机的端口是否开放。由于 TCP SYN 扫描没有建立 TCP 正常连接,所以降低了被发现的可能,同时提高了扫描性能。
2. TCP FIN 扫描
本地主机向目标主机发送 FIN=1 报文段:如果远端目标主机端口开放,则丢弃此包,不回应;如果远端目标主机端口未开放,则返回一个RST包。
FIN扫描通过发送FIN的反馈判断远端目标主机的端口是否开放。由于这种扫描方法没有涉及TCP的正常连接,所以使扫描更隐秘,也称为秘密扫描。
这种方法通常适用于UNIX操作系统主机,但有的操作系统(如Windows NT)不管端口是否打开,都回复RST,这时这种方法就不适用了。
UDP ICMP 扫描
这种方法利用了 UDP 协议的通信特点:当向目标主机的一个未打开的UDP端口发送一个数据包时,会返回一个ICMP_PORT_UNREACHABLE错误;反之,将不会做出任何响应。
网友评论