主要包括端口扫描,操作系统探测和安全漏洞探测。
(1)端口扫描技术
1.端口扫描原理
向目标主机的TCP/IP端口发送探测数据包,并记录目标主机的响应。通过分析响应来判断端口是打开还是关闭等状态信息。
2.TCP端口扫描技术
TCP端口扫描技术主要有全连接扫描技术,半连接(SYN)扫描技术,间接扫描技术和秘密扫描技术等。
l 全连接扫描技术
全连接扫描是TCP端口扫描的基础,现有的全连接扫描主要是TCP connect()扫描。
工作方式为对目标主机上感兴趣的端口进行connect()连接试探,如果该端口被监听,则连接成功,否则表示该端口未开放或无法到达。
优点:用户无须特殊权限,且探测结果最为准确。
缺点:容易被目标主机察觉并记录下来。
l 半连接(SYN)端口扫描技术
半连接(SYN)端口扫描也称为“半开”式的扫描,它不建立完整的TCP连接,而是只发送一个SYN信息包。
一个SYN ACK的响应包表示目标端口是开放监听的,而一个RST(复位)的响应包则表示目标端口未被监听。若收到SYN ACK应答包,系统将随即发送一个RST包来中断此连接。
优点:即使日志中对扫描有所记录,但是尝试进行连接的记录也要比全连接扫描少得多。
缺点:大部分操作系统下,发送主机需要构造适用于这种扫描的IP包。
l UDP端口扫描技术
用来确定在目标主机上有哪些UDP端口是开放的。
工作原理是发送0字节的UDP信息包到目标计算机的各个端口,若收到一个ICMP端口不可达的回应,则表示该UDP端口是关闭的,否则该端口就是开放的。
(2)操作系统探测技术
操作系统探测技术主要包括:获取标识信息探测技术,基于TCP/IP协议栈的操作系统指纹探测技术和ICMP响应分析探测技术。
1.获取标识信息探测技术
获取标识信息探测技术主要是指借助操作系统本身提供的命令和程序进行操作系统类型探测的技术,例如使用telnet命令可以得到主机操作系统的类型。
2.基于TCP/IP协议栈的操作系统指纹探测技术
操作系统指纹是指能够通过网络连接获取的唯一标识某一操作系统的类型及其版本号的一组特征信息。
操作系统指纹探测步骤如下:
形成一个涵盖大部分常用操作系统的较为详细全面的操作系统指纹特征库。
向目标发送多种特意构造的信息包,检测其是否响应这些信息包,以及是如何响应这些信息包的。
把从特定目标返回的特征信息与指纹特征库进行匹配,从而判断出目标计算机的操作系统类型及其版本号信息。
3.ICMP响应分析探测技术
该技术通过发送UDP或ICMP的请求报文,然后分析各种ICMP应答信息来判断操作系统的类型及其版本信息。
本质上也是一种基于TCP/IP协议栈的操作系统指纹探测技术。
(3)安全漏洞探测技术
漏洞探测技术可以分为信息型漏洞探测和攻击型漏洞探测两种。按照漏洞探测的技术特征,又可以划分为基于应用的探测技术,基于主机的探测技术,基于目标的探测技术和基于网络的探测技术等。
1.信息型漏洞探测
顺序扫描技术:可以将收集到的漏洞和信息用于另一个扫描过程以进行更深层次的扫描——即以并行方式收集漏洞信息,然后在多个组件之间共享这些信息。此扫描方式可以实现边扫描边学习的扫描过程,可进行更为彻底的探测,更为深入地发现网络中的漏洞,。
多重服务检测技术:即不按照RFC所指定的端口号来区分目标主机所运行的服务,而是按照服务本身的真实响应来识别服务类型。
2.攻击型漏洞探测
模拟攻击是最直接的漏洞探测技术,其探测结果的准确率也是最高的。该探测技术的主要思想是模拟网络入侵的一般过程,对目标系统进行无恶意攻击尝试,若攻击成功则表明相应的安全漏洞必然存在。
模拟攻击主要通过专用攻击脚本语言,通用程序设计语言和成形的攻击工具来进行。
3.漏洞探测技术特征分类
l 基于应用的检测技术
采用被动的,非破坏性的方法检查应用软件包的设置,发现安全漏洞。
l 基于主机的检测技术
采用被动的,非破坏性的方法对系统进行检测。通常,它涉及到系统的内核,文件的属性和操作系统的补丁等问题。
此方式可非常准确地定位系统的问题,发现系统的漏洞。
缺点:与平台相关,升级复杂。
l 基于目标的漏洞检测技术
采用被动的,非破坏性的方法检查系统属性和文件属性,如数据库,注册号等。
这种技术的实现是运行在一个闭环上,不断地处理文件,系统目标及系统目标属性,然后产生检验数,把这些检验数同原来地检验数相比较,一旦发现改变就通知管理员。
l 基于网络的检测技术
采用积极的,非破坏性的方法来检验系统是否有可能被攻击崩溃。
利用一系列的脚本模拟对系统进行攻击的行为,然后对结果进行分析。还针对已知的网络漏洞进行检验。
此技术可以发现一系列平台的漏洞,容易安装,但是可能会影响网络性能。