假设你是在一家安全公司工作的道德渗透测试员,你老板跑到你办公室,递给你一张纸,说:“我刚跟那家公司的CEO在电话里聊了聊。他要我派出最好的员工给他们公司做渗透测试——这事得靠你了。一会儿法律部会给你发封邮件,确认我们已经得到相应的授权和保障。”然后你点了点头,接下这项任务。老板转身走了,你翻了翻文件,发现纸上只写了公司的名字,Syngresso这家公司你从来没听过,手头也没有其他任何信息。
怎么办?
无论做什么工作,第一步总是调研。准备工作越彻底,成功的几率就越高。创建Backtrack Linux的人总喜欢引用亚伯拉罕·林肯(Abraham Lincoln)的一句话:“如果我有6个小时来砍一棵树,我会先花4个小时把斧头磨锋利。"想要学好渗透测试以及侦察阶段的知识,应该先读懂这句话的含义。
侦察( reconnaissance)也就是信息收集,有人甚至认为这是渗透测试四大步骤中最重要的一环。在收集目标信息上所花的时间越多,后续阶段的成功率就越高。具有讽刺意味的是,侦察这一步骤恰恰是当前整个渗透测试方法体系中最容易被忽略、最不被重视、最易受人误解的一环。
这一步之所以容易被忽略,可能是因为没有人好好向初学者介绍侦察工作的概念和益处,也没有告诉他们做好信息收集工作对后续步骤是多么重要。还有一种可能性,就是侦察工作太没有“技术”含量了。初学黑客技术的人经常会觉得侦察太无趣,一点挑战性也没有。事实上,根本就不是这么回事。没错,现在的确没有多少工具能够很好地、自动地完成侦察工作,但是一旦你弄明白了其中的基础原理,就能以全新的视角来看待这,一阶段。优秀的信息收集者应同时具备以下几个身份:黑客、社会工程师和私家侦探。侦察之所以与其他步骤不同,除了缺乏可用的工具之外,也没有什么定义严格的规则能够明确地区分出侦察中的不同阶段。这种现状与方法论中的其他步骤有着天壤之别。
对于生活在当今世界的任何人而言,学习如何执行数字侦察都是一项宝贵的技能,对渗透测试人员及黑客来说更是无价之宝。出色的侦察可以使测试人员轻易地获得某个网络或系统的控制权,这样的故事在渗透测试领域里俯拾皆是。
考虑下边这个例子:假设有两种罪犯,正准备抢银行。第一种罪犯买了一支枪,冲进他找到的第一家银行,大喊:“把手举起来!把钱都掏出来给我!”不难想象这样的场面得有多混乱,而且即使这家伙拿钱跑了,恐怕用不了多久就得让警察给发现、逮捕,然后关进监狱。对比好莱坞电影里经常出现的另一种情景:罪犯在动手之前花几个月时间做计划、定步骤、巧安排,仔细检查每一个环节,还要花时间匿名买武器、安排逃脱路线、详细研究大楼平面图。此外,他们还得去银行踩点,了解摄像头的位置和记录安保部署情况,推测银行什么时候现金最多、什么时间防备最薄弱。很明显,第二种罪犯更有可能顺利抢到钱并安全撤离。
很明显,以上两种情形的区别在于准备工作和事前做的功课。黑客活动和渗透测试也是一样的道理,不能仅仅获得了个IP就开始运行Metasploit(其实也不是不可以,但效率肯定会很低)。
再回到本章开篇的例子。老板让你完成一次渗透测试,却没提供什么信息,就只给了公司的名字。每一个雄心勃勃的黑客都会问这样的问题:“只知道公司的名字,我得怎样才能控制网络内部的系统呢?”一开始,我们对这家机构真是一无所知:公司网站、地理位置、员工数目等,一概不知。不知道公共IP地址、内部IP方案,当然也不清楚这家公司的技术部署情况以及所使用的操作系统和防御措施。
步骤1以彻底地搜索目标的公共信息作为开始。这个步骤有一点好处是,大多数情况下,不用向目标发送数据包也能收集到海量数据。虽然侦察阶段所用到的某些工具确实会直接向目标发送信息,但要分清楚哪些工具会跟目标联络,哪些不会,这一点很重要。该步骤有两个主要任务:第一,收集与目标有关的信息,越多越好:第二,分类所有收集的信息,创建可进行攻击的IP地址列表。 大多数时候,首先需要定位目标的网站。在该例子中,可以在搜索引擎上直接查找名字是“Syngress”的网站。
一般情况下,步骤1首先要做的是仔细浏览目标的网站。有些时候,实际上我们可能要用一款叫做HTTrack的工具,将整个网站逐页复制下来。HTTrack是一款免费的实用工具,能够创建与目标网站完全相同的脱机副本。复制的内容包含原始网站所有的网页、链接、图片和代码。不过,这些文件将储存在你的本地电脑里。利用HTTrack这类网站复制工具,可以在脱机状态下尽情挖掘某个网站的资源,而不用花时间在目标公司的Web服务器上闲逛。
HTTrack安装好了之后,就可以针对目标网站运行该软件。请记住,这种行为很容易被跟踪,同时也会被视为极具攻击性。没有事先获得授权的话,不要运该工具。启动HTTrack之后,会出现若干网页,可以对复制过程进行设置和定制。每个页面都有不同的选项,可以对程序的不同方面进行设置。例如,可以更改程序语言(默认为英语)、项目名称、网站复制后
存放的位置,以及准备复制的网站地址。可以根据需要按照你自己的习惯一步一步更改设置,然后单击“Next"(下一步)按钮。最后的配置页面包含一个“Strat’’(开始)按钮,如果已经做好目标网站复制的准备,就可以单击该按钮。复制过程所需的时间取决于目标网站的大小。HTTrack完成整个网站的复制任务之后,将提供一个网页,通过它可以在浏览器里Browse the Mirrored Website(浏览镜像网站),也可以打开保存网站的路径浏览保存的网站。
不管是把整个网站复制下来,还是实时浏览网站,都要记得关注细节。一开始就应该不断总结并记录下你在目标网站上找到的所有信息。通常情况下.不需要挖太深就能有一些重大发现,例如,物理地址和位置、电话号码、电子邮箱地址、运营时间、商业关系(伙伴关系)、员工的姓名、与社会化媒体的联系,以及其他公开的花絮趣闻。
做渗透测试时,通常需要特别关注“新闻”和“公告”这类的信息,这很重要。公司经常都会对自己的成就感到骄傲,在这类报道中就会不小心泄露有用的信息。企业兼并与收购也会产生有用的数据,在扩大渗透测试范围、增加新的目标时就显得尤其重要。收购过程再顺利,也会对企业的组织架构带来变动和混乱。而在企业兼并过程中,总会有一段过渡期,这就为我们创造了绝佳的机会,可以充分利用这种变动和混乱。哪怕兼并事件已是旧闻,或者过程波澜不惊,这类信息总有其用武之地,可以为我们提供新的目标。被兼并或合并的企业,对它们的测试也必须获得他们的授权,并加入到最初的目标列表中,因为它们也可能会有进入母公司的入口。
最后,还要搜索并检查月标公司挂在网上的招聘启事,这很重要。因为在这类启事中经常会详细地说明它们所使用的技术。很多时候,在招聘启事上就可以直接了解招聘单位的软硬件使用情况。同时,别忘了在全国人力资源中心搜索关于目标的信息。举个例子,如果你发现这么一则招聘启事:岗位是网络管理人员,要求具备使用思科ASA防火墙的经验,看到这样的启事,则马上就可以得到一些结论,并可以据此作一些大胆的猜测。首先可以确定的是,这家公司要么正在用,要么准备采用思科的ASA防火墙。然后,根据企业的规模,可以推测这家公司要么一直紧缺懂得使用并设置思科ASA防火墙的人员,要么就是这方面的人员即将离职。无论哪一种情况,关于这家公司所使用的技术,你都已经获得了宝贵的信息。
大多数情况下,只要彻底检查目标的网站,就能对目标有一个很全面的了解,包括这是什么样的公司、具体做什么业务、公司设在哪里。
有了这些目标的基本信息之后,就可以进入被动侦察阶段。一家公司想知道是不是有黑客或渗透测试员在做被动侦察,就算不是不可能,也是十分困难。被动侦察对黑客来说,是~项低风险、高回报的工作。我们提到过的,被动侦察不会向目标系统发送任何数据包。在被动侦察中,我们所要用到的一个武器是互联网。首先要做的是利用各个搜索引擎对目标进行地毯式的搜索。
现今是有不少还不错的搜索引擎,但因为现在我们只涉及黑客和渗透测试的基础知识,所以我们侧重介绍Google引擎。Google对于做这项工作来说简直就是利器。Google公司的股票每股高达400~600美元,是有一定道理的。Google的网络爬虫遍及互联网各个角落,夜以继日、不知疲惫地搜索并索引任何抓得到的信息,然后发回Googleo该搜索引擎工作效率极高,黑客经常只需要Google就能完成整个渗透测试工作。