社会工程学是利用人性弱点体察、获取有价值信息的实践方法,它是一种欺骗的艺术。在缺少目标系统的必要信息时,社会工程学技术是渗透测试人员获取信息的至关重要的手段。对所有类型的组织(单位)而言,人都是安全防范措施里最薄弱的一环,也是整个安全基础设施最脆弱的层面。人都是社会的产物,人的本性就是社会性,所以人都有社会学方面的弱点都易受社会工程学攻击。社会工程学的攻击人员通常利用社会工程学手段获取机密信息,甚至可以造访受限区域。社会工程学的方式多种多样,而且每种方法的效果和导向完全取决于使用人员的想象能力。本章将阐述社会工程学核心原则,并会介绍专业的社会工程攻击人员用其操纵他人或挖掘信息的实例。
本章分为以下几个部分:
● 透过心理学的基本原理,带领读者大致了解社会工程学的手段和目标。
● 通过几个真实的例子,演示社会工程学的攻击过程及使用方法。
从安全角度来看,社会工程学是以获取特定信息为目标的操纵他人的有力武器。很多单位都使用社会工程学的方法进行安全评估,以考核雇员的安全完整性,并通过这种方法调查工作流程和人员方面的安全弱点。需要注意的是,社会工程学是种很常见的技术,可以说各种人员都会使用这种技术。无论是渗透测试人员,还是诈骗专家、身份窃贼、商业合作伙伴、求职人员、销售人员、信息经纪人、电话推销员、政府间谍、心怀不满的员工,甚至日常生活中的孩童都会使用这种技术,只是他们的动机不同而已。
8.1 人类心理学建模
人类的心理取决于感官的输入。感官的作用是形成对现实的感知。按照感官对自然现象的识别作用来划分,人的感官可分成视觉、听觉、味觉、触觉、嗅觉、平衡和加速、温度、动觉、疼痛感和方向感的感官。人类正是利用、发展他们的这些感官的功能,得以感知外部世界。站在社会工程学的立场,任何通过显性感觉(视觉或听觉)、眼晴的动作(眼神接触、口头上的差异、眨眼频率或眼睛暗示)、面部表情(惊喜、幸福、恐惧、悲伤、愤怒或厌恶)和其他抽象实体进行观察或感觉收集到的信息,都可增加成功获取目标信息的概率。大多数情况下,社会工程学工程师必须直接与目标进行沟通,才能获取机密信息或受限区域的访问权。沟通形式可以是直接见面的接触方式,也可以是通过电子辅助技术进行的不见面接触方式。在实际工作中,常见的沟通方式分为两类:面谈或问询。但是,这两种方法都受到其他因素的制约,例如环境因素、对目标的熟悉程度和控制沟通模式的能力。所有这些因素(沟通、环境、知识和沟通模式控制)构成社会工程学工程师必备的基本技能。整个社会工程学活动取决于攻击者与目标之间的信任关系。如果不能与目标建立足够的信任关系,则所有的努力都可能付之东流。
现在,社会工程学已经形成了一门独立学科。有关社会工程学框架(Social Engineering Framework)的详细信息,请访问作者的官方网站:http://www.social-engineer.org/。Christopher Hadnagy 运营着这个网站,并且发布了社会工程学领域的各种研究成果。他将这些信息向公众开放,以便于他人继续研究社会工程学攻击的具体方法。如果需要对用户进行安全培训,可参考有关资料。
8.2 攻击过程
本节将介绍一些发动社会工程学攻击的基本步骤。虽然这不是社会工程学攻击的唯一方法,甚至可以说没有成功率高的正式方法,但是本文的这些步骤可帮助您形成社会工程学的基本认识。情报收集、识别漏洞、规划攻击和执行攻击——社会工程学工程师通常都会采用这些某本步骤,它们可有效获取目标的有关信息或访问权限。
1. 情报收集:多种技术都可用于找到最容易攻破的渗透测试目标。例如,我们可采用髙级搜索工具收集被测公司员工的E-mail地址;通过社交网络收集被测单位员工的个人信息;识別被测单位组织使用的第三方软件包;参与他们的经营活动、社交活动和参加其会议等。以这些方式提供的情报,能够准确地推测出社会工程学意义上的“线人”。
2. 识别漏洞:一旦选定了关键线人,接下来就开始与对方建立信任关系和友谊。这样就可以在不伤害、不惊动目标的情况下,截获被测单位的机密信息。保持行动的隐蔽性和保密性,对于整个过程来说至关重要。另外,也可以调査被测单位是否使用了旧版本软件,继而通过恶意的E-mail或Web内容,利用软件漏洞感染当事人的计算机。
3. 规划攻击:您可以对目标采取直截了当的攻击方式,也可以利用电子辅助技术被动地攻击目标。以这些挖掘出来的情报入口着手,我们可以轻松地拟定攻击路径和攻击方法。例如,被测单位的客户服务代表Bob和我们的关系很好,他还信任我们;他就可能在计算机上执行我们发送的E-mail附件,而这种攻击不需要高级管理人员的任何事前授权。
4. 执行攻击:社会工程学攻击的最后一步是执行攻击计划。此时,我们应该保持足够的信心和耐心,主动监控和评估工作成果。完成这一步之后,社会工程学工程师掌握了充分信息,甚至可以访问被测单位的内部系统,这些成果足以让他们进一步地渗透被测单位。在成功执行攻击计划之后,社会工程学的攻击就可宣告结束。
8.3 攻击方法
社会工程学中,有5种有助于理解、识别、结交、准备目标的攻击方法。社会工程学按照它们的特点,将它们进行了归类。本节介绍了一些真实的案例,以帮助读者在实际情况中灵活运用各种所需方法。请注意这些攻击方法针对的是个人的心理学因素,要想提高这些方法的效用,就应该进行定期的训练和练习。
8.3.1 冒名顶替
攻击人员常常假装成他人以获取对方的信任。例如,在获取目标人员的银行信息方面,只要目标人员使用 E-mail,我们就可以进行钓鱼攻击。这种攻击属于近乎完美的攻击方案。当决定使用钓鱼攻击之后,攻击人员要大量地收集目标人员用过的 E-mail 地址,然后伪造出与原银行界面一样的网页界面,以诱骗目标人员。
完成了以上准备之后,攻击人员会草拟并发送一份正式行文的E-mail(例如,银行账户更新通知)。这些E-mail看上去就像真正银行发出来的邮件,要求目标人员访问某网址更新账户信息。不过,邮件提到的网址将把目标人员提交的信息转发给攻击人员。攻击人员事先掌握了特定的 Web 技术,他们使用多种先进的工具(例如 SSLstrip)就可以通过自动化手段轻松有效地达成预定任务。与那些借助他人帮助的欺骗方法相比,这种方法通过模拟银行业务的手段可直接达成冒名顶替的目的。
8.3.2 投桃报李
通过利益交换的方式达成双方各自利益的行为,被称为投桃报李。这类攻击需要长期业务合作达成的非正式(私人)关系。利用公司之间的信任关系,可以轻松地找到可获取特定信息的目标人员。例如Bob是一个专业黑客,他想知道ABC公司办公大楼的物理安全策略。进行仔细考察之后,他决定制作一个廉价销售古玩的网站,以吸引两名雇员的关注。Bob 可事先通过社交网站掌握这两人的个人信息,了解他们的 E-mail 地址、网络论坛等资料。在这两人之中,Alice在Bob的网站上定期采购商品,成为了Bob的主要目标。Bob决定要以一件稀有古董换取她们公司的内部文件。利用人类心理学因素,他将向Alice发送了E-mail,以转让这件稀有古董为筹码,要求Alice提供ABC公司的物理安全策略。在混淆了工作责任和个人利益的状态下,Alice把公司信息透露给了Bob。在创建骗局的同时,通过价值交换的事情强化私人关系,可成为社会工程学攻击的有效手段。
8.3.3 狐假虎威
冒充目标单位业务负责人的身份从而干预正常业务的做法就是狐假虎威。有些人认为,这种攻击方法属于冒名顶替的一种特例。人们会出于本能下意识地接受权威和髙级管理人员的指示,这个时候他们会无视自己否定性的直觉。这种天性使我们容易在特定的威胁面前毫无抵抗力。例如,某人要通过XYZ公司的网络管理员获取网络认证的技术细节。经过一段时间的专注分析,他可以通过利益交换方法获得网络管理员和CEO的电话号码。后来,他使用来电号码的伪造服务(例如,www.spoofcard.com)给网络管理员打电话。此时,网管会认为该电话来自CEO,将遵从攻击人员的指示。这种假冒权威人员身份的狐假虎威的做法,利用了目标人员必须遵从公司高级管理人员指示的规律,诱导目标人员泄露信息。
8.4 啖以重利
人们常说“机不可失”,他们特别关注所谓机不可失的宝贵机会。这些想法都是人性贪婪一面的写照。啖以重利的方法利用了人们渴求谋利机会的贪婪心理。著名的 Nigerian 419 Scam(www.419eater.com)是利用人类贪欲的典型例子。让我们举一个例子,Bob想要收集XYZ大学里学生的个人信息。在他获取所有学生的E-mail地址的情况下,他可以向学生们发送邮件并宣告:提供个人信息(姓名、地址、电话、电子邮件、出生日期、护照号码等)将免费获赠 iPod。由于这个创意专门针对在校学生设计,而且足以使他们确信能够免费获得最新的 iPod,所以多数的在校学生会落入这个骗局。在企业界,相应的攻击方法通常鼓吹可以获得最大商业收益,达成业务目标。
8.5 社会关系
作为人,我们需要某种形式的社会关系,以分享思想、感情和想法。社会关系最易受攻击的部分是“性”。多数情况下,异性总是互相吸引。由于这种强烈的感情和信任的错觉,人们可能在不意间向对手透露信息。很多线上的社交门户网站都提供了见面和聊天的服务,以促进用户间的社会交际。Facebook、MySpace、Twitter、Orkut 等网站都是如此。例如, XYZ公司聘请了Bob,要他获取ABC公司财务策略和市场营销战略以保持自身的竞争优势。他首先査找对方公司的雇员信息,发现 ABC 公司负责所有业务运营的人是一个叫作 Alice的女孩。因此,他假装是一个普通的工商学的研究生,试图与Alice取得联系(例如,通过Facebook)。后来,Bob 蓄意营造遇见 Alice 的机会,共同出席聚会、年庆活动,一同造访舞厅、音乐厅等地方。通过在见面期间的攀谈,Bob自然而然地获取到ABC公司有用的财务和市场策略信息。请记住,达成的关系越有效,越信任,就越有利于社会工程学工程师达到目标。在信息安全方面还有很多简化这些操作的工具。下一小节将会介绍的SET工具就是典型的社会工程学工具。
8.6 Social Engineering Toolkit(SET)
Social Engineering Toolkit(SET)是一款先进的多功能的社会工程学计算机辅助工具集。它由 TrustedSec(https://www.trustedsec.com)的创始人编写,可以行之有效地利用客户端应用程序的漏洞获取目标的机息(例如E-mail密码)。SET可实现多种非常有效且实用的攻击方法。其中,人们常用的方法有:用恶意附件对目标进行E-mail钓鱼攻击、Java applet 攻击、基于浏览器的漏洞攻击、收集网站认证信息、建立感染的便携媒体(USB/DVD/CD)、邮件群发攻击及其他类似攻击。它是实现这些攻击方法的合成攻击平台。充分利用这个程序的极具说服力的技术,可对人的因素进行深入测试。
如需启动SET,可在桌面菜单中依次选中Applications | Kali Linux | Exploitation Tools | Social Engineering Toolkit | setoolkit。
或者在终端中加载SET程序。
root@kali:~# setoolkit
上述指令将显示如下选项(见图8.1)。
本例将演示通过恶意PDF附件发起钓鱼攻击的方法。在收件人打开附件时,他们的主机将被攻陷。
不要使用SET工具集自带的更新功能更新SET程序包。您应该使用Kali Linux 系统的更新功能,以获取SET 软件的更新。
图8.1
定向钓鱼攻击
如果采用这种攻击方法,我们就要首先创建一个配合恶意PDF附件的E-mail模板,再选择适当的PDF exploit payload,然后设置攻击平台与目标主机之间的连接关系,最后通过Gmail向目标发送这封E-mail。需要注意的是,您可以通过Kali Linux自带的sendmail程序伪造原始发件人的 E-mail 地址和 IP 地址。Sendmail 的配置文件是/usr/share/set/config/set_config。有关程序的详细信息,请参考Social Engineer Toolkit(SET)的官方说明:http://www.social-engineer.org/framework/Social_Engineering_Framework。
这种攻击方法的具体步骤如下。
1. 在SET 程序的最初菜单里选择1,进入图8.2 所示的设置界面。
2. 我们选择1,即Spear-fishing Attack Vectors,然后进入图8.3 所示的设置界面。
3. 在上述选项中,我们必须选择 3,创建社会工程学邮件的模板。然后,我们书写邮件正文,如图8.4所示。
图8.2
图8.3
图8.4
4. 虽然我们在上一步里写好了邮件的正文,但是并没有设置邮件的格式。模板生成程序会把您编辑的内容当作模板的一部分套用格式模板。在编辑完正文之后,使用Ctrl+C键返回上级菜单。然后,进行E-mail攻击的有关设置。我们从Perform a Mass Email Attack菜单里选择1,再选择6,即Adobe CoolType SING Table“uniqueName”Overflow选项,如图8.5所示。
图8.5
5. 接下来设置payload 类型。本例应该选择6,即Windows reverse TCP shell。然后设置目标主机应当连接到的攻击平台(通常是Kali Linux 主机)的IP 和端口。本例假设攻击平台的IP地址是192.168.1.1,服务端口是5555。我们进行相应设置,如图8.6所示。
6. 然后我们更改文件名,以使文件名称引人注目。我们把 payload 的文件名改成了BizRep2010.pdf。然后,我们要让SET知道它要如何处理我们的payload。我们选择 1,向单个 E-mail 地址发送 payload;然后再选择 1,使用先前编辑好的邮件模板。现在,您的屏幕大体会是图8.7所示的这种情况。
图8.6
图8.7
7. 接下来,我们选择先前创建的 E-mail 模板(11)。这样,SET 将在后续的社会工程学攻击里重复利用这个模板。您创建的模板的质量,很大程度上决定了钓鱼战役的实际效果。然后,我们使用有效的E-mail中转服务器或Gmail账户向目标人员发送攻击性E-mail。
只有在测试条款里存在相应测试内容且客户明确理解测试内容的情况下,您才可以进行这种攻击测试。SET工具把感染文件发送给E-mail收件人,这种行为可能会引发法律问题。您需要参照发起测试地区的当地法律文件了解有关的法律规定。一旦您在SET中设置了E-mail信息,它就会立即建立连接发送文件。程序会在没有任何警告或提示的情况下直接发送E-mail。
8. 至此,我们已经向目标发起了攻击。现在我们等待受害人打开我们的恶意PDF 文件。在他/她打开PDF附件的时候,我们将通过反射shell连接到被害人电脑的shell。请注意,我们配置的 IP 地址 192.168.1.1 是攻击人员主机的 IP 地址(也就是Steven电脑的IP),它在5555端口受理被害人电脑反射shell返回的连接。
通过上述步骤,我们就完成了向目标发起社会工程学攻击的操作,并可远程访问被害人的主机。我们可在shell的交互式提示符下执行Windows命令。
SET 可同时对一人或多人进行电子邮件的钓鱼攻击。它整合了可定制的 E-mail 功能,便于社会工程学工程师制定安全的攻击路线。这种功能可在攻击多个公司员工的同时保持攻击的隐蔽性。
SET 的作者不断地更新着这个程序,以适应当前技术的剧烈变化。不过,它的功能可见一斑。本书强烈建议读者访问作者的网站,继续领略 SET 的风采。它的官方网站是https://www.trustedsec.com/downloads/social- engineer-toolkit/。
8.7 本章总结
在本章中,我们阐述了社会工程学在生活中各领域的常见用法。渗透测试人员可以根据实际情况采取相应的社会工程学策略,获取目标的敏感信息。人性本身非常容易受到这种技术的欺骗攻击。为了全面介绍社会工程学的技巧,本文讨论了构成人类心理学模型的几个因素,这些因素包括沟通、环境、知识和沟通模式控制。这些心理学原则可帮助攻击人员根据被测目标的实际情况,拟定适用的攻击过程(情报收集、确定漏洞点、规划攻击和执行攻击)和攻击方法(冒名顶替、投桃报李、狐假虎威、啖以重利和社会关系)。随后,我们演示了 SET 的使用方法,它具有在线进行自动化社会工程学攻击的强大功能。