网络漏洞扫描技术目录1漏洞概述2网络扫描技术3常用的网络扫描工具01PARTONE漏洞概述漏洞概念漏洞也叫脆弱性,是指计算机系统在硬件、软件、协议的具体事项或系统安全策略上存在缺陷和不足。1990年,DennisLongley和MichaelShain在《TheDataandComputerSecurityDictionaryofStandard,concepts,andTerms》中对漏洞作出了如下定义:在计算机安全中,漏洞是指自动化系统安全过程、管理控制以及内部控制中的缺陷,漏洞能够被威胁利用,从而获得对信息的非授权访问或者破坏关键数据的处理。漏洞与网络安全漏洞的存在是网络攻击成功的必要条件之一,攻击者要成功入侵关键在于及早发现和利用目标网络系统的漏洞。漏洞对网络系统的安全威胁有:普通用户权限提升、获取本地管理员权限、获取远程管理员权限、本地拒绝服务、远程拒绝服务、服务器信息泄露、远程非授权文件访问、读取受限文件、欺骗等。漏洞的分类目前集中常见的漏洞分类方法:1)根据漏洞被攻击者利用的的方式,分为本地攻击漏洞和远程攻击漏洞。本地攻击漏洞的攻击者是本地合法用户或通过其他方式获得本地权限的非法用户;远程攻击漏洞的攻击者通过网络,对连接在网络上的远程主机进行攻击。2)根据漏洞所指的目标漏洞存在的位置,可分为操作系统、网络协议栈、非服务器程序、服务器程序、硬件、通信协议、口令恢复和其他类型的漏洞。漏洞的分类3)根据其对系统造成的潜在威胁以及被利用的可能性可将各种系统安全漏洞进行分级:高级别漏洞:大部分远程和本地管理员权限漏洞中级别漏洞:大部分普通用户权限、权限提升、读取受限文件、远程和本地拒绝服务漏洞低级别漏洞:大部分远程非授权文件存取、口令恢复、欺骗、信息泄露漏洞网络漏洞存在的原因网络安全漏洞是“不可避免”,这是由网络系统的高度复杂性所决定的。(1)软件或协议设计和实现的缺陷,如不对输入数据的合法性进行检查。(2)错误配置,如ftp服务器的匿名访问。(3)软件测试不完善,甚至缺乏安全测试。(4)安全意识薄弱,如选取简单口令。(5)管理人员的疏忽,如没有良好的安全策略及执行制度,重技术,轻管理。漏洞信息的发布漏洞发布是指向公众或用户公开漏洞信息,帮助人们采取措施及时堵住漏洞,不让攻击者有机可乘,从而提高系统的安全性,减少漏洞带来的危害和损失。漏洞发布一般由软、硬件开发商、安全组织、黑客或用户来进行。漏洞发布方式主要有三种:网站、电子邮件以及安全论坛。网络管理员通过访问漏洞发布网站和安全论坛或订阅漏洞发布电子邮件就能及时获取漏洞信息。漏洞信息一般包括:漏洞编号、发布日期、安全危害级别、漏洞名称、漏洞影响平台、漏洞解决建议等。例如,如图1所示,国家计算机网络应急技术处理协调中心于2005年2月10日发布微软的漏洞信息。漏洞信息的发布1.CVE通用漏洞和曝光(CVE,CommonVulnerabilitiesandExposures)是Mitre公司开发的项目,致力于漏洞名称的标准化工作,提供正式的通用漏洞命名标准服务。网址是.CERT是ComputerEmerResponseTeam的缩写,是世界上第一个计算机安全应急响应组织,该组织发布漏洞信息,提供漏洞数据库,可以通过名字、ID号、CVE名字、公布日期、更新日期、严重性等方法查询漏洞信息。漏洞记录包括漏洞描述、影响、解决方案、受影响系统等信息。网址是.BugTrap漏洞数据库是由SecurityFocus公司开发并维护的漏洞信息库,提供5种检索方式:软件提供商、标题、关键字、BugTrapID和CVEID。网址是.CNCERT/CCCNCERT/CC是国家计算机网络应急技术处理协调中心的简称,负责协调处理我国公共互联网的安全紧急事件,为我国的公共互联网、主要网络信息应用系统以及关键部门提供计算机网络安全的监测、预警、应急、防范等安全服务和技术支持,及时收集、核实、汇总、发布有关互联网安全的权威性信息。网络地址是.CCERTCCERT是中国教育和科研计算机网紧急响应组的简称,对中国教育和科研计算机网及会员单位的网络安全事件提供响应或技术支持服务,也对社会其他网络用户提供与安全事件响应相关的咨询服务。网址是网络扫描技术网络扫描一次完整的网络扫描包括三个阶段:发现目标搜集信息漏洞检测发现目标在这一阶段使用的技术通常称为Ping扫描(PingSweep),包括ICMP扫描、广播ICMP、非回显ICMP、TCP扫描、UDP扫描。ICMP扫描作为IP协议一个组成部分,ICMP用来传递差错报文和其他需要注意的信息。日常使用最多的是用户的Ping。如果发送者接收到来自目标的ICMP回显应答,就能知道目标目前处于活动状态,否则可以初步判断主机不可达或发送的包被对方的设备过滤掉。使用这种方法轮询多个主机的方式称为ICMP扫描。优点:简单、系统支持。缺点:很容易被防火墙限制发现目标广播ICMP与ICMP扫描的区别相同点:广播ICMP也是利用了ICMP回显请求和ICMP回显应答这两种报文。不同点:广播ICMP只需要向目标网络的网络地址和/或广播地址发送一两个回显请求,就能够收到目标网络中所有存活主机的ICMP回显应答。优点:简单;速度比ICMP扫射快。缺点:这种扫描方式容易引起广播风暴,如果有很多机器回应的话,甚至会导致网络出现拒绝服务(Dos)现象。发现目标非回显ICMP1)ICMP时间戳请求允许系统向另一个系统查询当前的时间.2)ICMP地址掩码请求用于无盘系统引导过程中获得自己的子网掩码.3)对于ICMP地址掩码请求报文而言,虽然RFC1122规定,除非是地址掩码的授权代理,否则一个系统不能发送地址掩码应答.优点:不受目标阻止ICMP回显请求的影响缺点:由于不同OS的实现,某些类型的ICMP请求会受限发现目标TCP扫射发送TCPSYN或TCPACK到目标主机优点:最有效的目标发现方法缺点:对入侵者而言,防火墙可能影响这种方法的可靠性。UDP扫射发送UDP数据报到目标网络的广播地址或主机优点:不受目标阻止ICMP回显请求的影响缺点:可靠性低,路由器和防火墙都有可能丢弃UDP数据报。搜集信息获得目标主机的操作系统信息和开放的服务信息。用到的主要技术有:端口扫描服务识别操作系统探测。端口扫描端口扫描取得目标主机开放的端口和服务信息,从而为“漏洞检测”作准备。进行端口扫描,可以快速获得目标主机开设的服务。优点:1)不需要任何特殊权限,系统中的任何用户都有权利使用这个调用。2)可以同时打开多个套接字,从而加速扫描,使用非阻塞I/O还允许设置一个低的时间用尽周期,同时观察多个套接字。缺点:1)端口扫描容易被过滤或记录。2)对于安全管理员而言,使用该方法速度较慢。端口扫描类型※(1)TCPconnect()扫描TCPConnect()扫描是最基本的TCP扫描方式。Connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听,Connect()就会成功返回,否则这个端口是不可达的。※(2)TCPSYN扫描向目标主机发送一个SYN数据段,如果目标主机的回应报文中SYN=1,ACK=1,则说明该端口是活动的,那么接着再发一个RST给目标主机,拒绝建立连接又称“半开扫描”。端口扫描类型※(3)TCPFIN扫描在TCP报文结构中,FIN段负责表示发送端已经没有数据要传输了,希望释放连接。用户会发送一个FIN=1的报文到一个关闭的端口时,该报文会被丢掉,并返回一个RST报文。※(4)TCP空扫描向目标发送一个所有标记位都置0的报文,即关掉所有的标志,如果目标系统所有端口关闭,则返回RST包,如果端口打开则不会返回任何信息端口扫描类型※(5)TCPXMAS扫描向目标主机发送一个FIN+URG+PUSH分组,根据RFC793,如果目标主机的相应端口是关闭的,那么应该返回一个RST标志。※(6)TCPACKTCPACK并不能确定目标机器开放了哪些端口,但是可以用来试探目标机器上安装的防撞的防火墙的过滤规则。可以确定防火墙是简单的包过滤还是状态检测机制服务识别目前两种服务的识别方法如下:1)对于主动提供旗标信息或者握手信息的服务可以使用Netcat尝试与目标的该端口建立连接,根据返回的信息作出初步判断2)另外还有一类服务需要客户端首先发送一个命令,然后再作出响应。要判断这样的服务,必须首先猜测服务类型,然后模仿客户端发送命令,等待服务器的回应。服务识别服务识别的一般步骤:服务识别操作系统探测目前用于探测操作系统的方法主要可以分为两类:利用系统旗标信息(最原始的探测方法)利用TCP/IP堆栈指纹(识别操作系统)服务识别操作系统探测目前主要的网络堆栈特征探测技术有ICMP响应分析、TCP报文响应分析、TCP报文延时分析和被动特征探测四类技术:(1)ICMP响应分析技术ICMP响应分析技术是向目标发送UDP或者ICMP报文,然后分析目标响应的ICMP报文的内容,根据不同的响应特征来判断操作系统。服务识别操作系统探测(2)TCP响应分析通过不同操作系统对特定TCP报文的不同响应来区分操作系统。a、FIN探测;b、伪标记位探测;c、TCPISN取样;d、DF位监视;e、ACK值;f、TCP选项。服务识别(3)TCP报文延时分析在三次握手中,对目标机器不发送SYN/ACK报文确认。迫使其重传,通过这个时间间隔来分析固有缺点:这种探测方式需要花比nmap或Xprobe更多的时间。(4)被动特征探测技术被动的协议栈指纹探测和主动的协议栈指纹探测很相似,不同之处在于这种方法不主动向目标系统发送分组,而是通过嗅探目标网络的通信,抓取从远程主机上发送的数据报,获取包括TTL、窗口大小、DF位、服务类型等在内的数据报属性,构成目标系统的指纹。漏洞检测漏洞检测就是对重要计算机信息系统进行检查,发现其中可被黑客利用的漏洞。该技术通常采用两种策略,即被动式策略和主动式策略。被动式策略是基于主机的检测,对系统中不合适的设置、脆弱的口令以及其他同安全规则相抵触的对象进行检查;主动式策略是基于网络的检测,通过执行一些脚本文件对系统进行攻击,并记录它的反应,从而发现其中的漏洞。漏洞检测漏洞检测的主要方法:直接测试(Test)、推断(Inference)和带凭证的测试(TestwithCredentials)直接测试直接测试是指利用漏洞特点发现系统漏洞的方法。根据渗透方法的不同,可以将测试分为两种不同的类型:可以直接观察到的测试和只能间接观察到的测试。直接测试的方法具有以下六大特点:1)通常用于对Web服务器漏洞、拒绝服务(DoS)漏洞进行检测。2)能够准确地判断系统是否存在特定漏洞。3)对于渗透所需步骤较多的漏洞速度较慢。4)攻击性较强,可能对存在漏洞的系统造成破坏。5)对于DoS漏洞,测试方法会造成系统崩溃。6)不是所有漏洞的信息都能通过测试方法获得。漏洞检测推断推断是指不利用系统漏洞而判断漏洞是否存在的方法。它并不直接渗透漏洞,只是间接地寻找漏洞存在的证据。采用推断方法的检测手段主要有版本检查(VersionCheck)、程序行为分析、操作系统堆栈指纹分析和时序分析等。1)版本检查是推断方法中最简单的一个应用。2)行为分析在需要推翻某个“风险假设”时非常有用。漏洞检测带凭证的测试凭证是指访问服务所需要的用户名或者密码,包括UNIX的登录权限和从网络调用WindowsNT的API的能力。带凭证的测试定义是:除了目标主机IP地址以外,直接测试和推断两种方法都不需要其他任何信息。漏洞检测带凭证的测试凭证是指访问服务所需要的用户名或者密码,包括UNIX的登录权限和从网络调用WindowsNT的API的能力。带凭证的测试定义是:除了目标主机IP地