网络技术是从1990年代中期发展起来的新技术,它把互联网上分散的资源融为有机整体,实现资源的全面共享和有机协作,使人们能够透明地使用资源的整体能力并按需获取信息。资源包括高性能计算机、存储资源、数据资源、信息资源、知识资源、专家资源、大型数据库、网络、传感器等。 当前的互联网只限于信息共享,网络则被认为是互联网发展的第三阶段。
Webmaster
网络安全讲座:6.侦察手段与工具
作者:(webmaster
网络技术学)
如你先前所知,黑客和安全审计人员采取的第一步都是侦查
网络。在本讲中,你将接触一些
网络侦查的工具和方法。
安全扫描
安全扫描以各种各样的方式进行。你将利用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地址的映射情况
· 公司使用的
网络和子网情况
· 主机在
网络中的用途。许多公司使用带有描述性的主机名,像mail.companya.com,www.companyb.com和print.companyc.com。
使用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命令可实现以下功能:
· 实现区域传送
· 获得名称解析信息
· 得知域中邮件服务器的信息
参数-v可显示更多的信息,参数-l实现区域传送,参数-t允许你查询特定的DNS记录。例如,要查询ciwcertified.com域的邮件服务器的记录,你需要键入命令:
host -t mx ciwcertified.com 你可以参考UNIX命令帮助获得更多信息。
Traceroute(tracert)
Traceroute 用于路由追踪,如判断从你的主机到目标主机经过哪些路由器、跳计数、响应时间如何、是否有路由器当掉等。大多数
操作系统,包括UNIX,Novell和
Windows NT,若配置了TCP/IP协议的话都会有自己版本的traceroute程序。当然我们也可以使用其它一些第三方的路由追踪软件,在后面我们会接触到这些工具。
使用traceroute,你可以推测出
网络的物理布局,包括该
网络连接Internet所使用的路由器。traceroute还可以判断出响应较慢的节点和数据包在路由过程中的跳计数。
Ping 扫描作用及工具
Ping一个公司的Web服务器可帮助你获得该公司所使用的IP地址范围。一旦你得知了HTTP服务器的IP地址,你可以使用Ping扫描工具Ping该子网的所有IP地址,这可以帮助你得到该
网络的地址图。
如下图所示,你可以使用ping扫描工具侦查出
网络的物理拓扑情况。
Ping扫描程序将自动扫描你所指定的IP地址范围。WS_Ping ProPack工具包中集成有Ping扫描程序,单独的Ping工具有许多,Rhino9 Pinger是比较流行的程序。
端口扫描
端口扫描与ping扫描相似,不同的是端口扫描不仅可以返回IP地址,还可以发现目标系统上活动的UDP和TCP端口。如图所示是一次端口扫描所侦查到的服务的情况。
在本例中,地址192.168.1.10正在运行SMTP和Telnet服务,地址192.168.1.12正在运行FTP服务,主机192.168.1.14未运行任何可辨别的服务,而主机192.168.1.16运行着SMTP服务。最后一台主机属于Microsoft
网络,因为该
网络使用UDP137和TCP138、139端口。
端口扫描软件
端口扫描器是黑客最常使用的工具。一些单独使用的端口扫描工具象Port Scanner1.1,定义好IP地址范围和端口后便可开始实施扫描。还有许多单独使用的端口扫描器,如UltraScan等。像Ping扫描器,许多工具也集成了端口扫描器。NetScan、Ping Pro和其它一些程序包集成了尽可能多的相关程序。你将发现许多企业级的
网络产品也将ping和端口扫描集成起来。
网络侦查和服务器侦查程序
如图2-9所示,使用简单的程序如Ping Pro,你可以侦查出Microsoft的
网络上开启的端口。Ping Pro的工作是通过监测远程过程调用服务所使用的TCP、UDP135端口,和Microsoft
网络会话所使用的UDP137,138,和139端口来实现的。其它的
网络扫描工具允许你监测UNIX,Novell,AppleTalk的
网络。虽然Ping Pro只能工作在其安装的特定子网,但还有更多更复杂的工具,这些工具的设计者把它们设计成为可以识别更多的
网络和服务类型的程序。
例如,NMAP是UNIX下的扫描工具,它可以识别不同操作系统在处理TCP/IP协议上细微的差别。你可以从Http://www.insecure.org获得该程序。其它类似的程序还包括checkos,queso和SATAN。
堆栈指纹
许多本课中介绍的程序都利用堆栈指纹技术,这种技术允许你利用TCP/IP来识别不同的操作系统和服务。因为大多数的系统管理员注意到信息的泄露而且屏蔽了系统标志,所以应用堆栈指纹的技术十分必要。但是,各个厂商和系统处理TCP/IP协议的特征是管理员所难以更改的。许多审计人员和黑客记录下这些TCP/IP应用的细微差别,并针对各种系统构建了堆栈指纹表。
要想了解操作系统间处理TCP/IP协议的差异需要向这些系统的IP和端口发送各种特殊的包。根据这些系统对包的回应的差别,你可以推断出操作系统的种类。例如,你可以向主机发送FIN包(或任何不含有ACK或SYN标志的包),你会从下列操作系统获得回应:
· Microsoft
Windows NT,98,95,和3.11
· FreeBSD
· CISCO
· HP/UX
大多数其它系统不会回应。虽然你只不过缩小了一点范围,但这至少开始了你对目标系统的了解。如果你向目标系统发送的报文头有未定义标志的TCP包的话,2.0.35版本以前的LINUX系统会在回应中加入这个未定义的标志。这种特定的行为使你可以判断出目标主机上是否运行该种LINUX操作系统。
下列是堆栈指纹程序利用的部分特征,许多操作系统对它们的处理方式不同:
· ICMP错误信息抑制
· 服务类型值(TOS)
· TCP/IP选项
· 对SYN FLOOD的抵抗力
· TCP初始窗口:只要TCP开始进行三次握手,总是先发出一个SYN包。像NMAP这样的程序会发出一个SYN包欺骗操作系统作回应。堆栈指纹程序可以从回应报文的格式中推论出目标操作系统的一些情况。
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。
SetRequest命令
你还可以利用SNMP重新配置接口或服务。这包括设置路由跳计数,停止和启动服务,停止和启用接口等等。如果你使用SNMPv1而且黑客又得到community name的话,他就可以侦查和控制你的系统。SNMPv3包含了更复杂的加密和验证的机制。然而,许多
网络管理员由于使用缺省的密码和设置,给黑客以可乘之机。当然,经过加密的SNMP密码仍然可以被捕获和暴力攻击。
SNMP软件
许多厂商出售SNMP管理软件,常见的SNMP软件有:
· HP的OpenView
·
Windows NT Resource Kit中的SNMPUTIL
· 各种各样的
网络附加工具包,如Ping ProPack等
虽然象HP的OpenView程序是工业的标准,你还可以使用功能稍差的程序象Ping Pro来获取
网络的情况。如图显示了Ping Pro中的SNMP模块。
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的问题是没有验证机制。黑客喜欢对其进行拒绝服务攻击,对系统提出了严峻的考验。
简单TCP/IP服务
像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
报告风险等级
大多数的
网络扫描器将风险分成低、中、高三个等级。你将接触到各种扫描器是如何汇报它们的扫描结果的。即使得出你的
网络只有低的安全问题,你也不应该沾沾自喜。一名优秀的黑客可以从很小的缺陷入手给系统造成致命的破坏。
Axcet NetRecon
NetRecon是最先为
Windows NT
网络设计的
网络扫描产品之一。NetRecon象其它扫描器一样可以发现
网络中的各种元素,处理本课中讨论的各种问题,包括密码检查。NetRecon可以比较准确的模拟各种攻击。NetRecon的界面由三个窗格组成。对象窗口允许你查看每个扫描对象,通过单击可以展开目录结构。通过扫描
网络,图形窗口显示低、中、高的风险等级。状态栏显示扫描的进程。你可以对
网络进行深度扫描,当然这种扫描会耗费大量的时间。例如,广泛的扫描会花费两天的时间。
漏洞数据库和对象列表
在NetRecon中以一些漏洞列表作为侦查数据库,你可以将这个列表理解为攻击指纹,但是这个名词通常被用于入侵检测系统程序中。如果你持有NetRecon的授权,便可以从Axent的Web站点(http://www.axent.com)升级这个漏洞列表。通过 Reprots
关键词:Webmaster网络安全讲座:6.侦察与工具