《漏洞扫描概论和技术.docx》由会员分享,可在线阅读,更多相关《漏洞扫描概论和技术.docx(9页珍藏版)》请在第一文库网上搜索。
1、随着信息技术在社会生活中的应用日益广泛,人们对信息平安的重要性有了更深入刻的熟悉。作为信息流通与传输的主要媒介,网络的平安问题无疑是信息平安中不行或缺的一环。而作为信息最初的发送方、中间的传递方、最终的接收方,主机的平安问题也占有特别重要的地位。在系统维护人员看来,只有足够平安的网络和主机,才能最大可能地保证信息平安。相应的,黑客(攻击者)也会尽可能地查找网络和主机的漏洞,从而实施攻击来破坏信息平安。双方攻防的第一步,主要集中在对网络和主机的漏洞扫描上。网络扫描,是基于Intemet的、探测远端网络或主机信息的一种技术,也是保证系统和网络平安必不行少的一种手段。主机扫描,是指对计算机主机或者其
2、它网络设施进行平安性检测,以找出平安隐患和系统漏洞。总体而言,网络扫描和主机扫描都可归入漏洞扫描一类。漏洞扫描本质上是一把双刃剑:黑客采用它来查找对网络或系统发起攻击的途径,而系统管理员则采用它来有效防范黑客入侵。通过漏洞扫描,扫描者能够发觉远端网络或主机的配置信息、TCP/UDP端口的安排、供应的网络服务、服务器的具体信息等。主机漏洞扫描,主要通过以下两种方法来检查目标主机是否存在漏洞:1)在端口扫描后得知目标主机开启的端口以及端口上的网络服务,将这些相关信息与网络漏洞扫描系统供应的漏洞库进行匹配,查看是否有满足匹配条件的漏洞存在;2)通过模拟黑客的攻击手法,对目标主机系统进行攻击性的平安漏
3、洞扫描,如测试弱势口令等。若模拟攻击胜利,则表明目标主机系统存在平安漏洞。一、漏洞扫描技术平安扫描技术是一类重要的网络平安技术。平安扫描技术与防火墙、入侵检测系统相互协作,能够有效提高网络的平安性。通过对网络的扫描,网络管理员可以了解网络的平安配置和运行的应用服务,准时发觉平安漏洞,客观评估网络风险等级。网络管理员可以依据扫描的结果更正网络平安漏洞和系统中的错误配置,在黑客攻击前进行防范。假如说防火墙和网络监控系统是被动的防备手段,那么平安扫描就是一种主动的防范措施,可以有效避开黑客攻击行为,做到防患于未然。漏洞扫描可以划分为ping扫描、端口扫描、OS探测、脆弱点探测、防火墙扫描五种主要技术
4、,每种技术实现的目标和运用的原理各不相同。依据TCP/IP合同簇的结构,ping扫描工作在互联网络层:端口扫描、防火墙探测工作在传输层;OS探测、脆弱点探测工作在互联网络层、传输层、应用层。ping扫描确定目标主机的IP地址,端口扫描探测目标主机所开放的端口,然后基于端口扫描的结果,进行OS探测和脆弱点扫描。1.1Ping扫描ping扫描是指侦测主机IP地址的扫描。ping扫描的FI的,就是确认FI标主机的TCP/IP网络是否联通,即扫描的IP地址是否安排了主机。对没有任何预知信息的黑客而言,ping扫描是进行漏洞扫描及入侵的第一步;对已经了解网络整体IP划分的网络平安人员来讲,也可以借助pi
5、ng扫描,对主机的IP安排有一个精确的定位。大体上,ping扫描是基于ICMP合同的。其主要思想,就是构造一个ICMP包,发送给目标主机,从得到的响应来进行推断。依据构造TCMP包的不同,分为ECHO扫描和nonECHO扫描两种。1.1.1ECHO扫描向目标IP地址发送一个ICMPECHOREQUEST(ICMPtype8)的包,等待是否收至UICMPECHOREPLY(TCMPtype0)。假如收到了ICMPECHOREPLY,就表示目标IP上存在主机,否则就说明没有主机。值得留意的是,假如目标网络上的防火墙配置为阻挡ICMPECHO流量,ECHO扫描不能真实反映目标IP上是否存在主机。此外
6、,假如向广播地址发送ICMPECHOREQUEST,网络中的unix主机会响应当恳求,而windows主机不会生成响应,这也可以用来进行0S探测。1.1.2non-ECHO扫描向目的IP地址发送一个ICMPTIMESTAMPREQUEST(ICMPtype13),或ICMPADDRESSMASKREQUEST(ICMPtype17)的包,依据是否收到响应,可以确定目的主机是否存在。当目标网络上的防火墙配置为阻挡ICMPECHO流量时,则可以用non.ECHO扫描来进行主机探测。1. 2端口扫描端口扫描用来探测主机所开放的端口,比如23端口对应telnet,21对应ftp,80对应http。端口
7、扫描通常只做最简洁的端口联通性测试,不做进一步的数据分析,因此比较适合进行大范围的扫描:对指定IP地址进行某个端口值段的扫描,或者指定端口值对某个IP地址段进行扫描。这种方式判定服务是较早的一种方式,对于大范围评估是有肯定价值的,但其精度较低。例如使用nc这样的工具在80端口上监听,这样扫描时会以为80在开放,但实际上80并没有供应http服务,由于这种关系只是简洁对应,并没有去推断端口运行的合同,这就产生了误判,认为只要开放了80端口就是开放了http合同。但实际并非如此,这就是端口扫描技术在服务判定上的根本缺陷。依据端口扫描使用的合同,分为TCP扫描和UDP扫描。2. 2.1TCP扫描主机
8、间建立TCP连接分三步(也称三次握手):采用三次握手过程与目标主机建立完整或不完整的TCP连接。TCPconnect。扫描:tcp的报头里,有6个连接标记,分别是urg、ack、psh、rstsyn、fin。通过这些连接标记不同的组合方式,可以获得不同的返回报文。例如,发送一个syn置位的报文,假如syn置位瞄准的端口是开放的,syn置位的报文到达的端口开放的时候,他就会返回syn+ack,代表其能够供应相应的服务。我收到syn+ack后,返回给对方一个ack。这个过程就是闻名的三次握手。这种扫描的速度和精度都是令人满足的。Reverse-idcnt扫描:这种技术采用了Ident合同(RFC1
9、413),tcp端口113.许多主机都会运行的合同,用于鉴别TCP连接的用户。identd的操作原理是查找特定TCP/IP连接并返回拥有此连接的进程的用户名。它也可以返回主机的其他信息。但这种扫描方式只能在tcp全连接之后才有效,并且实际上许多主机都会关闭ident服务。Tcpsyn扫描:向目标主机的特定端l发送一个SYN包,假如端M没开放就不会返回syn+ack,这时会给你一个rst,停止建立连接。由于连接没有完全建立,所以称为半开放扫描。但由于synflood作为一种ddos攻击手段被大量采纳,因此许多防火墙都会对syn报文进行过滤,所以这种方法并不能总是有用。其他还有fin、NULL、X
10、mas等扫描方式。依据TCP连接的建立步豚,TCP扫描主要包含两种方式:(1)TCP全连接和半连接扫描全连接扫描通过三次握手,与目的主机建立TCP连接,目的主机的log文件中将纪录这次连接。而半连接扫描(也称TCPSYN扫描)并不完成TCP三次握手的全过程。扫描者发送SYN包开头三次握手,等待目的主机的响应。假如收至USYN/ACK包,则说明目标端口处于侦听状态,扫描者立刻发送RST包,中止三次握手。由于半连接扫描并没有建立TCP连接,目的主机的log文件中可能不会纪录此扫描。3. )TCP隐藏扫描依据TCP合同,处于关闭状态的端口,在收到探测包时会响应RST包,而处于侦听状态的端口则忽视此探
11、测包。依据探测包中各标志位设置的不同,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)
12、,而NULL扫描则关闭TCP包中的全部标志位。1.2.2UDP端口扫描由于现在防火墙设施的流行,tcp端口的管理状态越来越严格,不会轻易开放,并且通信监视严格。为了避开这种监视,达到评估的目的,就消失了隐秘扫描。这种扫描方式的特点是采用UDP端口关闭时返回的ICMP信息,不包含标准的TCP三次握手合同的任何部分,隐藏性好,但这种扫描使用的数据包在通过网络时简洁被丢弃从而产生错误的探测信息。但是,UDP扫描方式的缺陷很明显,速度慢、精度低。UDP的扫描方法比较单一,基础原理是:当你发送一个报文给udp端口,该端口是关闭状态时,端口会返回给一个ic信息,全部的判定都是基于这个原理。假如关闭的话,什
13、么信息都不发。Traceroute扫描:tracert向30000以上的高端口(一般认为,主机的30000以上高端口采用率特别低,任何主机都不会轻易开放这种高端口,默认都是关闭的)。假如对方端口关闭,会返回给icmp信息,依据这个来回时间,计算跳数、路径信息,了解延时状况。这是tracerote原理,也是从这个原理上演化出来udp扫描技术。使用udp扫描要留意的是1、udp状态、精度比较差,由于udp是不面对连接的,所以整个精度会比较低。2、udp扫描速度比较慢,tcp扫描开放1秒的延时,在udp里可能就需要2秒,这是由于不同操作系统在实现icmp合同的时候为了避开广播风暴都会有峰值速率的限制
14、(由于icmp信息本身并不是传输载荷信息,不会有人拿他去传输一些有价值信息。操作系统在实现的时候是不盼望icmp报文过多的。为了避开产生广播风暴,操作系统对icmp报文规定了峰值速率,不同操作系统的速率不同)采用udp作为扫描的基础合同,就会对精度、延时产生较大影响。当前在渗透测试过程中对于端口的扫描是特别敏捷的,06年的黑帽大会上,就有人采用了开发了工具探测网内哪台主机打开了80端口,这样的技术在当前的互联网上采用的特别普遍。1.30S探测0S探测有双重目的:一是探测目标主机的0S信息,二是探测供应服务的计算机程序的信息。比如OS探测的结果是:0S是WindowsXPsp3,服务器平台是II
15、S4.0。1.3.1二进制信息探测通过登录目标主机,从主机返回的banner中得知0S类型、版本等,这是最简洁的0S探测技术从图1可以看出,在telnet连上FTP服务器后,服务器返回的banner已经供应了server的信息,在执行ftp的syst命令后可得到更具体的信息。1.3.2HTTP响应分析在和目标主机建立HTTP连接后,可以分析服务器的响应包得出OS类型。比如响应包中可能包含如下信息:1.3.3栈指纹分析网络上的主机都会通过TCP/IP或类似的合同栈来互通互联。由于0S开发商不唯一,系统架构多样,甚至是软件版本的差异,都导致了合同栈具体实现上的不同。对错误包的响应,默认值等都可以作为区分OS的依据。可辨识的OS的种类,包括哪些操作系统,甚至小版本号。指纹技术有主动和被动两种。(1)主动栈指纹探测主动识别技术:采纳主动发包,采用多次的摸索,去一次一次筛选不同信息,比如依据ACK值推断,有些系统会发送回所确认的TCP分组的序列号,有些会发回序列号加lo还有一些操作系统会使用一些固定的tcp窗口。某些操作系统还会设置TP头的DF位来改善性能。这些都成为推断的依据。这种技术判定windows的精度比较差,只能够判定一个大致区间,很难判定出其精确版本,但是