端口扫描
攻击者在主机发现的基础之上,可以进一步获取主机信息以便进行网络攻击。
端口扫描技术能够使攻击者掌握主机上所有端口的工作状态,进而推断主机上开放了哪些网络服务,为更为高效、精确地进行网络攻击奠定基础。
端口用于标识主机上的网络服务。传输层:TCP和UDP。
熟知端口号:0-1023,固定的
应用程序 | 熟知端口号 |
---|
SSH | 22 | TELNET | 23 | SMTP | 25 | DNS | 53 | HTTP | 80 | POP3 | 110 | SNMP | 161 | SNMP(trap) | 162 | HTTPS | 443 | LDAP | 389 |
一般端口:1024-655535,随时分配给请求通信的客户进程。
端口扫描的基本原理:
向目标主机的所有或者需要扫描的特定端口发送特殊的数据包,若该端口号对应的网络服务对外提供该服务就会返回信息,扫描器通过分析其返回的信息判断目标主机端口的服务状态,发现特定主机提供了哪些服务,进而利用服务的漏洞对网络系统进行攻击。
根据使用协议来分,主要有三类端口扫描技术: TCP扫描; FTP代理扫描; UDP扫描。
TCP扫描
HTTP服务,FTP服务,SMTP服务。
TCP全连接扫描
实现TCP三次握手,实现的方法通常使使用操作系统提供的connect函数。在扫描主机上指定目的主机和目的端口,调用connect函数与相应端口进行TCP三次握手。 如果相应端口处于监听状态,则connect函数将成功,返回数值0;如果相应的端口处于关闭状态,connect函数将失败,函数返回SOCKET_ERROR信息。
优点:稳定可靠,对于端口状态的判定结果准确 缺点:扫描行为明显,失败请求和错误信息暴露在日志中。会记录成功的TCP连接,攻击者对端口号进行攻击,攻击成功后容易被溯源。
TCP SYN扫描
不建立完整的TCP连接,以免扫描行为暴露。 大部分系统都不会记录这种不完整的TCP连接,扫描活动不容易发现。 管理员权限构造TCP SYN数据包 “半开放”扫描,根据三次握手,可以看成在三次握手的第二阶段,客户端接收到服务端响应时已经能够确定端口的工作状态。 判断端口是否打开 客户端发送SYN=1的报文,如果服务端,发送SYN和ACK=1的报文,源主机在收到相应报文后,将发出RST=1的报文中断与目标主机建立连接。 如果被扫描的端口是关闭的,则会回复RST=1的报文,扫描主机依据响应便能确定对方端口处于关闭状态。
TCP FIN扫描
按照RFC793规定,主机端口接收到FIN标志位设置为1的报文时,如果端口处于关闭状态,应当回复RST标志位设置为1的报文复位连接;如果端口处于监听状态则忽略报文,不进行任何响应。 缺点: 扫描时间长:因为处于监听状态,不进行任何响应,必须等待超时,也存在数据丢失的情况,存在误报的情况; 并不是所有操作系统遵循RFC793规定,windows系统,不管端口是否开放,都会回应一个RST标志位设置为1的连接复位报文。 管理员权限构造FIN扫描报文
TCP NULL扫描和TCP Xmas 扫描
TCP NULL扫描,发送的扫描报文中所有标志位都被设置为0。 TCP Xmas,发送的扫描报文中FIN,URG,PUSH标志位被设置为1。
判断依据和TCP FIN扫描一样。
FTP代理扫描
对于大部分实际的FTP服务器而言,FTP代理连接使得FTP客户端能够控制FTP服务器向网络上的任何一台主机发送文件。 FTP代理扫描利用FTP代理连接选项来进行,通过FTP服务器扫描目标主机的TCP端口。 判断:处于监听状态,数据传输成功;否则,会收到数据连接无法建立应答。 使用PORT命令指定目标主机的端口号;LIST命令对对应端口号进行数据传输。 缺点:用于扫描的FTP服务器必须支持FTP代理连接选项。
UDP 扫描
目前对于UDP端口工作状态的判断,主要时基于这样一种通信特性:扫描主机向目标主机的UDP端口发送UDP数据包,如果目标端口处于监听状态,将不会做出任何响应;而如果目标端口处于关闭状态,将会返回ICMP_PORT_UNREACH错误。
端口扫描的隐蔽性策略
1.调整扫描的次序;—使扫描活动的随机性增强,有助于降低检测的概率。 2.减缓扫描速度----减缓了扫描的行为特征 3.对数据包中的一些字段进行随机化处理;–检测软件基于标志位固定发现扫描行为的 4.利用虚假的源地址;—防止溯源 5.采用分布式的方法进行扫描; 不同主机负责不同端口的检测;在时间上将扫描活动分隔开。
|