漏洞扫描原理
1、引言
网络扫描,对计算机主机和网络设备进行安全性检查,找出隐患和系统漏洞。
漏洞扫描本质上是双刃剑,黑客利用它寻找对网络或系统发起攻击的途径,系统管理员利用他来有效防范黑客入侵。
通过扫描,可发现远程网络或主机配置信息、TCP/UDP分配端口,提供服务、服务信息等
2、漏扫原理
可以划分为ping扫描、端口扫描、OS探测、脆弱点探测、防火墙扫描五种主要技术
PING扫描主要工作在互联网络层、
端口扫描、防火墙探测工作在传输层、
脆弱点探测工作在互联网络层、传输层、应用层、
ping扫描目标主机IP地址、端口扫描探测目标主机所开放端口,基于端口,进行OS探测和脆弱点扫描
2.1PING扫描
Ping扫描侦测主机IP地址的扫描,目的: 确定目标主机的TCP/IP网络是否联通,即扫描的地址是否分配了主机
对没有任何预知信息黑客,来说这是漏扫及入侵的第一步,
对已了解网络整体IP网络安全人员来说,借助ping扫描,对主机的IP分配有一个精确的定位
大体上,ping扫描是基于ICMP协议的。其主要思想,就是构造一个ICMP包,发送给目标主机,从得到的响应来进行判断。根据构造ICMP包的不同,分为ECH0扫描和non—ECHO扫描两种。
2.1.1ECHO扫描
2.1.2non-ECH0扫描
2.2端口扫描
探测主机所开放的端口
端口扫描通常只做最简单的端口联通性测试,不做进一步的数据分析,因此比较适合进行大范围的扫描
大范围的扫描:对指定 IP地址进行某个端口值段的扫描、或者指定端口值对某个IP地址段进行扫描。
根据端口扫描使用的协议,分为TCP扫描和UDP扫描。
2.2.1 TCP扫描
主机间建立TCP连接分三步(也称三次握手):
(1)请求端发送一个SYN包,指明打算连接的目的端口。
(2)观察目的端返回的包:
返回SYN/ACK包,说明目的端口处于侦听状态;
返回RST/ACK包,说明目的端口没有侦听,连接重置。
(3)若返回SYN/ACK包,则请求端向目的端口发送ACK包完成3次握手,TCP连接建立。
根据TCP连接的建立步骤,TCP扫描主要包含两种方式:
(1)TCP全连接和半连接扫描
全连接扫描通过三次握手,与目的主机建立TCP连接,目的主机的log文件中将记录这次连接。而半连接扫描(也称TCP SYN扫描)并不完成TCP三次握手的全过程。扫描者发送SYN包开始三次握手,等待目的主机的响应。如果收到SYN/ACK包,则说明目标端口处于侦听状态,扫描者马上发送RST包,中止三次握手。因为半连接扫描并没有建立TCP连接,目的主机的log文件中可能不会记录此扫描。
(2)TCP隐蔽扫描
根据TCP协议,处于关闭状态的端口,在收到探测包时会响应RST包,而处于侦听状态的端口则忽略此探测包。根据探测包中各标志位设置的不同,TCP隐蔽扫描又分为SYN/ACK扫描、FIN扫描、XMAS(圣诞树)扫描和NULL扫描四种。
SYN/ACK扫描和FIN扫描均绕过TCP三次握手过程的第一步,直接给目的端口发送SYN/ACK包或者FIN包。因为TCP是基于连接的协议,目标主机认为发送方在第一步中应该发送的SYN包没有送出,从而定义这次连接过程错误,会发送一个RST包以重置连接。而这正是扫描者需要的结果— 只要有响应,就说明目标系统存在,且目标端口处于关闭状态。
XMAS扫描和NULL扫描:这两类扫描正好相反,XMAS扫描设置TCP包中所有标志位(URG、ACK、RST、PSH、SYN、FIN),而NULL扫描则关闭TCP包中的所有标志位。
2.2.2 UDP端口扫描
UDP协议是数据包协议,为了要发现正在服务的UDP端口,通常的扫描方式是构造一个内容为空的UDP数据包送往目的端口。若目的端口上有服务正在等待,则目的端口返回错误的消息;若目的端口处于关闭状态,则目的主机返回ICMP端口不可达消息。因为UDP端口扫描软件要计算传输中丢包的数量,所以UDP端口扫描的速度很慢。
2.3 0S探测
OS探测有双重目的:一是探测目标主机的0S信息,二是探测提供服务的计算机程序的信息。
比如OS探测的结果是:OS是Windows XP sp3,服务器平台是IIS 4.0。
2.3.1二进制信息探测
通过登录目标主机,从主机返回的banner中得知OS类型、版本等,这是最简单的0S探测技术。
2.3.2 HTTP响应分析
在和目标主机建立HTTP连接后,可以分析服务器的响应包得出OS类型。比如响应包中可能包含如下信息:
2.4脆弱点扫描
从对黑客攻击行为的分析和脆弱点的分类,绝大多数扫描都是针对特定操作系统中特定的网络服务来进行,即针对主机上的特定端口。
脆弱点扫描使用的技术主要有基于脆弱点数据库和基于插件两种。
2.4.1基于脆弱点数据库的扫描
首先构造扫描的环境模型,对系统中可能存在的脆弱点、过往黑客攻击案例和系统管理员的安全配置进行建模与分析。其次基于分析的结果,生成一套标准的脆弱点数据库及匹配模式。最后由程序基于脆弱点数据库及匹配模式自动进行扫描工作。脆弱点扫描的准确性取决于脆弱点数据库的完整性及有效性。
2.4.2基于插件的扫描
插件是由脚本语言编写的子程序模块,扫描程序可以通过调用插件来执行扫描。添加新的功能插件可以使扫描程序增加新的功能,或者增加可扫描脆弱点的类型与数量。也可以升级插件来更新脆弱点的特征信息,从而得到更为准确的结果。插件技术使脆弱点扫描软件的升级维护变得相对简单,而专用脚本语言的使用也简化了编写新插件的编程工作,使弱点扫描软件具有很强的扩展性。
2.5防火墙规则探测
采用类似于traceroute的IP数据包分析法,检测能否给位于过滤设备后的主机发送一个特定的包,目的是便于漏洞扫描后的入侵或下次扫描的顺利进行。通过这种扫描,可以探测防火墙上打开或允许通过的端口,并且探测防火墙规则中是否允许带控制信息的包通过,更进一步,可以探测到位于数据包过滤设备后的路由器。
原文链接:http://www.360doc.com/content/17/0706/13/37475013_669308583.shtml