网络扫描技术简析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012.2

10 网络扫描技术简析

范海峰

南海舰队指挥所 广东 524001

摘要:作为一种基于攻击检测的主动性网络安全防御技术,安全扫描技术一直是信息网络安全防护的重要研究方向之一,本文介绍了安全扫描的概念,重点分析了网络安全扫描所涉及的各种技术的原理,并对各种技术的优缺点进行了探讨。

关键词:安全扫描;技术原理

0 前言

近年来,受益于信息网络技术高速的发展,全球信息化程度越来越高。随着各类信息网络的不断延伸和普及,来自网络的安全威胁也在呈指数级增长,在各种政治、军事、经济利益的驱使下,各类网络攻击层出不穷,网络攻击手段也不断复杂化、多样化,也更具有针对性,网络安全形势越加严峻。从各类网络安全事件中我们不难看出,信息系统网络和主机自身存在的错误安全配置和系统漏洞使网络攻击和入侵的成功率大大提高。为了能做到先敌发现,防患于未然,信息网络用户应该更加重视对网络扫描技术的研究和对网络扫描工具的应用。

1 网络扫描技术概述

网络扫描,作为信息系统安全防护的手段使用,是采用模拟黑客攻击方式对远程或本地系统的安全脆弱程度进行检测和评估的一种安全技术,基本原理是使用一系列的脚本,模拟对系统进行攻击的行为,并对结果进行分析,以此了解网络的安全配置和运行的应用服务,及时发现安全漏洞,客观评估网络风险等级,指导网络管理员根据扫描的结果及时更正网络安全漏洞和系统中的错误配置,抢在黑客攻击发起前进行防范。扫描技术在发挥着极为有效的主动防御功能的同时,也被黑客用来作为网络攻击的常用手段。因而,熟练掌握网络扫描的技术原理和实现方式,就可以知己知彼,在网络攻防中拥有更大主动权。

网络扫描技术的分类方法很多,按照一次完整的扫描过程,可以把扫描技术大体分为三类:一是扫描目标,发现目标存活技术,二是收集系统相关信息技术,包括操作系统类

型、所开放服务等等,三是根据收集到的信息判断目标系统是否存在漏洞,或者进行模拟攻击进一步检测。

2 常用网络扫描技术 2.1 目标发现技术

这种技术也被称为PING 扫射,其目的是为了发现目标主机或网络是否存活,采用的主要方法就是通过发送各种类型的ICMP 或者TCP 、UDP 请求报文,通过报文发送结果判断目标是否存活。几种主要的方式包括ICMP 广播、ICMP 扫射、ICMP 非回显、TCP 和UDP 扫射。ICMP 广播速度快但不能发现Windows 系统主机,ICMP 扫射使用简单,但速度较慢。与ICMP 协议的探测相比,TCP 扫射就要更加有效,它利用著名的“三次握手”方式进行扫描探测,在握手的过程中向目标发送SYN 报文,无论目标主机是回应SYN/ACK 报文或者RST 报文,都可以判断目标主机存活,是现在最为有效的目标发现方法。当然,现在的部分防火墙对TCP 扫射也有防御功能,能够伪造RST 报文,以假乱真,给扫描者造成目标主机存活的假象。

2.2 目标信息收集技术

在确定有哪些目标存活的基础上,就要进行目标信息的收集工作,这其中包括目标主机的端口开放信息、操作系统类型信息以及开放的服务。所利用的技术主要有端口扫描技术、操作系统判别技术和系统服务识别技术。

2.2.1 端口扫描技术

端口扫描主要可分为全连接扫描、半连接扫描、秘密扫描、欺骗扫描等。

2012.2

11

2.2.1.1 TCP connect 扫描

这是最基本的TCP 扫描方法,也成为“全连接扫描”,原理是使用操作系统提供的connect()系统调用来与目标主机的特定TCP 端口进行连接。如果目标端口处于监听状态,connect()就可以连接成功;若该端口没有开放,则会提示连接失败。优点是,不需要任何特殊权限,系统中任何用户都可以调用connect()函数。而且扫描速度快。缺点是容易被安防软件发觉并过滤掉,而且在目标主机的日志文件中会产生一系列的有关该服务连接建立并马上断开的错误信息。

2.2.1.2 TCP SYN 扫描

TCP SYN 扫描技术也称为“半连接的扫描”TCP SYN 扫描发送一个SYN 数据包,若返回SYN/ACK 数据包则表示目标端口处于监听状态,若返回RST 数据包则表示该端口没有开放。如果收到SYN/ACK 数据包,则扫描程序再发送一个RST 数据包来终止该连接过程。这种方法的优点是比较隐蔽,因为它不需要建立一个完整的TCP 连接,即使日志中对扫描有所记录,但是尝试进行连接的记录也要比全扫描少得多。缺点是在大部分操作系统下,发送主机需要对扫描所使用IP 包进行构造,比较麻烦,而且构造SYN 数据包需要超级用户或者授权用户来访问专门的系统调用。

2.2.1.3 TCP FIN 扫描

SYN 扫描虽然比较隐蔽,但有时会受到一些防火墙和包过滤监视系统的限制接收SYN 的端口,在安防系统中留下记录。这时,TCP FIN 扫描就可以派上用场了。数据包可能会没有任何麻烦的通过。TCP FIN 扫描方法的原理是没有开放的端口会对FIN 数据包给出RST 应答,开放的端口会对FIN 数据包直接忽略,不予应答。这种方法与目标系统的类型有关,有的系统不管端口是否开放,都回复RST ,这时,该扫描方法就用来区分目标系统是UNIX 还是Windows 系统了。

2.2.1.4 欺骗扫描

欺骗扫描是为了增强扫描的隐蔽性,利用已攻陷或存在可利用漏洞的第三方作为攻击跳板,进行扫描。例如,我们经常使用的FTP 协议支持代理(proxy)FTP 连接,扫描者通过FTP 协议解释器在源主机和目标主机之间建立控制通信连接,请求协议解释器激活一个有效的数据传输进程来给其他主机发送信息。这样,扫描者就可以用代理服务技术来扫描代理服务器所在网段主机的TCP 端口。利用这种方法,就可

以绕过防火墙,利用防火墙内部的一个FTP 服务器进行端口扫描。优点是很难被跟踪,能穿过防火墙;其缺点是速度很慢。

2.2.1.5 UDP 扫描

随着网络用户安全意识的不断增强和防火墙设备使用的日益广泛,TCP 端口被管理的越来越严,不会被轻易开放,即使开放也会进行严格的数据监视。为了避免这种监视,达到扫描目的,可以采用UDP 扫描。这种扫描方式的特点隐蔽性好,但所使用的数据包在通过网络时容易被丢弃,从而产生错误的探测信息。

2.2.2 操作系统及服务检测技术 2.2.2.1 操作系统检测技术

每个操作系统,甚至每个内核修订版本在TCP/IP 栈方面都存在微小的差别,这些差别使相对应的数据包的响应也不相同。好的网络扫描工具能够提供响应列表,把收到的响应与列表中的响应进行对比,如果能与已知的某种操作系统响应匹配,就可以识别出目标主机所运行的操作系统的类型。对于网络入侵来说,能够了解目标的操作系统的类型是非常重要的,可以由此明确使用何种漏洞攻击以及掌握目标系统存在的弱点。操作系统检测技术主要有主动识别和被动识别两种。

主动识别:主动发包,多次的试探,筛选不同信息,例如根据返回的ACK 值判断,有些系统会返回所确认的TCP 分组的序列号,有些则返回序列号加1。某些操作系统会使用一些固定的TCP 窗口或设置IP 头的DF 位来改善性能,这些都是判断对应操作系统的依据。主动识别技术对Windows 的判定精度比较差,只能够判定大致范围,很难判定出其精确版本,但是对UNIX 、CISCO 网络设备时比较精确,有时甚至可以判定出版本小号。但是目标主机与源主机之间跳数越多,精度就越差。这主要是因为数据包里的很多特征值在传输过程中都已经被修改或模糊化。现在普遍使用ICMP 识别技术,就是主动识别技术的一种,其优势是只需要通过ICMP ,发送UDP 包给关闭的端口,根据ICMP 回应的TOS 、TTL 值、校验和等信息,通过这些信息以树状的形式去过滤,最终精确锁定。例如TTL 值,当你发送icmp 的echo 请求,对方回应的ttl 值是有一定规律可循的,一般是4个数值,32(win95,惟一值为32的操作系统),64,128(windows 家族,只有win95例外),256。64和256比较难以分辨,大多数的unix 和linux 都可能是。代表性扫描工具Xprobe 。

被动识别:被动监测网络数据报文,从而确定所用的操

相关文档
最新文档