网络安全基础知识之侦察与工具
安全扫描安全扫描以各种各样的方式进行。你将利用Ping 和端口扫描程序来侦查网络, 你当然也可以使用客户端/服务器程序,如Telnet 和SNMP 等,来侦查网络泄漏的有用信息。你应当利用一些工具来了
安全扫描
安全扫描以各种各样的方式进行。你将利用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 命令可实现以下功能:
·实现区域传送
·获得名称解析信息
·得知域中邮件服务器的信息
参数-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 扫描程序将自动扫描你所指定的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 和端口扫描集成起来。
网络侦查和服务器侦查程序
使用简单的程序如Ping Pro,你可以侦查出Microsoft 的网络上开启的端口。Ping Pro的工作是通过监测远程过程调用服务所使用的TCP 、UDP135端口,和Microsoft 网络会话所使用的UDP137,138,和139端口来实现的。其它的网络扫描工具允许你监测UNIX ,Novell ,AppleTalk 的网络。虽然Ping Pro只能工作在其安装的特定子网,但还有更多更复杂的工具,这些工具的设计者把它们设计成为可以识别更多的网络和服务类型的程序。
例如,NMAP 是UNIX 下的扫描工具,它可以识别不同操作系统在处理TCP/IP协议上细微的差别。其它类似的程序还包括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 来获取网络的情况。
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 报告风险等级
大多数的网络扫描器将风险分成低、中、高三个等级。你将接触到各种扫描器是如何汇报它们的扫描结果的。即使得出你的网络只有低的安全问题,你也不应该沾沾自喜。一名优
,秀的黑客可以从很小的缺陷入手给系统造成致命的破坏。
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是最早生产扫描程序的公司。在本课中你将学习Internet 扫描器和系统扫描器。它们都是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 上寻找网络连接的重要的审计工具。
主机级别的信息
下表列举了一些更有价值的主机级别的信息