漏洞扫描原理

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 

posted @ 2021-01-20 15:30  Res0lve  阅读(4123)  评论(0编辑  收藏  举报