⒈什么是远程攻击?
一个远程攻击是这样一种攻击,其攻击对象是攻击者还无法控制的计算机;也可以说,远
程攻击是一种专门攻击除攻击者自己计算机以外的计算机(无论被攻击的计算机和攻击者
位于同一子网还是有千里之遥)。“远程 计算机”此名词最确切的定义是:
“一台远程计算机是这样一台机器,它不是你正在其上工作的平台,而是能利用某协议通
过Internet网或任何其他网络介质被使用的计算机”。
⒉第一步
进行远程攻击的第一步并不需要和攻击目标进行密切地接触(换句话说,如果入侵者聪明
的话,那第一步可以不要)。入侵者的第一个任务(在识别出目标机及其所在的网络的类
型后)是决定他要对付谁。此类信息的获得毋需干扰目标的正常工作(假设目标没有安装
防火墙。因为大部分的网络都没有安装防火墙,长期以来一直如此)。此类的某些信息可
通过下面的技术获得:
■运行一个查询命令host。通过此命令,入侵者可获得保存在目标域服务器中的所有信息。
其查询结果所含信息量的多少主要依靠于网络的大小和结构。
■WHOIS查询。此查询的方法可识别出技术管理人员。这类信息也被认为是无用的。实际
上不然。因为通常技术管理人员需要参与目标网的日常管理工作,所以这些人的电子邮
件地址会有些价值(而且同时使用host和WHOIS查询有助于你判断目标是一个实实在在的
系统还是一个页结点,或是由另一个服务形成的虚拟的域等等)。
■运行一些Usenet和WEB查询。在入侵者和目标进行实际接触之前,他还有许多查询工作
要做。其中之一就是查询某位技术管理人员的名字信息(使用强制的、区分大小写的、
完全匹配用的条件查询)。通过些查询入侵者可了解这些系统管理员和技术管理员是否经
常上Usenet。同样,也可在所有可用的安全邮件列表的可查询集合中查询他们的地址。
“你应该如何做呢?首先试着收集目标的信息。有许多网络服务可于此目的,finger、
showmount和rpcinfo都是好的起点。但不要停滞于此,你还能利用DNS、Whois、Sendmail(smtp)、
ftp、uucp和其他的可用的各种服务。”
收集系统管理员的相关信息是最为重要的。系统管理员的职责是维护站点的安全,当他们
遇到各种问题时,许多管理员会迫不及待地将这些问题发到Usenet或邮件列表上以寻求答案。
只要肯花一定时间来寻找此系统管理员的地址(和其他的一些信息),你便能彻底地了解
他的网络、他的安全概念以及他的个性。因为发出这种邮件的系统管理员总会指明他们的
组织结构、网络的拓朴结构和他们面临的问题。
注意:对Windows NT网络进行攻击却截然不同。你必须一直跟踪每台机器上的根帐号(或
者说系统管理员帐号)。因为NT并未设计出su等命令,用以完面只有根帐号才能完成的任
务。而且NT上系统管理员帐号和UNIX上的根帐号有着极大的差异。
因为不直接被使用根帐号,所以系统管理员的ID可为任何字符串。让我们假设你知道那个
ID:walrus。进一步假设通过host查询命令,你得到了150台计算机的有关信息,其中包括
每台计算机的名字。例如,他们可以是mail.victim.net、news.victim.net、shell.victim.net、
cgi.victim.net等等(尽管在实践中,它们可能会有“主题”名,从而使外人不知道某台
机器负担何种工作,如sabertooth.victim.net、bengal.victim.net等)。
入侵者应该在每台机器上试一试管理员的地址。例如,他会试一试walrus@shell.victim.net,walrus@sabertooth.victim.net
等。换句话说,除了在网络的每台计算机上尝试管理员的地址,还要在每台计算机上
尝试所有的具有普遍性的东西。也许可以发现walrus喜欢用的计算机,所在信件都是从
这台计算机邮出的。
请注意,如果目标是一个服务提供者(或者允许用户对它进行合法访问的系统),那么
通过观察系统管理员从哪进入系统能获得此管理员的更多信息。一般从外部联合使用finger
和rusers命令即可获得这些信息。换句话说,你要一直留意外部网(除目标网以外的网,
在这些网络上那个系统管理有一些帐号),如果他最近的一次登录是在Netcom,跟踪他在
Netcom帐号一天左右,看看会发生什么。
⒊关于finger查询
finger很可能暴露你的行为,为了避免finger查询产生标记,绝大多数入侵者使用finger gateways
(finger网关)。finger网关是一些WEB主页,通常包含了一个简单的输入框(field),
此框指向在远地服务器硬盘上的一个CGI程序。此远程服务器执行finger查询。
下面提供了此类finger网关的一个例子
http://www.hgp.med.umich.edu/cgi-bin/finger
通过finger网关的使用,入侵者能隐藏其源地址。
⒋操作系统
也许你已经使用了各种方法(包括在上文中所提及的方法和另外一些方法)来识别在目标
网络上使用的操作系统的类型的版本。无论如何,一旦判断出目标网络上的操作系统和结
构是多样的,下一步的研究工作就可以进行了。首先作一张表,列出每个操作系统和机器
的类型(这张表对于你进一步进行研究有极大地帮助),然后对每个平台进行研究并找出
它们中的漏洞。
知道操作系统后可到如下地址查找相关的安全报告:
http://info.arc.com/sec_bull/sec_bullsearch.html
⒌进行测试
实际上只有那些对入侵极热衷的入侵者才会做攻击过程中测试部分。大部分的入侵者并不想
尝试这种行为,因为这需要一定的费用。然而我却推荐入侵者不要跳过此步骤。
在此步骤中,首先要建立一个和目标一样的环境。一旦将此环境建立起来后,你就可对它
进行一系列的攻击。在此过程中,有两件事需要注意:
■从攻击方来看这些攻击行为看上去像什么
■从受攻击方来看这些攻击行为看上去像什么
通过检查攻击方的日志文件,入侵者能大致了解对一个几乎没有保护措施的目标进行攻击时
攻击行为看上去像什么(目标没有保护措施是指目标机上没有运行传统的守护程序)。这
能给入侵者提供一些提示;如果真正的攻击行为和实验结果不一致,那么一定存在着某些
原因。一台相同配置的机器(或者,我应说成一台配置明显一致的机器)在相同的攻击下
应产生相同的反应。如果结果并非如此,那说明管理目标机的人暗中已有了应急计划。在
这种情况下,入侵者应谨慎行动。
通过检查被攻击方的日志,入侵者可了解攻击过程中留下的“痕迹”看上去像什么。这对
入侵者来说很重要。在一个异构系统中,存在着不同的日志过程。入侵至少应该知道这些
日志过程是什么,换句话说,他需要了解保存入侵“痕迹”的每个文件(在相同配置的计
算机上)。这些信息是至关重要的,并具有指导作用:它能告诉入侵者删除哪些文件来毁
灭其入侵的证据。找到这些文件的唯一方法就是在自己控制的环境中进行测试并检查日志。
⒍和漏洞及其他重要特征有关的各种工具
紧接着,你收集各种实际使用的工具,这些工具最有可能是一些扫描工具。你应该至少判
断出目标网上的所有设备。基于你对操作系统的分析(和其他我曾在本章里提到过的各种
软件),你需要对你的工具进行评估以判断有哪些漏洞和区域它们没有覆盖到。
只用一个工具而不用另一个工具就可覆盖某特定设备的情况下,最好还是同时使用这两个
工具。这些工具的联合使用是否方便主要依赖于这些工具是否能简易地作为外部模块附加
到一个扫描工具上,如SATAN或SAFESuite。在此测试变行极为有价值,因为在多数情况下。
附加一个外部模块并让它正常地工作并不那么简单。
为了得到这些工具工作的确切结果,最好先在某台机器上进行实验(这台机器甚至可和目
标机不同)。这是因为。我们想知道是否会由于加上两个或多个单独设计的模块而使扫描
工具的工作突然被中断或失败。记住实际的扫描攻击过程只能一气呵成,如果中间被打断,
那你不会有第二次机会。
于是,根据你想在目标机上得到的东西,你可挑选一些合适的工具。在某些情况下,这是
一件轻松的事。例如,也许你已经知道在目标系统上的某人正通过网络运行着一些X窗口
系统的应用软件。在此种情况下,如果你搜索Xhost的漏洞,一定能有所收获。
记住使用扫描工具是一种激烈的解决方案。它等于是在大白天拿着棍冲到某户人家,去试
着撬所有的门和窗。只要此系统的管理员适度地涉猎过一些安全话题,那你的行为在他面
前会暴露无疑。
⒎形成一个攻击策略
在Internet漫游过程中攻击这台或那台服务器的日子基本上已经过去。多年前,只要系统
没有遭到破坏,突破系统安全的行为办被看用一种轻微的越界行为。如今,形势则大不相
同。今天,数据的价值成为了谈论的焦点。因此作为现代入侵者,没有任何理由就实施入
侵是很不明智的。反过来,只有制定了一个特定计划再开始进入入侵才是明智之举。
你的攻击策略主要依赖于你所想要完成的。我们假设你手边的任务基本上就是攻破某系统
的安全措施。如果这是你的计划,那么你需要计划如何完成此次攻击。扫描时间花得越长
(越多的机器被涉及在内),越有可能被发现;同时越多的扫描数据需要你筛选,而基于
这些扫描数据进行的攻击需花费的时间越长。我曾经提过,扫描的攻击的时间越短越好。
因此一些事变行很明显(或理所应当)了,一旦通过收