如你先前所知,***和安全审计人员采取的第一步都是侦查网络。在本讲中,你将接触一些网络侦查的工具和方法。

  安全扫描
  安全扫描以各种各样的方式进行。你将利用Ping和端口扫描程序来侦查网络,你当然也可以使用客户端/服务器程序,如Telnet和SNMP等,来侦查网络泄漏的有用信息。你应当利用一些工具来了解网络。有些工具很简单,便于安装和使用。有时,审计人员和***利用程序语言如Perl, C,C++和Java自己编制一些工具,这是因为他们找不到现成的针对某种漏洞的工具。
  另外一些工具功能更全面,但是在使用前需要认真地配置。专门从事网络管理和安全的公司出售这些工具。你将在本课中学习使用这些工具。好的网络级和主机级扫描器会试图监听和隔离进出网络和主机的所有会话包。在学习这些“Hacker-in-a-box”的解决方案前,你应当先接触一些当前***常常使用的技巧。
  Whois 命令
  Whois〔类似于finger〕是一种internet的目录服务,whois 提供了在Internet上一台主机或某个域的所有者的信息,如管理员的姓名、通信地址、电话号码和Email地址等信息,这些信息是在官方网站whois server上注册的,如保存在InterNIC的数据库内。Whois命令通常是安全审计人员了解网络情况的开始。一旦你得到了Whois记录,从查询的结果还可得知primary和secondary域名服务器的信息。
  nslookup
  使用DNS的排错工具nslookup,你可以利用从whois查询到的信息侦查更多的网络情况。例如,使用nslookup命令把你的主机伪装成secondary DNS服务器,如果成功便可以要求从主DNS服务器进行区域传送。要是传送成功的话,你将获得大量有用信息,包括:
  ·使用此DNS服务器做域名解析到所有主机名和IP地址的映射情况
  ·公司使用的网络和子网情况
  ·主机在网络中的用途。许多公司使用带有描述性的主机名。
  使用nslookup实现区域传送的过程
  (1)使用whois命令查询目标网络,例如在Linux提示符下输入 whois webmaster.com.cn
  (2)你会得到目标网络的primary和slave DNS服务器的信息。例如,假设主DNS服务器的名字是ns.webmaster.com.cn
  (3)使用交互查询方式,缺省情况下nslookup会使用缺省的DNS服务器作域名解析。键入命令server ns.webmaster.com.cn 定位目标网络的DNS服务器;
  (4)列出目标网络DNS服务器的内容,如ls webmaster.com.cn。此时DNS服务器会把数据传送给你,当然,管理员可以禁止DNS服务器进行区域传送,目前很多公司将DNS服务器至于防火墙的保护之下并严格设定了只能向某些主机进行区域传送。
  一旦你从区域传送中获得了有用信息,你便可以对每台主机实施端口扫描以确定它们提供了那些服务。如果你不能实现区域传送,你还可以借助ping和端口扫描工具,当然还有traceroute。
  host
  Host命令是Unix提供的有关Internet域名查询的命令,可实现主机名到IP地址的映射,反之亦然。用host命令可实现以下功能:
  (1) NMAP
  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。
  Axcet NetRecon
  NetRecon是最先为Windows NT网络设计的网络扫描产品之一。NetRecon象其它扫描器一样可以发现网络中的各种元素,处理本课中讨论的各种问题,包括密码检查。NetRecon可以比较准确的模拟各种***。NetRecon的界面由三个窗格组成。对象窗口允许你查看每个扫描对象,通过单击可以展开目录结构。通过扫描网络,图形窗口显示低、中、高的风险等级。状态栏显示扫描的进程。你可以对网络进行深度扫描,当然这种扫描会耗费大量的时间。例如,广泛的扫描会花费两天的时间。
  漏洞数据库和对象列表
  在NetRecon中以一些漏洞列表作为侦查数据库,你可以将这个列表理解为***指纹,但是这个名词通常被用于***检测系统程序中。如果你持有NetRecon的授权,便可以从Axent的Web站点升级这个漏洞列表。通过 Reprots view Vulnerability Descriptions 菜单,可以查看相关漏洞的描述。
  下面列出NetRecon可以扫描出的系统漏:
  · Finger服务漏洞
  · GameOver(远程管理访问***)
  · 未授权注销禁止
  · 服务漏洞,包括SMTP、DNS、FTP、HTTP、SOCKS代理和低的sendmail补丁等级。
  大多数网络扫描器,如NetRecon,包含了事先定义好的对象列表。通过选择 Reprots View Objective Descriptions,你可以查看在NetRecon中已经配置好的当前对象列表。
  Network Associates CyberCop Scanner
  CyberCop Scanner是Network Associates的产品,该公司的产品还包括Sniffer Basic(前身是NetXRay)和其它网络管理软件。象NetRecon一样,CyberCop Scanner是一个主机级别的审计程序。与Axent的产品一样,CyberCop也把各种漏洞分类为低、中、高三个等级。附录B中是一份CyberCop Scanner生成的报告样例。
  技术提示:CyberCop Monitor不是网络扫描器,它是***监测系统程序,能够对***活动进行监视,提供报警功能,还能惩罚***。你将在本教程中学习一些***检测系统程序。
  WebTrends Security Analyzer
  该软件以前叫Asmodeus Security Scanner,WebTrends的产品在Unix和NT系统下都经过很好的测试。Security Analyzer的优点之一是与UNIX搭配使用多年,操作界面也简单易用。
  在主界面上选择Policy,然后edit,这时Security Analyzer 的选项窗口将出现。你可以选择扫描的强度,或编辑已有的策略、建立新的策略。如果你点击Host Selection标签,便可以选择子网内主机的范围。
  Internet Security Systems的扫描产品
  Internet Security Systems是最早生产扫描程序的公司。在究沃心憬癐nternet扫描器和系统扫描器。它们都是ISS设计来提供跨操作平台的安全工具包。
  ISS Internet Scanner
  这款扫描器工作于UNIX和NT平台,象Axent NetRecon、WebTrends Security Analyzer和其它扫描器一样可以扫描远程主机。
  Ineternet Scanner有三个模块:intranet,firewall和Web服务器。程序的策略是希望将网络活动分类,并针对每种活动提供一种扫描方案。这个特点由于你可以直接扫描更重要和经常遭受***的系统而变得十分有效。你也可以在三个模块中定义你自己的扫描参数。
  下列是Internet Scanner中部分扫描的项目:
  ·PHP3 缓冲区溢出
  ·Teardrop和Teardrop2***
  ·跨网络的协议分析仪(包括tcpdump和Sniffer Basic)
  ·搜索一些FTP服务类型,包括War FTP
  ·SNMP和RMON检测
  ·Whois检测
  ·SAMBA溢出
  ·增强的SMS支持
  ·增强的NT功能,使它与UNIX一样有效
  ISS Security Scanner
  Security Scanner是基于主机的扫描程序。它可以深入挖掘系统的情况。由于是基于主机的扫描程序,所以能更深入地扫描系统内部。这一功能在检查象数据库、FTP和Web服务等特定的系统时显得十分有用。这种程序应该只运行在考虑到有***活动的高风险的系统上。
  其它扫描程序厂商
  其它提供扫描和检测漏洞的产品包括:
  ·Security DynamiCS Kane Security Analyst
  ·Netect HackerShield
  社会工程
  我们已经接触了一些侦查程序,其中有的工具非常灵活和全面。但是,通过人为你侦查网络情况更方便。一名优秀的审计人员会从人力资源角度来获取网络信息。虽然你可以用社会工程对网络进行***和控制,但用这种方法来侦查网络也同样有效。作为安全管理人员,你不应低估社会工程的威胁。作为安全审计人员,你也不应在侦查工具和技巧中漏掉社会工程。
  电话访问
  审计人员试图以人为突破口。在从Nslookup获得有关信息后利用电话骗取更多的有用信息。通过这种方法,你可以获得更多的信息,甚至骗取他人给你访问网络主机的权限。
  E-mail诈骗
  虽然欺骗性的邮件本身是无效的,但你可以伪装成工程技术人员骗取别人回复你的信件,泄漏有价值的信息。
  教育
  作为安全管理人员,避免员工成为侦查工具的最好方法是对他们进行教育。通过提高员工对设备的认识和增强他们的责任感,可以使他们变得更难于被***控制。
  获得信息
  作为安全审计人员,你可以把信息分成网络级别和主机级别的信息。
  网络级别的信息
  下表中列出了你需要获得的有价值的网络级别的信息。
  
信息
描述
网络拓扑 安全审计人员首先应当搞清楚网络的类型(以太网,令牌环等等),IP地址范围,子网和其它网络信息。配线架的位置也很重要。作为安全管理人员,你的目标是利用防火墙、代理服务器等设备保护这些信息。 路由器和交换机 掌握路由器和交换机的种类对分析网络安全十分重要,你可以是路由器泄漏信息。 防火墙种类 大多数的网络都有防火墙。如果你能够访问防火墙,便可以侦查它并寻找相应的漏洞。 IP服务 最基本的服务包括DHCP,BOOTP,WINS,SAMBA,和DNS。DNS服务特别容易遭受缓冲区溢出的***。 Modem池 也许最流行的绕过防火墙是做法是通过modem连接再附以Man-in-the-middle***和包捕获。War dialer是在Internet上寻找网络连接的重要的审计工具。
  主机级别的信息
  下表列举了一些更有价值的主机级别的信息
  
信息
描述
活动端口你应该了解服务器上有那些端口是活动的。HTTP和FTP服务是最容易遭受端口扫描的服务,而且***会进一步实施缓冲区溢出***。
数据库数据库类型(例如Oracle,Microsoft SQL Server和IBM DB2),物理位置和应用协议都很有价值。
服务器服务器类型是非常有价值的信息。一旦你确定了服务器的种类是Microsoft或UNIX,便可以有针对性的利用系统的缺省设置和补丁侦查登录账户名称,弱口令和低的补丁等级。
  近年来,许多成功的***都利用了大量的业余时间。他们阅读了大量的文献,研究系统的缺省设置和内置的漏洞。无论你是安全管理人员还是安全审计人员,都应该尽可能地多掌握产品的情况。
  例如,通过研究TCP/IP的RFC文件,你可以获知各个厂商如何应用TCP/IP协议。在Student CD中的RFC目录中有RFC1700文章,其中描述了TCP和UDP端口的划分情况。这种文献是你和***都可以免费得到的关于协议、操作系统和硬件信息的资料。
  合法和非法的网络工具
  ***会尝试使用任何工具,不论它有多复杂。而且,***工具和审计工具并没有本质上的区别。在本课中讨论的一些工具,如Axent NetRecon,通过广播主机名进行查询。这些信息可以帮助系统管理员和安全管理人员明确需要扫描那些资源。无论如何,这些程序并不仅限于系统管理员的正当使用。
  ***可以使用本课中讨论的任何工具。使用企业级的扫描工具通常会占用大量的带宽,并不是隐蔽的侦查工具。因此,任何系统管理员,安全审计人员或***都乐于使用网络级的扫描程序,即使冒不是引起注意就是使整个网络瘫痪的风险。