NMAP由于功能强大、不断升级和免费的原因十分流行。它对网络的侦查十分有效是基于两个原因。首先,它具有非常灵活的TCP/IP堆栈指纹引擎,NMAP的制作人FYODOR不断升级该引擎是它能够尽可能多的进行猜测。NMAP可以准确地扫描服务器操作系统(包括Novell, UNIX, Linux, NT),路由器(包括CISCO,3COM和HP),还有一些拨号设备。其次,它可以穿透网络边缘的安全设备,例如防火墙。
NMAP穿透防火墙的一种方法是利用碎片扫描技术(fragment scans),你可以发送隐秘的FIN包(-sF),Xmas tree包(-sX)或NULL包(-sN)。这些选项允许你将TCP查询分割成片断从而绕过防火墙规则。这种策略对很多流行的防火墙产品都很有效。
当前NMAP只能运行在UNIX操作系统上。操作系统类型包括Linux的所有版本,Free BSD 2.2.6-30,HP/UX,和Solaris。在Linux的X-Windows上还提供图形界面。最好的掌握NMAP的方法是学习使用它。使用nmap -h命令可以显示帮助信息,当然,你也可以用man nmap命令查看它的使用手册。
共享扫描
你可以扫描网络中绝大多数的内容,包括正在使用的共享。这种扫描过程提供了重要的侦查和利用各种资源和文件的方法。
共享扫描软件
Ping Pro提供了允许审计人员扫描Windows网络共享的功能。它只能侦查出共享名称,但不会入侵共享。例如,Microsoft网络利用TCP139端口建立共享。更具侵略性的侦查软件有知名的RedButton,许多Internet站点都免费提供下载。
RedButton是一个很古老的程序,大多数的系统管理员和安全管理员都找到了防范它的方法。这个程序不仅可以侦查出共享名称还可以发现相应的密码。它还可以获得管理员的账号名称。
缺省配置和补丁级扫描
黑客和审计人员对系统的缺省配置很了解。你可以编制工具查找这些弱点。实际上,本课中讨论的许多企业级的侦查工具都是针对这些弱点进行工作的。安全专家还知道操作系统工作的细节,根据服务补丁和hot fix的数量进行升级。
使用Telnet
Telnet是远程登录系统进行管理的程序。缺省情况下telnet使用23端口。当然,你还可以利用Telnet客户端程序连接到其它端口。
例如,你可以Telnet至HTTP端口。在连接一段时间内若没有任何动作,服务器会因为无法识别这次连接而自动切断。但是你通常可以从HTTP服务器上得到一些信息。例如,可以得知服务厂商的信息,版本(如Apache Web Server 1.36或IIS 4.0)等等。
虽然信息不是很多,但你至少能从报错信息中推断出服务器类型。如左边图所示你与服务器连接被终止,但在Web服务器报错信息中仍可以看出HTTP服务器版本。你还可以用Telnet连接上系统再使用SYST命令,许多TCP/IP堆栈会泄漏一些重要的信息。
使用SNMP
简单网络管理协议(SNMP)允许你从网络主机上查询相关的数据。例如,你可以收集TCP/IP方面的信息,还有在路由器、工作站和其它网络组件上运行的服务情况。SNMP由网络管理系统(NMS)和代理Agent组成。NMS通常安装在一台工作站上,再将代理安装在任何需要接受管理和配置的主机上。
当前存在三个版本的SNMP。SNMPv1最普通但也最不安全。原因有两个,首先,它使用弱的校验机制。只是靠community name作验证,而community name只是很短的字符串。其次,SNMP用明文发送community name,易于被sniffer捕获。而且,许多网络管理员使用缺省的“public”作community name。任何黑客都会首先尝试用“public”来访问SNMP。
SetRequest命令
你还可以利用SNMP重新配置接口或服务。这包括设置路由跳计数,停止和启动服务,停止和启用接口等等。如果你使用SNMPv1而且黑客又得到community name的话,他就可以侦查和控制你的系统。SNMPv3包含了更复杂的加密和验证的机制。然而,许多网络管理员由于使用缺省的密码和设置,给黑客以可乘之机。当然,经过加密的SNMP密码仍然可以被捕获和暴力攻击。
SNMP软件
许多厂商出售SNMP管理软件,常见的SNMP软件有:
·HP的OpenView
·Windows NT Resource Kit中的SNMPUTIL
·各种各样的网络附加工具包,如Ping ProPack等
虽然象HP的OpenView程序是工业的标准,你还可以使用功能稍差的程序象Ping Pro来获取网络的情况。
TCP/IP 服务
大多数的SMTP和POP3服务仍然以明文方式发送密码,这增大了Man-in-the-middle攻击成功的可能性。而且,LDAP、FTP、SMTP,尤其是HTTP服务非常容易遭受缓冲区溢出的攻击。
附加的TCP/IP服务
LDAP服务容易引起问题,不仅因为该服务所泄漏的信息而且经常遭受缓冲区溢出的攻击。E-mail程序如Microsoft Outlook,Eudora和Netscape Communicator也包含LDAP客户端的软件。而且,象Ping Pro和NetScan等管理工具运行你进行更复杂的查询。TFTP的问题是没有验证机制。黑客喜欢对其进行拒绝服务攻击,对系统提出了严峻的考验。
像Finger和TFTP等简单TCP/IP服务所泄漏的信息容易被黑客利用进行社会工程和其它类型的攻击。LDAP,FTP和SMTP服务经常出现安全问题有很多原因。首先这些服务容易泄漏太多自己配置的信息。
Finger
Finger服务使你考验获取远程服务器上的用户信息。使用Finger,你可以得到:
·用户名
·服务器名
·E-mail账号
·用户当前是否在线
·用户登录时间
·用户的crond任务
企业级的审计工具
进行到这里你已经接触了一些审计人员使用的基本的工具。这些工具便于安装和使用。它们可以为你提供很多关于网络的信息,还可以帮助你对特定系统进行风险评估。前面讨论程序的缺点是它们只能单独进行简单的查询而不能同时对多个系统和服务实施侦查。一个好的审计人员需要综合使用这些方法使审计的侦查工作能够成功。企业级的审计程序用以其人之道还制其人之身的方式来对付黑客,通过对网络进行综合的攻击使你可以实时地检测到网络的漏洞,并加以改进。
绝大多数的网络探测器都支持TCP/IP,而且许多还支持其它协议包括IPX/SPX,NetBEUI和AppleTalk。你已经对侦查数据库有所了解,在这一部分,你将更多地接触如何配置和更新侦查数据库。你还将学习网络扫描器的一些特性。
通常,网络扫描器程序无法跨子网。当然你可以在每个子网中都安装一个。然而,有些扫描器(如WebTrends Security Analyzer Enterprise Edition和ISS Internet Scanner Enterprise Edition)是可以跨子网的。
在你用扫描器扫描网络之前,你必须先配置它使其能够识别网络上的主机。有时,扫描器可以自动识别,但其它时候你必须手动配置它。每个程序都有它自身的配置方法,但配置原则是相同的。所有的商业扫描器都支持TCP/IP。许多还支持象IPX/SPX,NetBEUI,AppleTalk,DECnet和其它协议。你应当根据你的网络中应用的协议情况来购买不同的版本。
许多版本的扫描器只支持特定的操作系统,因此你必须在购买前考虑到其使用的平台。以前,网络扫描器、探测器和入侵监测系统都是在UNIX系统下工作得更出色。但是随着Windows NT更加成熟,许多功能强大的产品也出现了。
扫描等级
大多数的企业级的扫描器允许你选择安全扫描的等级。一次轻级别的扫描通常会扫描众所周知的端口(从0到1023)和常见的安全漏洞,包括弱口令,低的补丁等级和额外的服务。如果你扫描一个小型的子网大概需要花费30分钟。中级和严格级别的扫描根据网络的速度和运行扫描程序的主机CPU的时钟速度快慢等因素通常会花费几天的时间。
定义严格级别的扫描策略会让扫描器对目标网络发起连续的攻击。如果你设置了规则让扫描器扫描所有的65,535个端口,还要检测口令强度以及细致地分析从管理账户到UNIX子系统的每项服务的话,工作量是相当大的。这种扫描不仅费时,而且会极大地加重网络的负担。个别主机将无法承受这种扫描。
配置文件和策略
在使用任何扫描器前,你必须首先定义配置文件,然后再实施策略。绝大多数的扫描程序事先都定义了一些配置和策略,但你可以根据实际需要对它们进行编辑和增加。需要注意的是要将策略和配置文件结合起来。
报告功能
企业级的扫描程序具有细致的报告功能。可以用很多种格式输出信息,包括:
· 简单的ASCII文本
· HTML字处理文本格式,如RTF,或一些专利格式,例如Microsoft Word(DOC)或Corel Word Perfect(WPD)。
· 电子表格形式,例如Microsoft Excel。
· 图形格式,包括幻灯片,例如Microsoft PowerPoint
报告风险等级
大多数的网络扫描器将风险分成低、中、高三个等级。你将接触到各种扫描器是如何汇报它们的扫描结果的。即使得出你的网络只有低的安全问题,你也不应该沾沾自喜。一名优秀的黑客可以从很小的缺陷入手给系统造成致命的破坏。