探索黑客技术攻防,实战研究与安全创新

导航菜单

渗透环境的搭建与理解

每个道德黑客都需要一个能够进行实践和探测的环境。学习使用黑客工具怎样才能不违法,或者怎样才能确保不侵犯未授权的目标,这让大多数新手都感到迷惑。通常搭建一个个人“黑客实验环境”就可以解决上述问题。黑客实验环境是一个沙箱环境,在这里的流量和攻击被隔离起来,或者不会触及未授权和未经同意的目标。在这个环境中,你可以任意利用所有的工具和技术,不用担心某些流量或者攻击脱离了你的网络。搭建实验环境至少需要两台计算机:一台模拟攻击机器,另一台模拟受攻击机器。还可以有其他的配置方法,同时部署多个受攻击机器能够模拟更真实的网络环境。

合理的使用和搭建黑客实验环境是至关重要的,因为这是最有效的学习手段之一。学习和掌握渗透测试的基本知识也需如此。

对黑客实验环境而言,至关重要的一点是要保证网络的隔离。你必须通过配置实验室的网络环境以确保通信流量不会逃逸或流出本网络之外。错误总会发生,即使最谨慎的人也有可能输错IP地址。即使是输错IP地址中的一个数字这样简单的错误,都有可能给你带来非常严重的后果。如果在黑客实验环境中本打算设置的目标地址是172.16.1.1,并对其进行了一系列的扫描和攻击,后来却发现实际上录入的IP地址是122.16.1.1,这会令你感到惭愧,而且更重要的是,这样的错误有可能会违法。

搭建沙箱或隔离的环境,最简单、最有效的方式就是从物理上断开网络或将你的网络与互联网断开连接。如果你使用的是物理设备,那么通过调整以太网线缆和交换机来改变路由流量是最好的方法。另外要再三检查你的无线NIC是不是关闭了。继续下一步工作之前要经常地检查你的网络是否存在潜在的流量泄露。

虽然用物理机器搭建黑客实验环境是一个不错的解决方案,但是,使用虚拟机来做这件事有几个明显的好处。首先,基于当前处理器的处理能力,在单个台式机或笔记本电脑上搭建一个“迷你”的黑客实验环境是很容易的。大多数情况下,我们会使用最少的资源来建立攻击目标,因此一台普通的计算机能同时运行两台或三台虚拟机。即使是在笔记本电脑上,也能同时运行两台虚拟机。使用笔记本电脑的另一个好处是实验环境是可移动的。现在外部存储器成本非常便宜,将几百台虚拟机器装入一个外置硬盘驱动器上很容易,携带起来也方便,安装也就几分钟的事情。每次你想实践的时候,或者想研究一下新工具的时候,只要打开Backtrace并将虚拟机部署为目标对象就可以了。搭建一个这样的实验环境可以让你拥有快速的、以即插即用的方式安装和配置不同操作系统的能力。

在渗透测试实验环境中使用虚拟机的另一个好处是,它可以很轻松地使整个系统沙箱化。只需要关闭无线网卡并拔出网线,这时物理机和虚拟机仍可互相通信,并且确保了没有攻击流量能流出你的物理机器。

一般而言,渗透测试是一个破坏性的过程。我们使用的许多工具和漏洞利用方法都有可能导致系统损坏或掉线。有些时候,重装操作系统或应用程序比修复更容易。这也是虚拟机的另一个优势。虚拟机可以快速地重置或恢复到它的初始配置,既不需要重新安装像SQL Server这样的程序,也不需要重新安装整个操作系统。

与大多数工作一样,渗透测试的整个过程可以分解为一系列的步骤或阶段。各个步骤放到一起,就形成了一个完成渗透测试的全面方法论。如果对未涉密事件的响应报告或已泄密公开的文件进行仔细分析,那么就能发现大部分黑帽黑客在进行目标攻击时也会遵循一定的流程。规范的测试流程很重要,这不仅能让渗透测试人员集中注意力并不断推进工作,而且每一步的测试结果或输出也能在接下来的测试阶段得到使用。

运用一套已成体系的方法论,可以将一个复杂的过程分解为一系列小的、易操作的任务。理解并遵循某个方法论对于掌握黑客基础知识十分重要。不同的方法论其步骤也不尽相同,但一般都包括4~7个步骤或阶段。虽然每套方法论拥有不同的名称和步骤数,但重要的是,这些方法论都提供了一个与渗透测试过程相关的完整概述。

例如,有的方法论使用术语“信息收集’’,而其他的方法论则把这个同样的过程叫做“侦察”( Reconnaissance)。我主要侧重于不同阶段的活动内容而不是它们的名称。当你掌握了基本知识以后,就可以从众多的渗透测试方法论中选择最适合自己的那一个了。为了简单起见,我们用一个包括四个步骤的方法论来学习和探讨渗透测试。如果你搜索和研究其他的方法论(这样做很重要),你会发现它们采用的步骤与我们使用的不同,也许多一些,也许少一些,并且每个步骤的名称也不相同。重要的是要了解,虽然每个渗透测试方法论使用的术语不同,但大多数所涵盖的主题是一样的。

上述规则中有一个例外:许多黑客方法论的最后一步称为“隐藏”、“掩藏痕迹”或者“销毁证据”。因为本书侧重于基本概念的理解,所以我们使用的方法论不包含这一步。一旦你掌握了扎实的基础知识,你就可以继续研究和学习关于这一步骤的更多知识了。

其余的内容将着重讨论和介绍以下步骤:侦察、扫描、漏洞利用、维持访问(maintaining access)。有时候,用倒三角的方式来表示这些步骤会更加直观,如图1-3所示。

 

图片3.png

使用倒三角表示这些步骤是因为初始阶段获得的成果非常多。当讨论其他的阶段时,我们会更加关注某些特定的细节。倒三角方法论很好地契合了本书由广泛到具体的讨论方法。例如,侦查阶段,我们要尽可能多地搜集网络上的信息口关于目标的每一个细节和每一条信息都要搜集并保存。在渗透测试领域里有很多经典的例子,那些在渗透测试初始阶段收集到的看似微不足道的信息,后来被证明是成功完成漏洞攻击并获取系统权限的重要组成部分。在后续的阶段,我们就可以关注目标更加具体的细节问题了。目标在哪里?它的IP地址是多少?它运行的是什么操作系统?它开启了哪些服务和哪些版本的软件?正如你所看到的,每一个问题都变得越来越细化了。

理解每个步骤的次序也是很重要的。这些步骤执行的先后顺序非常关键,因为某一步的输出或者结果就是后续步骤的输入。你不仅需要了解如何简单地运行本书介绍的安全工具,更要知道,以正确的顺序运行这些工具对执行一个全面且真实的渗透测试来说至关重要。

例如,很多初学者跳过了侦查阶段直接开始对目标进行漏洞攻击。跳过了第一步和第二步,结果只能是在每个目标上搜集到少量的目标列表和攻击向量(attack vector)。换句话说,这是在投机取巧。虽然知道如何使用一套工具能够引起他人的关注,但这并不是安全从业者和专业人士所采用的严谨的工作方法。

对于初学者而言,将介绍的这些步骤想象成一个环是很有帮助的。当前,重要系统都不会将自己直接暴露在互联网上。大多数情况下,在渗透测试人员找到一条到达预定目标的路径之前,他们必须先对一系列相关的目标进行访问和渗透。在这种情况下,每一个步骤常常会重复出现。图1-4用环形过程介绍了这一方法论。

图片4.png

我们粗略地讨论一下四步模型法涉及的内容,以便你对它有一个直观的认识。任何渗透测试方法的第一步都是“侦查”。这个阶段负责收集目标的信息。如前所述,你从目标上搜集到的信息越多,你就越有可能在后续阶段取得成功。

不管你有什么样的初始信息,在完成深入侦查之后,你都应该获得了目标的IP地址列表。该方法论的第二步可以分解为两个截然不同的活动。一个是执行端口扫描。一旦完成了端口扫描,就拥有了目标的开放端口和可能已开启服务的列表。第二个活动是漏洞扫描。漏洞扫描用于定位和识别在目标计算机上运行的软件和服务所存在的缺陷。

依据步骤2得到的相关结果,继续“漏洞利用”阶段。一旦我们确切地知道了目标计算机上开启了哪些端口,端口上都运行了哪些服务以及这些服务存在着什么样的漏洞,就可以开始进行目标攻击了。大多数新手都认为这一步才是“真正”的黑客行为。漏洞利用包含许多不同的技巧、工具和代码。漏洞利用的最终目标是在目标计算机上获得管理员权限(即完全控制权)。

要掌握的最后一个步骤是“维持访问”。通常,在漏洞利用阶段提供的攻击载荷只能提供开启系统的临时访问权限。因为大多数攻击载荷都是临时的,所以需要创建一个可以永久控制目标系统的后门进程。这个后门进程可以让我们以管理员的权限重新开启已经关闭的程序,甚至是重新启动目标计算机。作为一名道德黑客,对于这一阶段的使用和实现我们必须非常小心谨慎。我们将讨论如何完成这一步骤,以及使用后门或远程控制软件所涉及的道德问题。

每一个渗透测试最后的工作就是编写报告(这无疑是最重要的),但是它并不作为渗透测试方法论中的一个正式步骤。不管你花了多少时间和心血来实施渗透测试,客户通常只会根据报告的质量来评判你的工作效果。渗透测试的最终报告应当包含测试过程中发现的所有相关信息,还要说明测试实施的细节和测试内容。报告应当尽可能地针对发现的安全问题给出缓解和解决的方案。最后,每一个渗透测试报告都要包括一个总结。总结的目的是对你的成果进行一个简短的(大约100页纸)、非技术性的概述。报告应对你发现的最关键的安全问题进行强调并做简要总结。一定要注意,报告对技术人员和非技术人员来说都要通俗易懂。这才是详细报告的真正目的,千万别在报告中涉及太多的技术细节。

相关推荐