大部分时候,参加过黒客讲座或课程的人对若干安全工具都会有基本的 认识。很典型的例子是,这些学生可能曾经利用端口扫描工具对某一系统 进行过检査,或曾使用Wireshark来査看网络流景。其中有些人可能还玩过 Metasploit之类的漏洞利用工具。遗憾的是,如何在渗透测试过程中运用这 些工具,大部分初学者其实并不了解。也正因如此,他们的知识结构是不完 整的。如果能遵循一定的方法论,就等于有个方案在手,也就知道了下一步 该做什么。
为了强调使用并遵循某一方法论的重要性,通常描述一种场景来加以解 释,这是很有帮助的,该场景可用来强调在渗透测试过程中本步骤(侦察) 的重要性以及应用一整套方法论的价值所在。
假设你是在一家安全公司工作的道德济透测试员,你老板跑到 你办公室,递给你一张纸,说:“我刚跟那家公司的CEO在电话里 聊了聊。他要我派出最好的员工给他们公司做渗透測试——这事得 靠你了。一会儿法律部会给你发封邮件,确认我们已经得到相应的 授权和保障。”然后你点了点头,接下这项任务。老板转身走了,你 加了翻文件,发现纸上只写了公司的名字,Syngresso这家公司你 从来没听过,手头也没有其他任何信息。
怎么办?
无论做什么工作,第一步总是调研。准备工作越彻底,成功的几率就 越高。创建Backtrack Linux的人总喜欢引用亚伯拉罕•林肯(Abraham Lincoln)的一句话:“如果我有6个小时来砍一棵树,我会先花4个小时把 斧头磨锋利。”想要学好渗透测试以及侦察阶段的知识,应该先读憧这句话的 含义。
侦察(reconnaissance)也就是信息收集,有人甚至认为这是渗透测试四 大步骤中最重要的一环。在收集目标信息上所花的时间越多,后续阶段的成 功率就越高。具有讽刺意味的是,侦察这一步骤恰恰是当前整个渗透测试方 法体系中最容易被忽略、最不被重视、最易受人误解的一环。
这一步之所以容易被忽略,可能是因为没有人好好向初学者介绍侦察工 作的概念和益处,也没有告诉他们做好信息收集工作对后续步骤是多么重要。 还有一种可能性,就是侦察工作太没有“技术”含量了。初学黑客技术的人 经常会觉得侦察太无趣,一点挑战性也没有。事实上,根本就不是这么回事。
没错,现在的确没有多少工具能够很好地、自动地完成侦察工作,但是 一旦你弄明白了其中的基础原理,就能以全新的视角来看待这一阶段。优秀 的信息收集者应同时具备以下几个身份:黑客、社会工程师和私家侦探。侦 察之所以与其他步骤不同,除了缺乏可用的工具之外,也没有什么定义严格 的规则能够明确地区分出侦察中的不同阶段。这种现状与方法论中的其他步 骤有着天壊之别。例如,扫描就有特定的顺序和清晰的步骤序 列,为了顺利完成对目标的扫描,只需要遵照这些步骤进行就可以了。
对于生活在当今世界的任何人而言,学习如何执行数字侦察都是一项宝 貴的技能,对渗透测试人员及黑客来说更是无价之宝。出色的侦察可以使测 试人员轻易地获得某个网络或系统的控制权,这样的故事在渗透测试领域里 俯拾皆是。
考虑下边这个例子:假设有两种罪犯,正准备抢银行。第一种罪犯买了 一支枪,冲进他找到的第一家银行,大喊:“把手举起来!把钱都掏出来给 我! ”不难想象这样的场面得有多混乱,而且即使这家伙拿钱跑了,恐怕用 不了多久就得让警察给发现、逮捕,然后关进监狱。对比好莱坞电影里经常 出现的另一种情景:罪犯在动手之前花几个月时间做计划、定步骤、巧安排, 仔细检査每一个环节。还要花时间匿名买武器、安排逃脱路线、详细研究大 楼平面图。此外,他们还得去银行踩点,了解摄像头的位置和记录安保部署 情况,推测银行什么时候现金最多、什么时间防备最薄弱。很明显,第二种 霏犯更有可能顺利抢到钱并安全撤离。
很明显,以上两种情形的区别在于准备工作和事前做的功课。黑客活动 和渗透测试也是一样的道理,不能仅仅获得了个IP就开始运行Metasploit (其实也不是不可以,但效率肯定会很低)。
再回到本章开篇的例子。老板让你完成一次渗透测试,却没提供什么信 息,就只给了公司的名字。每一个雄心勃勃的黑客都会问这样的问题:“只知 道公司的名字,我得怎样才能控制网络内部的系统呢? ” 一开始,我们对这 家机构真是一无所知:公司网站、地理位置、员工数目等,一概不知。不知 道公共IP地址、内部IP方案,当然也不清楚这家公司的技术部署情况以及 所使用的操作系统和防御措施。
步骤1以彻底地搜索目标的公共信息作为开始。这个步骤有一点好处是, 大多数情况下,不用向目标发送数据包也能收集到海量数据。虽然侦察阶段 所用到的某些工具确实会直接向目标发送信息,但要分清楚哪些工具会跟目 标联络,哪些不会,这一点很重要。该步骤有两个主要任务:第-、收集与 目标有关的信息,越多越好:第二,分类所有收集的信息,创建可进行攻击 的IP地址列表。
之前我们讲过,白帽黑客和黑帽黑客的主要区别在于授权。步骤1为我们 提供了能够体现这种区别的范例。两种黑客都对目标进行了详细的侦察。但 是,恶意的黑客根本不受范围和授权的约束。
道德黑客展开调研的时候,他必须确保自己始终保持在测试的范围之内。 在信息收集过程中,黑客完全有可能发现某个脆弱的系统,它与目标有关系, 但不属于目标所有。即使通过这个相关的系统能够进入最初设定的目标机构, 倘若没有事先获得授权,白帽黑客是不允许利用或借助该途径的。举个例子, 假设你正针对某个公司做渗透测试,然后你发现这家公司的Web服务器(包 含客户记录)已外包或托管给第三方。假如你在客户网站上发现一个严重的 漏洞,但没有明确获得测试和利用该网站的授权,那么你必须忽略这个漏洞。 而黑帽黑客并不受这些条条框框的约束,他们会借助一切手段入侵目标系统。 大多数情况下,因为无权测试并检査这些外部系统,所以也无法提供大量细 节。但在你的最终报告中,必须提供尽可能多的信息,指出你认为有可能给 目标机构带来风险的系统。
若想要侦察工作能够顺利进行,必须先制定策略。几乎各种信息的收集 都需要借助互联网的力量。典型的策略应该同时包含主动和被动的侦察。
主动侦察(active reconnaissance)包括与目标系统的直接交互。必须注 意的是,在这个过程中,目标可能会记录下我们的IP地址及活动。
被动侦察(passive reconnaissance)则利用从网上获取的海量信息。当 执行被动侦察的时候,我们不会直接与目标交互,因此目标也不可能知道或 记录我们的活动。
前面提到过,侦察的目的在于尽可能多地收集与目标相关的信息。在渗 透测试的这个阶段,不能忽视任何细节,哪怕是看起来无关痛痒的。收集信 息的时候,应该将数据集中保存。可能的话,最好都以电子格式保存。这可 以方便后期进行快速而精准的搜索。毎个黑客都有自己的习惯,有的黑客更 喜欢把收集到的所有信息打印出来。每张纸都认真归类并放进文件夹里。如 果你也要使用这种传统的收集方式,记得要仔细整理你的记录。用纸作为介 质收集材料的话,就算只是针对一个目标,也会很快就用完几百页纸。
大多数时候,首先需要定位目标的网站。在该例子中,可以在搜索引擎 上直接査找名字是“Syngress”的网站。
一般情况下,步骤1首先要做的是仔细浏览目标的网站。有些时候,实 际上我们可能要用一款叫做HTTrack的工具,将整个网站逐页复制下来。 HTTrack是一款免费的实用工具,能够创建与目标网站完全相同的脱机副本。 复制的内容包含原始网站所有的网页、链接、图片和代码。不过,这些文件 将储存在你的本地电脑里。利用HTTrack这类网站复制工具,可以在脱机 状态下尽情挖掘某个网站的资源,而不用花时间在目标公司的Web服务器 上闲逛。
补充资源
必须要懂得,你浏览和摸索目标网站所花的时间越多,你的活动 就越有可能被跟踪(哪怕只是随意浏览网站)。记住,只要是属于目 标的资源,任何时候与之直接交互,都有可能留下数字痕迹(digital fingerprint) 。
高级渗透测试人员也会利用自动化工具,从某个网站的本地副本中提 取额外或者隐藏的信息。
HTTrack可以直接从该公司的网站(http://www.httrack.com)下载。 在Windows系统下安装该软件就和下载这个软件一样简单,只要一直单 击“下一步,,按钮就可以了。如果你想在Backtrack _k安装HTTrack,需 要像第1章里所说的,首先连接互联网,然后打开终端,输入如下语句:
apt - get i nstal1 webhttrack
程序安装完毕之后,可以通过单击K-Start -> Internet (互联网) 一 WebHTTrack Website Copier (见图 2・1) 找到 HTTracko K-Start 的 图标是一条龙,在屏幕的左下角。单击该图标,可以发现许多内置在 Backtrack中的工具。K-Start和微软众多操作系统中的Windows或“开 始”按钮一样。
HTTrack安装好了之后,就可以针对目标网站运行该软件。请记住,这 种行为很容易被跟踪,同时也会被视为极具攻击性。没有事先获得授权的 话,不要运该工具。启动HTTrack之后,会出现若干网页,可以对复制过 程进行设置和定制。每个页面都有不同的选项,可以对程序的不同方面进 行设置。例如,可以更改程序语言(默认为英语)、项目名称、网站复制后 存放的位置,以及准备复制的网站地址。可以根据需要按照你自己的习惯一 步一步更改设置,然后单击“Next”(下一步)按钮°最后的配置页面包含 一个“Strat”(开始)按钮,如果已经做好目标网站复制的准备,就可以单 击该按钮。复制过程所需的时间取决于目标网站的大小。HTTrack完成整个 网站的复制任务之后,将提供一个网页,通过它可以在浏览器里Browse the Mirrored Website (浏览镜像网站),也可以打开保存网站的路径浏览保存的 网站。
不管是把整个网站复制下来,还是实时浏览网站,都要记得关注细节。 一开始就应该不断总结并记录下你在目标网站上找到的所有信息。通常情况 下,不需要挖太深就能有一些重大发现,例如,物理地址和位置、电话号码、 电子邮箱地址、运营时间、商业关系(伙伴关系)、员工的姓名、与社会化媒 体的联系,以及其他公开的花絮趣闻。
做渗透测试时,通常需要特别关注“新闻”和“公告”这类的信息,这 很重要。公司经常都会对自己的成就感到骄傲,在这类报道中就会不小心泄 露有用的信息。企业兼并与收购也会产生有用的数据,在扩大渗透测试范围、 增加新的目标时就显得尤其重要。收购过程再顺利,也会对企业的组织架构 带来变动和混乱。而在企业兼并过程中,总会有一段过渡期,这就为我们创 造了绝佳的机会,可以充分利用这种变动和混乱。哪怕兼并事件已是旧闻, 或者过程波澜不惊,这类信息总有其用武之地,可以为我们提供新的目标。 被兼并或合并的企业,对它们的测试也必须获得他们的授权,并加入到最初 的目标列表中,因为它们也可能会有进入母公司的入口。
最后,还要搜索并检査冃标公司挂在网上的招聘启事,这很重要。因为 在这类启事中经常会详细地说明它们所使用的技术。很多时候,在招聘启事 上就可以直接了解招聘单位的软硬件使用情况。同时,别忘了在全国人力资 源中心搜索关于目标的信息。举个例子,如果你发现这么一则招聘启事:岗 位是网络管理人员,要求具备使用思科ASA防火墙的经验,看到这样的启 事,则马上就可以得到一些结论,并可以据此作一些大胆的猜测。首先可以 确定的是,这家公司要么正在用,要么准备采用思科的ASA防火墙。然后, 根据企业的规模,可以推测这家公司要么一直紧缺懂得使用并设置思科ASA 防火墙的人员,要么就是这方面的人员即将离职。无论哪一种情况,关于这 家公司所使用的技术,你都已经获得了宝贵的信息。
大多数情况下,只要彻底检査目标的网站,就能对目标有一个很全面的 了解,包括这是什么样的公司、具体做什么业务、公司设在哪里。
有了这些目标的基本信息之后,就可以进入被动侦察阶段。一家公司想 知道是不是有黑客或渗透测试员在做被动侦察,就算不是不可能,也是十分 困难。被动侦察对黑客来说,是一•项低风险、髙回报的工作。我们提到过 的,被动侦察不会向目标系统发送任何数据包。在被动侦察中,我们所要 用到的一个武器是互联网。首先要做的是利用各个搜索引擎对目标进行地 毯式的搜索。
现今是有不少还不错的搜索引擎,但因为现在我们只涉及黑客和渗透测 试的基础知识,所以我们侧重介绍Google引擎。Google对于做这项工作来 说简直就是利器。Google公司的股票毎股高达400〜600美元,是有一定道 理的。Google的网络爬虫遍及互联网各个角落,夜以继日、不知疲惫地搜索 并索引任何抓得到的信息,然后发回GoogleO该捜索引擎工作效率极高,黑 客经常只需要Google就能完成整个渗透测试工作。
在第13届Defcon黑客大会上,Jonny Long发表了题为“渗透测试人员 应该知道的 Google 黑客技术” (Google Hacking for Penetration Testers)的 演讲,震动了整个黑客社区。随后他还出版了一本书,详细介绍了 Google 黑客的艺术。
这里不会详细介绍用Google进行入侵的方方面面,但想要成为一名熟 练的渗透测试人员,必须扎扎实实地理解如何正确使用Googleo随便找一个 人,问他:"Google要怎么用? ”他会说:“这个,很容易的……你打开浏览 器,然后打开Google的主页,然后在搜索框里输入你想捜索的关键字。”
补充资源:
如果你对渗透测试有兴趣,强烈建议你观Defcon的相关视频,并 购买Jonny写的这本书。视频可以在线免费观看(查找Defcon网站的视 频库就能找到),该书由Syngress公司出版发行,随便一家书店都能买 到。Jonny的发现永久性改变了滲透测试与安全领域,他的演讲和著述都 V艮精彩,绝对值得你花时间好好研读。
这样的回答对地球上99%的人来说就很好了,但对于有理想有抱负的黑 客来说还远远不够。你必须学会各种使用技巧,这样才能最大化地搜取所要 的结果。简而言之,你必须练好Google搜索这门绝世武功。学会正确使用 Google这样的搜索引擎会让你事半功倍,并在浩瀚无垠的网页大海中捞到隐 藏在深处的宝藏。