社会工程学攻击案例(二)
一次性进群,长期免费索取教程,没有付费教程。
教程列表见微信公众号底部菜单
进微信群回复公众号:微信群;QQ群:460500587
微信公众号:计算机与网络安全
ID:Computer-network
案例1:自负的CEO
我与一位自负的CEO的交锋经历还是比较有趣的,因为那位CEO认为自己绝对不可能被任何社会工程渗透,理由有两个:第一,生活中他不常使用科技类产品;第二,他天资聪颖,完全能够抵抗他所谓的“愚蠢的游戏”。
在内部安全小组了解上述信息之后,他们决定让我将该CEO作为安全审计的目标。他们知道,如果他不能通过审计,那么此后的安全整改工作审批会更容易些,这有益于保障公司的整体安全。
1、目标
目标是美国一家规模较大的印刷公司,该公司拥有一些工艺专利和供应商,而且一些竞争者在打它们的主意。IT部和安全部门认为公司存在一些薄弱点,并说服CEO有必要进行一次安全审计。在与我搭档的一次通话中,该CEO傲慢地说,他知道攻击他简直是无稽之谈,因为他将会用生命保守这些秘密。即使是他的某些核心雇员也不知道所有的细节。
作为社会工程审计师,我的工作是渗透公司、获取公司某一台服务器的访问权限,并拿到其中存储的专利信息。就像CEO在电话里提到的,困难之处在于服务器的密码都存储在他的电脑里,没有他的允许,即使是安全部门的职员也无法接触他的电脑。
2、故事
很明显,不管采用什么方式,都必须通过CEO这一关。这的确是一个挑战,因为CEO已经全副武装,就等着被渗透了。我依照惯例由信息收集开始,通过网络资源和其他工具(比如Maltego)调查该公司。通过这种方式我获得了很多信息,比如服务器位置、IP地址、邮箱地址、电话号码、公司地址、邮件服务器、员工的名字和头衔等。
当然,我把这些信息制成文档以备之后使用。邮箱地址的结构十分重要,在调查他们的网站时,我发现其邮箱地址的结构是“名字.姓氏@公司名.com”。我没能找到CEO的邮箱地址,但网站上的许多文章都提到了他的名字和头衔。这些是普通的、不了解详情的社会工程人员都可以获取的信息。
利用“名字.姓氏@公司名.com”的格式,我尝试发了一封邮件给他,但是没能成功。这令我非常失望,因为我确定通过邮件方式能得到许多具体的信息。
我决定尝试一下Charles的昵称Chuck(恰克),于是试了试“chuck.jones@公司名.com”,竟然成功了!我获得了经过验证的邮件地址。现在我要验证一下这个邮箱是属于CEO的,而不是与他同名的某个家伙。
我花了更多的时间通过谷歌和Maltego尽可能地搜集更多的信息。Maltego有一个强大的转换器插件功能,可以像搜索引擎一样搜索域名范围内的任何文件。
我对公司域名范围内的文件进行转换,大量的文件映入我的眼帘。Maltego通过转换插件不断地提供文件名,许多文件包含元数据,其中包括了日期、创建者和其他的细节信息。通过运行Maltego的元数据转换功能,我发现其中很多文件都是由“Chuck Jones”创建的,文件中的许多内容都暗示他就是CEO。
这正是我想证实的,但在浏览的过程中,一个特殊的文件引起了我的注意——InvoiceApril.xls。这是当地一家银行开具的关于某个营销项目的发票,他参与了该项目,其中有银行的名称、日期以及资金数额,但是缺少具体的项目名称信息。
于是我快速查询了银行网站,但是6个月之前的项目已经无法显示了。我该怎么做呢?
我决定给银行市场部的人打一个电话。
“你好,我是某某公司的汤姆。我在整理账本,发现其中夹了一张4月份的面额为3500美元的赞助发票。项目名称没有写,你能告诉我这是什么活动的发票吗?”
“当然可以,汤姆,”伴随着键盘的敲击声她说,“我查到这是银行儿童癌症基金会发起的年度活动,贵公司是银牌赞助商。”
“非常感谢。我是新来的,非常感谢您的帮助。再见。”
我想到了一种可用的攻击方式,但还需要更多的调查研究,然后周密地计划一次电话通话。
我在网站上找到一些关于筹款活动的文章,以及许多公司为癌症治疗研究出资赞助的报道。另外,我对CEO做了更深入的调查并收获良多,我发现了他父母的名字、他姊妹的名字、他放在Facebook上的孩子的照片、他住在父母附近时去过的教堂、他对喜爱的餐厅的评价、他喜欢的球队、他大儿子喜欢的球队、他读的大学及他孩子上的学校等。
我想知道为什么公司要捐款给儿童癌症基金会。尽管利用他人的感情是许多恶意社会工程人员的所为,但我意识到可能自己也不得不这么做,因为我想知道是否是因为他某个儿子是癌症患者他才加入基金会的。我打了个电话给公司市场部的经理。
“你好,我是XYZ的汤姆。受本镇第一国家银行的委托,负责联系4月份儿童癌症基金会的出席者,能耽误您一点时间做个反馈调查吗?”
“当然可以。”市场经理苏说道。
“苏,我看到你们是4月份活动的银牌赞助商。你觉得就宣传结果而言这笔赞助费花得值得吗?”
“嗯,这是我们每年都会做的,在当地会有不少报道。如果网站上能多展示些银牌赞助商的信息就更好了。”
“好的,我记下来了。每年?是的,我看到你们每年都会这么做。个人想了解一下,有那么多基金会,为什么选择了我们?”
“据我所知,恰克总是特别关注这个。他是CEO,我想大概是他家里有人得了癌症吧。”
“噢,我很抱歉。请问是他的孩子吗?”
“不是的,我想可能是他的侄子或表妹吧。我也不是很肯定。”
“好的,十分感谢你们的捐款和支持。”
我又提了一些问题,再次表示感谢,然后结束了通话。
我得到了想要的信息——不是他的孩子患有癌症。我知道这不会阻止一个恶意的社会工程人员进行攻击,但我还是很好奇。在得到这些信息之后,我开始计划入侵攻击。
我知道CEO来自纽约,喜欢一家名叫多明戈的餐厅,并且经常带着孩子看大都会的比赛,然后去多明戈餐厅吃饭。
他给餐厅写了评价,并且列举了最喜欢的三道菜。我从他的Facebook中了解到,目前他还是和父母住得很近,而且经常过去探望。
我计划伪装成癌症研究资金的募集人员,宣称在为三州地区筹款,捐款的人将有机会抽奖,奖品是两张大都会比赛的门票和一张餐厅的优惠券,可从三家餐厅中任选一家,多明戈餐厅就是其中之一。
我会假装自己来自纽约地区,但是工作时间不长,以防他提到一些我不知道的事情。
我的最终目标是让他接收一个包含恶意代码的PDF文件,该代码能够让我反向入侵他的计算机。但如果他没有使用能让我成功入侵的Adobe软件版本,我会接着说服他下载一个zip文件,并执行其中带有恶意文件的EXE安装程序。
为了成功伪装,我针对通话内容进行了一番练习,测试了PDF和EXE文件,并且打开谷歌地图找到了多明戈餐厅的位置以备通话中可能谈到。准备好用来接收受害者反馈信息的电脑后,一切工作准备就绪。
大约下午4点,我拨通了电话,因为通过公司网站我发现该公司周五下午4:30下班。由于以前与他洽谈审计事宜的不是我,而是我的搭档,所以CEO听不出我的声音。
“你好,请问查尔斯·琼斯先生在吗?”
“请稍等。”电话那头的声音有些疲惫,并且该人马上为我转接。
“你好,我是恰克。”
“你好,琼斯先生,我是美国癌症研究会的托尼。我们正在进行一项年度资金募集活动,筹得的资金将用于支持癌症研究,目前不管男女老幼都在饱受癌症的折磨。”
“请叫我恰克。”他打断了我。
这是一个好兆头,因为他并没有以现在很忙等借口挂断我的电话,并且在对话中融入了个人色彩。我继续说道:“恰克,谢谢你。我们正在进行一项募款活动,联系的是原先捐过款的单位,这次是50~150美元的小额捐款。为此,我们为捐款的好心人设置了包含两项大奖的抽奖机会,抽中的话会赢得两张纽约大都会比赛的门票以及一顿免费的双人晚餐,有三家餐厅可供选择。本次抽奖一共会产生5位幸运者。”
“大都会比赛,真的?”
“是的。也许你对大都会的比赛不感兴趣,但餐厅还是非常棒的。”
“不,不,我喜欢大都会,我会那么问是因为我太高兴了。”
“好的,请考虑一下。你不仅能帮助癌症研究,还有机会观看精彩的比赛,而且还能在莫顿、巴塞尔和多明戈三家餐厅中选择一家免费就餐。”
“多明戈!真的?我喜欢这家餐厅。”
“哈,那太好了。你知道我前几天第一次去那,那儿的蘑菇鸡肉真是棒极了!”这是他第三大爱的菜。
“哦,那不算什么,你应该尝尝法式菠萝,那是那家餐厅最棒的菜,我每次去都点它。”
“我周末会再去那,一定要试试。谢谢你的推荐。现在时间也不早了,我不是来要钱的,也不能从电话里拿走钱。我会发一个PDF文件给你,你可以看看,如果感兴趣的话,填一下表格,然后随支票一起发过来就可以了。”
“好啊,发过来吧。”
“好的,还有几个问题,你的邮箱地址是?”
“chuck.jones@公司名.com。”
“如果可以的话,请打开PDF阅读器,单击‘帮助’菜单上的‘关于’,然后告诉我版本号。”
“稍等,版本是8.04。”
“很好,我可不想发一份你打不开的文件。稍等不要挂,我现在就发过去。好了,发过去了。”
“好的,谢谢。真希望我是幸运儿,我太喜欢那家餐厅了。”
“我知道,那儿的菜的确不错。在挂电话之前,你能检查一下邮箱,看看邮件是否收到了吗?”
“好的,我5分钟后就要注销了,不过还能查看。是的,收到了。”当听到双击的声音,我开始检查运行于我的BackTrack电脑上的恶意负载侦听程序Meterpreter,它正在响应。我屏住呼吸(这部分从来不会无聊),砰地一声命令行界面出现了。Meterpreter脚本的属主信息改变了,类似于Explorer.exe。
恰克嚷道:“啊,我黑屏了,不能动了。”
“真的吗?真是奇怪了。让我检查一下。”我真正查看的是我是否能访问他的硬盘,并且立刻上传反向命令行,这在他关机重启后还能运行。我说:“很抱歉,我不知道怎么会这样。你能再等我几分钟吗?”
“好的,我去洗洗咖啡杯,离开会儿,不挂电话。”
“好的,谢谢。”这段时间足够我确保下次还能进入他的计算机系统了。很快,他回来了。
“我回来了。”
“恰克,这真让人尴尬,但我不清楚发生了什么。我不想耽误你的时间,要不你先回去,我重新做一个PDF文件再发邮件给你。我们周一再联系。”
“好,没问题。周末愉快!”
“你也是,恰克。”
挂断电话后,令我吃惊又惊喜的是,他的电脑没有关机,并且处于活动状态。是的,他将一切保存在了安全的硬盘中,而且只有他有权访问,不过全都保存在了Word中。我立即开始下载那些Word文档,几个小时后我访问了服务器,打印出他想保护的所有内部工作流程。
我在周一早上联络了他,但不是以基金募集者托尼的身份,而是以安全咨询专家的身份,而且携带了包含他的“秘密”和密码的打印文件,还有与他及其员工的通话录音。
成功攻击后,与客户第一次会面时,他们往往大为震惊,并且会宣称我们使用了不道德的策略,利用人性弱点实现入侵。当我们解释说恶意分子会使用同样的战术时,他们由愤怒变为恐惧,最后会表示理解。
3、社会工程框架的运用
与之前的案例类似,我们将本案例与社会工程学框架结合,分析该攻击的精彩之处,以及哪些部分还有待改进。
像往常一样,信息搜集是社会工程的关键,在这个案例中也是一样。信息搜集有很多渠道——网站、Maltego及电话等,这些是成功攻击的基础。信息不足将会导致悲惨的失败。
恰当而丰富的信息关系重大,甚至是我不需要的信息,类似他去的教堂、他父母和兄弟姊妹的名字,都在信息收集的范围之中。这些都是以防万一,有备无患,但是邮件地址的惯用格式以及用Maltego找到的服务器上的文件却是非常宝贵的关键信息,正是这些信息为我打开了入侵该公司的大门。
将搜集到的信息分门别类地保存到BasKet或Dradis中,方便随时使用信息也很重要。相反,包含一大堆信息的文本文件会很难利用。信息整理与信息搜集是同等重要的。
像坏人一样思考(尝试挖掘并利用目标的弱点和欲望)并非工作的关键,但是如果专业的审计人员想要保护他的客户,他将会竭尽全力地去证实其客户有多么脆弱。搜集的信息越多,就越容易发现漏洞。这就是通向成功的道路。
增强伪装的真实性和设计话题有助于攻击的成功。你必须提出有力的问题并抓住关键点来吸引目标的注意。通过搜集大量的信息,我能提出有效的问题并制定一个涉及关键词和神经语言程序学用语的框架,这会大大提高战术影响力的威力,确保攻击的成功。
我不得不经常更换伪装,以员工的身份打电话给公司的供应商,再以供应商的身份打电话给内部员工以获得更多的信息。我必须仔细地准备每个身份,进入角色,这样才能在实战中应对自如。这当然需要很多时间的谋划,以确保每个伪装都合理、自然。
熟能生巧。在发起攻击前我和搭档反复练习。我必须确保PDF文件正常工作,攻击方法合理,还必须具备足够的知识,让所有目标都相信我。
人们常常不理解练习的重要性。练习能使我们弄明白什么策略可行、什么策略不可行,并且确保计划顺利开展和实施,甚至在出现意外的情况下也能从容应对。
之后,我发现做一些小小的改进会让这次攻击变得更有效率。首先,仅仅依靠恶意PDF文件是存在风险的,我会建立一个小网站,模拟真实的癌症研究网站,并把PDF文件上传上去。网站和PDF文件都可以包含恶意代码。这样,成功的几率就增加了一倍,其中一个失败了还能有个后备。
另一个更大的风险是CEO离开办公室后还开着电脑。如果他不这么做,我就必须等到下周一才能继续尝试访问。我应该先发给他一份包含恶意代码的PDF文件,待该文件攻击他的电脑后,再发一份“真实的PDF文件”让他阅读。这样他就会在电脑前停留足够长的时间,也好让我有时间利用漏洞进行攻击。
在这次审计中,我花费了大约一个星期的时间去调查、搜集、整理信息以及练习,最后才发起攻击。一个星期的时间,该公司的机密就可能落入了竞争对手或者更高的出价者手中。多读几遍这个故事,体会其中使用的微妙的方法以及对话方式。书面形式很难体现声音、音调和对话节奏,你要试着想象,如果自己处于这些对话场景,将用什么方式处理。
例2:主题乐园丑闻
对我来说,主题乐园丑闻是个很有趣的案例,因为它涉及一些现场测试。在这个案例中运用了许多社会工程技巧,这是一场对理论的实战检验。
第二个原因是其本身的商业性质和骗局成功的可能性。如果成功了,社会工程人员可以获取上千个信用卡账号。
1、目标
本次攻击的目标是检测某主题乐园票务系统的安全性。在登记顾客购票信息时,每个计算机终端都会与后台服务器端的客户信息和金额记录建立连接。主题乐园想看看攻击者能否运用恶意的方式使工作人员采取某种行动从而造成危害。
我的目的不是找工作人员的麻烦,而是为了证明工作人员进行票务登记的计算机被入侵时会带来什么安全危害。此外,我不会采用黑客技术入侵计算机,而是要应用社会工程学方法。
如果这样的入侵发生了,后果会怎么样呢?会泄露什么样的数据?哪些服务器会遭受入侵?但他们并不想考虑得如此深入,只想看看第一阶段,即社会工程入侵是否真能实现。
为了弄清社会工程入侵是否可能,我必须先弄清乐园的售票操作流程,以及工作人员在终端上将会做什么、不会做什么,更重要的是,他们有权做什么、无权做什么。
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。”(我知道这个密码很糟糕,但是紧要关头的一点警告也无伤大雅。)
几分钟过后,缇娜双击了PDF文件,然后电脑黑屏了。“你在开玩笑吗?或者我哪里操作错了吗?哇,现在我肯定要得‘年度最烂老爸奖’了。”
“你知道怎么回事吗,先生?我感到十分抱歉,要不然你购买成人票,我让孩子免费进去。”
“哦,你真是太慷慨了。”我微笑着给了她50美元,谢谢她的所有帮助,然后让她退出了我的邮箱。就当我女儿因进入乐园而感到喜悦的同时,主题乐园的系统也被入侵了。
几分钟过后,搭档发短信告诉我,他已经“进入”并且“收集”了报告所需的数据。几个小时的娱乐过后,我们离开了乐园,回去完成了周一会议所使用的报告。
3、社会工程框架的运用
正如本案例中所展示的,信息收集不仅可基于网络,还可以亲自到现场收集。这个案例中的大量信息就是我去现场亲自采集的。找到他们所使用的计算机系统、了解目标对特定问题的反应及查出票务系统的运作方式是本次信息收集的主要内容。
这次攻击中最重要的一点是,好的伪装不仅仅是编造一个故事、装扮一下造型、假冒一下口音,而是可以毫不费力地“设身处地”。
在这个场景中,我能自如地把握父亲的口吻、动作和谈吐,因为我就是一个父亲。我对获得“年度最烂老爸奖”的担心是真实的而不是假装的,我的感情是真挚的,所以会让目标觉得我是真心的。这一切让我的言行更加可信。
当然,有一个可爱的孩子站在远处,用渴望的眼神望着售票员,以及酒店打印机坏掉的情节也十分可信。有时社会工程人员需要提升伪装能力,或者至少是个说谎能手,但我相信实际上不止这么简单。
从专业角度来看,伪装需要创建一个现实的、能操纵目标感情和行为的角色。人们通常不会被一些简单的谎言所蒙骗。一名社会工程人员必须“就是”那个伪装的角色,所以选择与你生活贴近的角色是一个不错的主意。
“免费试用PDF软件”这个借口存在很大的漏洞。这个借口本身是没问题的,但是可能会被立即拒绝从而影响下一步的攻击。还有一个侥幸就是售票员所使用的PDF阅读器版本和公司所使用的一样,没有升级,这才让我有机会入侵。
通常,我认为利用人类固有的惰性就是一场赌博,但是在这个案例中我成功了。有时候最好的办法就是相信自己提出的要求是理所应当的。这能让你感到自信,让目标相信你的言行是正当合理的。
使用类似“我真的需要你的帮助……”这样句子,是一个非常好的技巧。乐于助人是人类的天性,特别是当别人开口请求时。
即使是完全陌生的人,在面对请求时也会竭尽全力地给予帮助,就像此案例中从别人的电子邮箱中打开一个未知文件。帮助一个“可怜的父亲”,让他可爱的女儿进入乐园,这样一个请求却导致公司系统被入侵。
一旦入侵成功,存储所有客户的信用卡信息的程序就会成为攻击者的猎物。轻松收集一些数据,就可能让乐园蒙受巨额损失、面临诉讼以及陷入困窘。
微信公众号:计算机与网络安全
ID:Computer-network
【推荐书籍】