6.2、惊险游戏

对于安全顾问Dustin Dykes而言,赚钱的入侵“令人兴奋。我理解肾上腺素毒瘾者的感觉,那是绝对的刺激。”因此,当他到达药剂公司(我们称它“Biotech”)的会议休息室,商讨为该公司做渗透测试时,真是髙兴坏了,并很期待着这个挑战。

作为自己公司——CallismaInc(现在已被SBC兼并)安全服务的主要顾问,Dustin要求他的团队身着职业装参加会议。当时波士顿地区正在经历有史以来最寒冷的一个冬天,但Biotech公司的员工却穿着牛仔裤、T恤衫和短裤。Dustin和他的团队成员被警卫拦截了。

尽管做过计算机管理——特别是在网络操作方面,但Dustin一直认为自己是一名安全人员,这可能是他在空军部队任职期间形成的看法,他说,“我培养了自己的后来的怀疑精神,养成一种认为别人随时都会攻击你的防范意识。”在他上七年级时,他就受继母的影响,深深地被电脑吸引住了。那时,继母在一家公司从事系统管理员的工作。当她在电话里谈论业务时,Dustin被她的满口“天书”迷住了。当时他13岁。“一个晚上她把一台电脑带回家里,我把它拿到我的房里,编程创作了城堡和龙字符,还用它来掷色子。”通过钻硏有关Basic和从朋友那儿收集来的所有书籍,Dustin的技术进步了。他自学了怎样使用调制调解器拨号进入他继母工作场所来玩冒险游戏。起先他只希望有越来越多的时间玩电脑,但随着渐渐长大,他意识自己无拘无束的性格与整日泡在一台终端机上度过一生是不符的。如果作为一名安全顾问,他就能把自己的才能和对自由的渴望结合起来。这真是这一种“极好的解决方法决定在安全领域开创自己事业,事后证明这是个不错的选择。“能进入这个行业,真是太让我兴奋了,”他说。“这就像是在下象棋。每走一步棋,都会遇到对抗的一步棋。每走一步都将改变游戏的整个局面。”

6.2.1、结合的规则

对每一个公司而言,关注其漏洞都是有意义的一可以知道在知识产权保护方面,自己的工作做得怎样;在受到攻击后,怎样挽回公众对自己的信心;以及怎样让员工提高警惕,防止入侵者偷窥个人信息。

一些公司还有一些更为迫切的原因,如不想与政府监视机构产生冲突,因为这样可能会意味着丢失一个重要的合同或使一个重大的研究项目受挫。任何与防御部门订有协议的公司就属于这种情况。任何做敏感的生物技术产品的公司也有同样的问题,因为上面有“食品和药物管理局”——Callisnia公司的新客户正是这种情况。面对周围全是化学物品,和正在实验室做研究的科学家,被雇来的黑客并此不感兴趣,这将会是一次巨大的挑战。

在与Biotech的最初会面中,Callisma团队了解到客户公司希望遭受各种可能的攻击,就像真正的对手会做的那样:简单和复杂的技术攻击、社会工程攻击、实际入侵等。公司的IT执行官,通常都是这样,非常自信地认为渗透测试人员所有的努力都将会是白费力气。因此,Biotech这样拟订他们的规则:任何证据,包括没有可靠的文件记录的证据,都是可以接受的。

因为渗透测试有可能会干涉到公司的工作,所以事先要做好假设,处理方案要事先准备好。比如当某个服务中断时,首先要通知谁?到底系统中哪一部分能被攻击,以及用什么方式攻击?测试员如何才能知道攻击能进行到什么程度,以免造成不可挽回的损失或业务处理故障?

客户通常只要求渗透测试进行技术上的攻击,他们忽视了其他可能使公司受损的威胁。Dustin Dykes解释道:

无论他们说什么,我知道他们的主要目的就是找出其系统的弱点,但通常他们的弱点存在于其他的方面。真正的入侵者会找出阻碍最小的通道,即安全链上最薄弱的链接。就像水总往低处流一样,攻击者会选择最容易得手的方法,人们大多都会这样。

Dustin建议,“社会工程攻击”应该成为渗透测试的一个重要部分(更多关于社会工程的知识,见第10章,社交工程师的攻击手段以及防御其攻击的措施)。

但他乐意放弃一部分渗透手段。如果他不想尝试实际入侵的话,他就不会放弃。对他而言,那是最后的一招,即使手中持着那张护身符。“如果事情发展大不顺利时,我很可能就会溜进大楼,并不让保安或疑心重的员工发现。”最后,渗透测试团队需要知道他们要寻找的最终目标是什么。在这种下高赌注的电子侦察游戏中,明确这些至关重要。对于这家制药公司,最终目标就是他们的财务记录、客户、供应商、制造过程以及硏发工程的文件。

6.2.2、计划

Dustin的测试计划要求以一种“悄悄的”方式开始——先保持低姿态,然后慢慢地凸现,直到有人发现并举旗喊停。这个办法与Dustin自己关于渗透测试项目的哲学相违背,即用“红队”(白帽黑客)的行为。

在“红队”行为中,我所尝试要完成的是来自公司所采用的防卫姿势。他们认为,“让我们推测攻击者的心理状态,我们怎样打败它?”那已让公司处于不利的地位。他们不知道他们该做出什么行动或反应,除非他们知道什么对他们重要。

我问意,正如孙子所说的那样知己知彼,百战不殆。

所有的彻底的渗透测试——当客户同意时——使用的攻击类型都与这章先前描述的一样。

我们的方法主要集中在下面四个领域:用技术登录网络(我们已谈论得很多)、社会工程(偷听和“越过肩膀偷看”)(我们也谈论了)、垃圾搜寻以及物理入口。就是这四个领域。

(“越过肩膀偷看”是委婉的说法,就是指当员工输入口令时,在旁边悄悄观看。通晓这门“艺术”的黑客,通过仔细观察员工飞快的击键动作,他们能辨认出员工输入的是什么——即使一边还要装作没有在意。)

6.2.3、攻击

第一天,Dustin走进Biotech的大厅。值勤室的右边是公司的休息室和自助餐厅,这两个地方都允许来访者进入。在值勤室的另一边是会议室,Dustin的团队与Biotech执行官们第一次见面时就在那里。值勤警卫站在一个中心位置,可以很好地监视安全入口的主要通道,但会议室却完全不在他的视线范围内。任何人都可以进入,不用回答什么问题。Dustin和他的队员就是这么干的。接着他们就有大量的时间可以四处看看了。甚至没有人知道他们在里面。他们发现了一个活跃的网络插孔,或许是为了方便想在开会时连接公司网络的员工。把笔记本电脑上的以太网线插入墙上的插孔,Dustin很快发现了他期待的状况:他从公司防火墙后登录网络,这简直是一份进入公司系统的邀请函。

就像电影《碟中谍》需要播放一些背景音乐一样,Dustin把一个小的无线访问设备(如图6-1所示)固定在墙上,再把它插进插孔。这个装置允许Dustin的人员从停在公司大楼附近的汽车或货车内的电脑渗透进入Biotech网络。像从这样的“无线访问点”(WAP)设备中发出的信号可传递30英尺的距离。使用高效的定向天线能连接上隐藏得更远的WAP

6.2、惊险游戏 - 图1

Dustin的WAP所运行的频率与一个欧洲电台的频率相同——-这让他的渗透测试团队有明显的优势,因为这个频率很难被追踪。并且“它看起来不像一个WAP,因此,它没有被发现。我将它们留在墙上整整一个月,没有被发现和拆除。”当Dustin安装这样一种装置时,总会贴上一个小的但非常正式的便笺,写着,“信息安全服务财产。请勿拆除。”

为了和Biotech的员工形象保持一致,当温度保持在7摄氏度以下时,Dustin以及他的小组成员还穿着牛仔裤和T恤衫,但他们可都不想坐在停车场的汽车里冻坏他们的屁股。因此他们十分感激Biotech公司为他们在“非安全区域”——办公楼附近的楼房里安排了一间小房间。没有什么好玩的东西,但十分暖和,并且处于无线设备的范围内。他们连接上了——应该说,连接畅通无阻。

当安全小组开始探索Biotech的网络时,决定暂时试探性地搜索40台运行Windows的机器,因为上面的管理员账户没有门令,或是口令就“password”。换句话说,它们毫无安全可言,就如在先前的故事里提到的那样,因为攻击或者探测是从可信区域发起的,即公司集中控制周边的安全,以免坏人闯入,却把主人留在了不安全的屋里。找到渗透或越过防火墙方法的攻击者在内部网络可以无拘无束了。

一旦攻破了其中的一台机器,Dustin能从门令散列中获得每个账户的门令,并通过l0phtCrack程序运行这个文件。

6.2.4、工作中的l0phtCrack

在运行Windows的机器上,用户口令以加密形式(一个散列)被存储在安全账户管理(SAM)的区域:用户口令不仅被加密,而且是以单向散列混合形式加密的,这意味着加密算法把明文口令转换成它的加密形式,但不能把加密形式转换为纯文本。

操作系统在SAM中储存了两种版本的散列,一种是“LAN管理者散列”,或称为LANMAN,这是一种传统的版本,是对NT的继承。LANMAN散列是通过用户口令的大写形式计算出来的,每次被分割成两部分,每个部分有7个字符。因为这些特性,这种散列比它的后来者,NTLAN管理者(NTLM)更容易攻击,在它的特性中不会将口令转换成大写字母。

举例说明一下,这里有一个系统管理员的真实的散列(我不想说出这个公司的名字)Administrator:500:AA33FDF289D20A799FB3AF221F3220DC:0ABC818FE05AI20233838B931F36BB1:::在两个冒号之间的成分,如起始于“AA33”,截止于“20DC”的部分就是一个LANMAN散列;起始于“0ABC”,截至于“6BB1”的A部分是NTLM散列。两个都是32个字节,表征的是同一个口令,但第一个就比较容易攻击,并能被恢复为明文口令。

因为大多数的用户会选择一个名字或一个字典中的单词作为自己的口令,所以入侵者通常通过l0phtCrack(或其他任何程序)来进行“字典攻击”?——用字典中的每个单词去测试是否是某位用户的口令。如果字典攻击没有任何结果的话,入侵者接着会进行蛮力攻击,这种情况下,程序将会测试所有可能的字母组合(如AAA,AAB,AAC,……ABA,ABB,ABC等等),然后测试包括所有大小写,字母和符号的组合。

一个高效能的程序如IOphtCrack,能在儿秒钟之内将一些简单的,一目了然的口令(90%的人都是使用这种口令)破译。复杂一点的也许要几个小时或几天,但基本上所有的口令都会在某个时刻被攻破。

6.2.5、访问

Dustin很快将大部分的口令都破译了。

我试着用管理员的口令登录主域控制器,我登录上去了。他们在本地机器和域账户上运行的是同一个号码。现在我在整个域内拥有管理员权限了。

一个主域控制器(PDC)上维护着域用户账户的主数据库。当用户在域内进行登录时,PDC将会用自己的数据库中信息来验证这个登录请求。这种主账户数据库还被拷W到域控制器备份文件上(BDC),在PDC出现问题时,可以提前警告。这种结构随着Windows2000的出现而发生了实质的改变。Windows后来的版本使用的是活动目录,但相对Windows旧版本的向后兼容来说,在域内至少有一个担任PDC角色的系统。

他拿到了进入Biotech王国的钥匙,获得许多标记了“机密”或“仅供内部使用”的内部文件。通过这种极端的方式,Dustin花了几个小时,从高度机密的药物安全文件中,搜集了极敏感的信息。这些文件详细记载了该公司硏制的药品可能会导致的不良反应。由于Biotech所做业务的性质,获取这些信息须由食品和药物管理局严格管理,并且渗透测试成功后,所获取的数据需要向管理局作正式的主题报告。

Dustin同时也进入了员工的数据库,获取了他们的姓名、邮箱账户、电话号码、所在部门和职位等等。利用这些信息,他就能选定他下一阶段的攻击目标。他选择的目标是公司的一名系统管理员,同时也是监视渗透测试的人。“我想,虽然我已经获得了大量的机密信息,但我还想证明有其他的攻击路径。”即还有其他的泄密途径。

Callisma小组发现,如果你想进入一个安全领域,最好的方式就是:混在午饭后返回时谈论不休的员工中一起进去。与早晨和傍晚相比——那时的人们可能更容易烦躁和发怒,午饭后,他们大多会放松警惕,也许是因为刚吃完饭,反应有些迟缓。这时,谈话一般都比较友好,各种亲切的交谈中充满了肆意流淌的信息和线索。Dustin最喜爱的小窍门就是,留意谁将离开餐馆,然后他走到这个员工的前面,为其开门,然后跟着走进去。十有八九——即使他们进入的是安全领域——这位员工将会为Dustin的优雅举动而感谢他。而他就这么进去了,几乎没有费什么力气。

6.2.6、报警

一旦选择了目标之后,小组就需要想个办法进入安全领域,然后就在目标机器上安装一个击键记录程序(keystroke logger)——这个程序将记录键盘上敲过的每一个键,甚至包括操作系统启动前敲下的键。在系统管理员的机器上,可以截取网络上各种系统的口令。这也意味着,渗透测试者对任何关于追踪他们探索的努力的信息都会保密。

Dustin决定不冒被抓的风险去“尾随“了,但这需要做一点点“社会工程”工作。在出入自由的大厅和自助餐馆,他仔细地观察员工的徽章,然后自己伪造了一个。公司标志很容易伪造——他只要从公司网址上复制下来,然后贴到自己设汁的徽章上。没有详细的检査,他确信这一点。

Biotech有一组办公室设在附近的大楼里,这些办公室以及里面的一些办公设备都是公用的,因为同时被好儿家公司租用。门廊有值班警卫,即使在晚上和周末也有人值班。当员工用有正确电子代码的徽章扫过读卡器时,门会从走廊打开。

我在周末的时候上去,然后就开始闪动我自己做的假徽章。我将徽章扫过读卡器,当然,它没有反应。警卫来了,帮我打开门,朝我笑了笑。我也对他笑了笑,并拍了拍他的肩膀。

不用说一句话,Dustin就成功地越过警卫,进入到了安全区域。

但Biotech办公室目前还是安全的,因为还有一个读卡机替它挡着。周末,这幢大楼人员的流通量几乎是零。

周末不会有员工来,因此无法尾随。所以我需要想个别的办法进去,我沿着一个四周都是破璃的楼梯上到第二层,试探着看门能不能打开。我推了推,门真的开了,而且不需要徽章认证。

但四处响起了警报。显然刚才我穿越的是防火梯。我跳进里面,门“砰”地关上了。里面,有一个标志,“请勿打开,打开将响警报”,我的心跳得非常厉害。

6.2.7、幽灵

Dustin很清楚该走到哪一个小隔间,因为小组所获得的员工数据库列出了每一个人的工作区域。警报在耳边不停地响,他还是朝着他的目标所在的隔间走去。

攻击者通过安装击键记录程序软件能记录所有被按下的键,并且能定期用邮件向一个地址发送捕获的数据。但是,测试小组早已决定要向客户证明,他们很容易被各种方式渗透入侵,Dustin想换用一种真实的方式来做这件事情。

他选择的目标装置是键盘幽灵(Keyghost)(如图6-2所示),这个看上去无邪的小东西,能将键盘和计算机连接起来,并且因为它很小,几乎不会被发现。Keyghost一个模型可以存储50万次击键,这对于一个普通的计算机用户来说,需要工作好几个星期才能达到这个数字(然而,这有一个缺点,当恢复记录器读取数据时,攻击者必须返回到原地点)。

6.2、惊险游戏 - 图2

Dustin首先拨出键盘线,然后插进键盘幽灵,接着把键盘线重新插好。当时在他脑子里就是要快点把这些做完,因为“我认为替报声在加强,时间在减少,我的手开始微微擅抖。我将会被抓。你知道实质上事情不会太严重,因为我有免受牢狱之灾的护身符,但即便是这样,我的肾上腺素还是不停地被分泌出来。”键盘幽灵一装好,Dustin就沿着主楼梯下楼,楼梯将他带到了警卫岗。Dustin准备应用另一种“社会工程”,硬着头皮去面对着接下来的问题。

我特地站在紧挨着警卫岗的一扇门边,没有避开警卫逃出去,反而直接朝着警卫走过去。我对他们说,“唉,非常抱歉,是我引发了警报。我从来没来过这栋楼,不知道会发生这种亊,真的很抱歉。”

接着警卫说,“哦,没关系。”接着他打了个电话。我猜警报想起时,他给某人打了电话,现在他要告诉那人“是错误警报,已经没问题了”。

我没有呆在旁边听。

6.2.8、未遭受挑战

渗透测试渐渐接近尾声。公司的安全执行官们一直自信地认为:渗透测试者无法渗透网络;也不能在未授权的情况下,真实地造访、潜进大楼;并且到目前为止,没有任何员工遭受挑战。Dustin慢慢地提高了自己的“噪音音量”,使自己的存在变得越来越明显。但仍然还没被发现。

Dustin对他们是怎么做成这一切的,真的感到很好奇,因为有好几个小组成员用“尾随”的方式进入了公司大楼,并携带着一个巨大的天线,经过大伙面前的这个精巧的装置扛起来还挺费力的。一些员工肯定注意到了这个奇怪的装置,但没有人因此猜想过什么,并揭露告发他们。

并且,在没有徽章的情况下,小组成员先在Biotech的第一幢安全大楼里,接着是第二幢,闲逛了三个小时。没有人对他们提出哪怕一个字的疑问。没有人问他们诸如此类简单的问题:“那到底是什么鬼东西?”最主要的责任还在警卫:从走廊放他们进去,还给他们一个奇怪的表情,自己走后都没有想过甚至要回头看看。

Callisma小组总结,大多数的大机构,任何人大街上的人都可以进入,带着自己的设备,随意地在大楼里穿梭,没有人阻止,也没有人查身份。Dustin和他的同事将渗透进行到了极点,但一路上没有遭受到任何挑战。

6.2.9、暧手游戏

在很多商业机构,如Biotech,经常见到一种退出请求(REX)的装置。在安全领域,如研究工作实验室,当你靠近门准备出去时,你的身体会刺激热量或者动量感应器,将锁打开,这样你就可以出去了。如果你拿着一些东西,比如扛着试管架子或者推着笨重的手推车,你也不必停下来去找开门的把手开门。如果从外面进到里面去的话,你必须持有一张读卡机认可的ID证件,或在小键盘键入一个代码。

Dustin注意到,Biotech的几个门上安装的REX在底部都有一个空隙。他想知道自己是否能以智取战胜感应器。如果他能通过身体的热量和动量从门外边刺激装在门里面的感应器,他就能愚弄感应器,让它为自己开门。

我买了一些暖手器,就是你平常能在户外供应店买到的那种。为了保持热量,你一般会把它们放进口袋里。在一个暖手器变热后,我把它钩在一根硬金属丝上,我把金属丝从门下穿过,让它靠近感应器,并前后摇晃。

毫无疑问,它打开了锁。

又一个本应是相当安全的防备措施在战斗中玩完了。

过去,我也做过类似的事情。那个目标是一个感应动量的感应器。我先在门下边往里塞入一个气球,但要抓住留在门外的气球口,然后给气球充入氦气,充好后用绳T1在末端打个结,接着让气球浮起来去靠近感应器,再稍微花点力气操控一下。就像Dustin的暖手器一样,稍微耐心一点,气球也能做这个小把戏。

6.2.10、测试结束

Biotech公司的灯是亮着的,但里面没人。虽然公司的IT执行官声称他们在运行入侵检测系统,甚至为他们基于主机的入侵检测还申办了许可证,但Dustin相信,要么这些系统从来没有启动过,要么就是从来没有人认真检查过系统日志。

测试项目即将结束,必须把系统管理员办公桌上的键盘幽灵撤回来。小东西还在原地,两个礼拜里没有人发现它。因为那个系统管理员的办公点很难“走后门”进去,Dmtin和他的队友们就混入午餐的队伍中,当有人吃完饭准备出门时,他们就马上跳起来跑过去开门,装作就是顺便给别人提供方便。最后他们遇到了有史以来的第一次也是仅有的一次“挑战”,那个员工问他有没有徽章,他就从腰间掏出他的假徽章,亮出来,他那随意的动作很令人满意。他们看上去没有害怕或难堪。员工进入办公楼时,没有再问什么,让他们进去了。

进入安全领域后,他们走进了会议室。墙上有一块大白板,上面写着许多熟悉的术语。Dustin和同事意识到他们已在Biotech举行IT安全会议的房间里了,一个Biotech绝不想让他们出现的地方。就在这时,公司的测试担保人走进来了,看见他们,发起人很震惊。他禁不住地摇了摇头,问他们在干什么。这时,其他的Biotech安全人员也到达了会议室,包括那位他们尾随进入大楼的员工。

他看见了我们,于是对担保人说,“哦,我只想让你知道,在他们进来时我就怀疑了。”这个虚荣的家伙还因自己首先怀疑了我们而感到自豪呢。他应该感到难堪才是,因为他仅有的一个质问并没有检验出我们的不合法身份。

那个被安装了键盘幽灵的管理员也来参加会议了。Dustin就趁机走进她的小隔间取回他的设备。