8.4 海德纳吉案例2:主题乐园丑闻
对我来说,主题乐园丑闻是个很有趣的案例,因为它涉及一些现场测试。在这个案例中我运用了本书中提到的许多社会工程技巧,这是一场对理论的实战检验。
第二个原因是其本身的商业性质和骗局成功的可能性。如果成功了,社会工程人员可以获取上千个信用卡账号。
8.4.1 目标
本次攻击的目标是检测某主题乐园票务系统的安全性。在登记顾客购票信息时,每个计算机终端都会与后台服务器端的客户信息和金额记录建立连接。主题乐园想看看攻击者能否运用恶意的方式使工作人员采取某种行动从而造成危害。
我的目的不是找工作人员的麻烦,而是为了证明工作人员进行票务登记的计算机被入侵时会带来什么安全危害。此外,我不会采用黑客技术入侵计算机,而是要应用社会工程学方法。
如果这样的入侵发生了,后果会怎么样呢?会泄露什么样的数据?哪些服务器会遭受入侵?但他们并不想考虑得如此深入,只想看看第一阶段,即社会工程入侵是否真能实现。
为了弄清社会工程入侵是否可能,我必须先弄清乐园的售票操作流程,以及工作人员在终端上将会做什么、不会做什么,更重要的是,他们有权做什么、无权做什么。
8.4.2 故事
就像前面提到的,这项工作的目的并不复杂,即我只需弄清楚售票窗口的工作人员是否会允许“顾客”让他做一件明显不被允许的事。在开始具体筹划之前,我必须先了解他们的业务内容。
我浏览了乐园的网站,利用Maltego和谷歌调查了有关该乐园的报道和其他信息。我还做了现场调查,亲自去了乐园,体验在售票窗口买票的过程。在这个过程中,我与工作人员进行了简单的交谈,并且留意他们的布局、电脑结点以及“办公室”的其他方面。
这个“办公室”令我有了眉目。在对话中,我提到自己来自一个非常有名的小城镇。她问我是什么地方,我告诉了她,然后她作出了常规的反应:“那地方在哪?”
“你这能上网吗?”
“能啊。”
“哦,你会喜欢上那里的,打开一下谷歌地图,输入邮编11111,然后转换成卫星视图模式。看那个小镇是多么地小呀!”
“我的上帝啊,真是太小了!我以前从来没听过这个地方。”
在这么短的时间里,我掌握了如下信息:
售票员工作场所的布局
工作人员是怎样售票的
计算机是连外网的
我再次登录乐园的网站,开始寻找新的突破口。我需要找到入侵他们计算机系统的方法。我的伪装(一名带着家人去乐园游玩的父亲)很合理。
我设计的故事情节是这样的:一开始家人和我并没有计划去乐园游玩,但是在酒店上网时看到了乐园的优惠信息,于是去大厅打算购买门票,但是那的价格要比网上贵很多。
当我们再次确认价格时,发现优惠价仅适用于在线支付,于是我们在线付了钱,之后才突然意识到,门票需要打印出来才能被检票器扫描。我试着在酒店打印,可惜他们的打印机坏了。我已经付了钱,害怕钱就这么浪费了,于是把它们转换成了PDF格式并且发送到自己的邮箱里。这个故事听上去很合理,不是吗?我需要做的就是开始着手我的小阴谋。我先打了一个电话。
“你好,是XYZ主题乐园总办事处吗?”
“是的,有什么需要帮忙的吗?”
我需要同内部人员取得联系,向他们提问并且得到我想要的答案。连线采购部门后,我找到了正确的目标。我说:“你好,我是SecuriSoft公司的保罗。我们正在为新的软件产品做免费测试,它能阅读甚至打印PDF文件。我发给你一个免费下载的地址,请试用一下好吗?”
“可以,但是我不确定我们对此会不会感兴趣,但你可以发一些资料给我。”
“太好了,我能问一下你现在使用的Adobe阅读器是什么版本的吗?”
“我想还是第8版的。”
“好的,今天我就发一些合适的资料给你。”
知道版本信息后,我要做的就是创建一个嵌入反向会话的恶意PDF文件(一旦打开,我就能访问他们的计算机),把它取名为Receipt.pdf,然后发送给自己。
第二天,我带着家人开始了一项社会工程行动。家人站在一边等着,我走上前热情地与售票员攀谈了起来。
“嗨!你好吗……缇娜?”我看着她的胸牌说道。
“你好,需要我帮什么忙吗?”她微笑着询问我。
“是这样的,我和家人决定本周末进行一次短途旅行,现在我们住在这附近的希尔顿酒店。”我指着不远处的家人回答道,“我女儿看到了你们主题乐园的广告,于是求着我们带她来。我们答应她了,然后在网站上看到了优惠的门票……”
“噢,是的,我们只在网上提供优惠,现在十分受欢迎。我能看一下你们的门票吗?”
“呃,这就是我想请你帮忙的地方,我不想得到‘年度最烂老爸奖’。”我女儿正在紧张地笑呢。我解释道:“缇娜,我和妻子看到网上的价格便宜15%,就在酒店的电脑上购买了门票,但是付完钱后,酒店的打印机坏了,无法将票打印出来,于是我把它保存为PDF文件,并发送到了我的邮箱。”
“我知道这是个奇怪的要求,不过你可以登录我的邮箱,然后帮我打印一下吗?”这个邮箱地址很普通,包含一些名为“孩子的照片”、“爸妈结婚纪念日”之类的邮件。
可以看出她在做激烈的思想斗争,我不敢肯定她的沉默是否对我有利,或者我可以再推动一下。我说:“我知道这个要求比较怪,但是我的宝贝女儿真的很想去,而且我不想对她说‘不’。”我再次指向女儿,她的表情很配合,流露出可爱而又焦虑的神请。
“好的,我要怎么做呢?”
“先登录gmail.com,然后登录我的邮箱Paul1234@gmail.com,密码是B-E-S-M-A-R-T。”(我知道这个密码很糟糕1,但是紧要关头的一点警告也无伤大雅。)
1. 密码BESMART的含义是“聪明些”,有点警告的含义。——译者注
几分钟过后,缇娜双击了PDF文件,然后电脑黑屏了。“你在开玩笑吗?或者我哪里操作错了吗?哇,现在我肯定要得‘年度最烂老爸奖’了。”
“你知道怎么回事吗,先生?我感到十分抱歉,要不然你购买成人票,我让孩子免费进去。”
“哦,你真是太慷慨了。”我微笑着给了她50美元,谢谢她的所有帮助,然后让她退出了我的邮箱。就当我女儿因进入乐园而感到喜悦的同时,主题乐园的系统也被入侵了。
几分钟过后,搭档发短信告诉我,他已经“进入”并且“收集”了报告所需的数据。几个小时的娱乐过后,我们离开了乐园,回去完成了周一会议所使用的报告。
8.4.3 社会工程框架的运用
正如本案例中所展示的,信息收集不仅可基于网络,还可以亲自到现场收集。这个案例中的大量信息就是我去现场亲自采集的。找到他们所使用的计算机系统、了解目标对特定问题的反应及查出票务系统的运作方式是本次信息收集的主要内容。
这次攻击中最重要的一点是,好的伪装不仅仅是编造一个故事、装扮一下造型、假冒一下口音,而是可以毫不费力地“设身处地”。
在这个场景中,我能自如地把握父亲的口吻、动作和谈吐,因为我就是一个父亲。我对获得“年度最烂老爸奖”的担心是真实的而不是假装的,我的感情是真挚的,所以会让目标觉得我是真心的。这一切让我的言行更加可信。
当然,有一个可爱的孩子站在远处,用渴望的眼神望着售票员,以及酒店打印机坏掉的情节也十分可信。在第2章中曾提到过,有时社会工程人员需要提升伪装能力,或者至少是个说谎能手,但我相信实际上不止这么简单。
从专业角度来看,伪装需要创建一个现实的、能操纵目标感情和行为的角色。人们通常不会被一些简单的谎言所蒙骗。一名社会工程人员必须“就是”那个伪装的角色,所以选择与你生活贴近的角色是一个不错的主意。
“免费试用PDF软件”这个借口存在很大的漏洞。这个借口本身是没问题的,但是可能会被立即拒绝从而影响下一步的攻击。还有一个侥幸就是售票员所使用的PDF阅读器版本和公司所使用的一样,没有升级,这才让我有机会入侵。
通常,我认为利用人类固有的惰性就是一场赌博,但是在这个案例中我成功了。有时候最好的办法就是相信自己提出的要求是理所应当的。这能让你感到自信,让目标相信你的言行是正当合理的。
正如我在第5章中提到的,使用类似“我真的需要你的帮助……”这样句子,是一个非常好的技巧。乐于助人是人类的天性,特别是当别人开口请求时。
即使是完全陌生的人,在面对请求时也会竭尽全力地给予帮助,就像此案例中从别人的电子邮箱中打开一个未知文件。帮助一个“可怜的父亲”,让他可爱的女儿进入乐园,这样一个请求却导致公司系统被入侵。
一旦入侵成功,存储所有客户的信用卡信息的程序就会成为攻击者的猎物。轻松收集一些数据,就可能让乐园蒙受巨额损失、面临诉讼以及陷入困窘。