◆ 会工程学:如果目标 络没有直接的入口,欺骗的艺术将起到抛砖引玉的重要作用。对目标组织中的人员进行定向攻击,很有可能帮助我们找到渗透目标系统的入口。例如:诱使用户运行会安装后门的恶意程序。 会工程学渗透分为多种不同形式,伪装成 络管理员,通过电话要求用户提供给自己的账户信息,发送钓鱼邮件来劫持用户的银行账户,甚至是诱使某人出现在某个地点。
会工程学是利用人性弱点体察、获取有价值信息的实践方法,它是一种欺骗的艺术。在缺 少目标系统的必要信息时, 会工程学技术是渗透测试人员获取信息的至关重要的手段。对 所有类型的组织(单位)而言,人都是安全防范措施里最薄弱的一环,也是整个安全基础设 施最脆弱的层面。人都是 会的产物,人的本性就是 会性,所以人都有 会学方面的弱点 都易受 会工程学攻击。 会工程学的攻击人员通常利用 会工程学手段获取机密信息,甚 至可以造访受限区域。 会工程学的方式多种多样,而且每种方法的效果和导向完全取决于 使用人员的想象能力。本章将阐述 会工程学核心原则,并会介绍专业的 会工程攻击人员 用其操纵他人或挖掘信息的实例。
本章分为以下几个部分:
● 透过心理学的基本原理,带领读者大致了解 会工程学的手段和目标。
● 通过几个真实的例子,演示 会工程学的攻击过程及使用方法。
从安全角度来看, 会工程学是以获取特定信息为目标的操纵他人的有力武器。很多单位都 使用 会工程学的方法进行安全评估,以考核雇员的安全完整性,并通过这种方法调查工作 流程和人员方面的安全弱点。需要注意的是, 会工程学是种很常见的技术,可以说各种人 员都会使用这种技术。无论是渗透测试人员,还是诈骗专家、身份窃贼、商业合作伙伴、求 职人员、销售人员、信息经纪人、电话推销员、政府间谍、心怀不满的员工,甚至日常生活 中的孩童都会使用这种技术,只是他们的动机不同而已。
类心理学建模
人类的心理取决于感官的输入。感官的作用是形成对现实的感知。按照感官对自然现象的识 别作用来划分,人的感官可分成视觉、听觉、味觉、触觉、嗅觉、平衡和加速、温度、动 觉、疼痛感和方向感的感官。人类正是利用、发展他们的这些感官的功能,得以感知外部世 界。站在 会工程学的立场,任何通过显性感觉(视觉或听觉)、眼晴的动作(眼神接触、 口头上的差异、眨眼频率或眼睛暗示)、面部表情(惊喜、幸福、恐惧、悲伤、愤怒或厌 恶)和其他抽象实体进行观察或感觉收集到的信息,都可增加成功获取目标信息的概率。大 多数情况下, 会工程学工程师必须直接与目标进行沟通,才能获取机密信息或受限区域的 访问权。沟通形式可以是直接见面的接触方式,也可以是通过电子辅助技术进行的不见面接 触方式。在实际工作中,常见的沟通方式分为两类:面谈或问询。但是,这两种方法都受到 其他因素的制约,例如环境因素、对目标的熟悉程度和控制沟通模式的能力。所有这些因素 (沟通、环境、知识和沟通模式控制)构成 会工程学工程师必备的基本技能。整个 会工 程学活动取决于攻击者与目标之间的信任关系。如果不能与目标建立足够的信任关系,则所有的努力都可能付之东流。
strong>攻击过程
1. 情 收集:多种技术都可用于找到最容易攻破的渗透测试目标。例如,我们可采用髙级搜 索工具收集被测公司员工的E-mail地址;通过 交 络收集被测单位员工的个人信息;识別被 测单位组织使用的第三方软件包;参与他们的经营活动、 交活动和参加其会议等。以这些 方式提供的情 ,能够准确地推测出 会工程学意义上的“线人”。
2. 识别漏洞:一旦选定了关键线人,接下来就开始与对方建立信任关系和友谊。这样就可以 在不伤害、不惊动目标的情况下,截获被测单位的机密信息。保持行动的隐蔽性和保密性, 对于整个过程来说至关重要。另外,也可以调査被测单位是否使用了旧版本软件,继而通过 恶意的E-mail或Web内容,利用软件漏洞感染当事人的计算机。
3. 规划攻击:您可以对目标采取直截了当的攻击方式,也可以利用电子辅助技术被动地攻击 目标。以这些挖掘出来的情 入口着手,我们可以轻松地拟定攻击路径和攻击方法。例如, 被测单位的客户服务代表Bob和我们的关系很好,他还信任我们;他就可能在计算机上执行我 们发送的E-mail附件,而这种攻击不需要高级管理人员的任何事前授权。
4. 执行攻击: 会工程学攻击的最后一步是执行攻击计划。此时,我们应该保持足够的信心 和耐心,主动监控和评估工作成果。完成这一步之后, 会工程学工程师掌握了充分信息, 甚至可以访问被测单位的内部系统,这些成果足以让他们进一步地渗透被测单位。在成功执 行攻击计划之后, 会工程学的攻击就可宣告结束。
span style=”color:#00b050;”>攻击方法
会工程学中,有5种有助于理解、识别、结交、准备目标的攻击方法。 会工程学按照它们 的特点,将它们进行了归类。本节介绍了一些真实的案例,以帮助读者在实际情况中灵活运 用各种所需方法。请注意这些攻击方法针对的是个人的心理学因素,要想提高这些方法的效 用,就应该进行定期的训练和练习。
● 冒名顶替
攻击人员常常假装成他人以获取对方的信任。例如,在获取目标人员的银行信息方面,只要 目标人员使用 E-mail,我们就可以进行钓鱼攻击。这种攻击属于近乎完美的攻击方案。当决 定使用钓鱼攻击之后,攻击人员要大量地收集目标人员用过的 E-mail 地址,然后伪造出与原 银行界面一样的 页界面,以诱骗目标人员。
完成了以上准备之后,攻击人员会草拟并发送一份正式行文的E-mail(例如,银行账户更新通 知)。这些E-mail看上去就像真正银行发出来的邮件,要求目标人员访问某 址更新账户信 息。不过,邮件提到的 址将把目标人员提交的信息转发给攻击人员。攻击人员事先掌握了 特定的 Web 技术,他们使用多种先进的工具(例如 SSLstrip)就可以通过自动化手段轻松有 效地达成预定任务。与那些借助他人帮助的欺骗方法相比,这种方法通过模拟银行业务的手 段可直接达成冒名顶替的目的。
●投桃 李
通过利益交换的方式达成双方各自利益的行为,被称为投桃 李。这类攻击需要长期业务合 作达成的非正式(私人)关系。利用公司之间的信任关系,可以轻松地找到可获取特定信息 的目标人员。例如Bob是一个专业黑客,他想知道ABC公司办公大楼的物理安全策略。进行仔 细考察之后,他决定制作一个廉价销售古玩的 站,以吸引两名雇员的关注。Bob 可事先通 过 交 站掌握这两人的个人信息,了解他们的 E-mail 地址、 络论坛等资料。在这两人之 中,Alice在Bob的 站上定期采购商品,成为了Bob的主要目标。Bob决定要以一件稀有古董 换取她们公司的内部文件。利用人类心理学因素,他将向Alice发送了E-mail,以转让这件稀 有古董为筹码,要求Alice提供ABC公司的物理安全策略。在混淆了工作责任和个人利益的状 态下,Alice把公司信息透露给了Bob。在创建骗局的同时,通过价值交换的事情强化私人关 系,可成为 会工程学攻击的有效手段。
●狐假虎威
冒充目标单位业务负责人的身份从而干预正常业务的做法就是狐假虎威。有些人认为,这种 攻击方法属于冒名顶替的一种特例。人们会出于本能下意识地接受权威和髙级管理人员的指 示,这个时候他们会无视自己否定性的直觉。这种天性使我们容易在特定的威胁面前毫无抵 抗力。例如,某人要通过XYZ公司的 络管理员获取 络认证的技术细节。经过一段时间的 专注分析,他可以通过利益交换方法获得 络管理员和CEO的电话 码。后来,他使用来电 码的伪造服务(例如,www.spoofcard.com)给 络管理员打电话。此时, 管会认为该 电话来自CEO,将遵从攻击人员的指示。这种假冒权威人员身份的狐假虎威的做法,利用了 目标人员必须遵从公司高级管理人员指示的规律,诱导目标人员泄露信息。
●啖以重利
人们常说“机不可失”,他们特别关注所谓机不可失的宝贵机会。这些想法都是人性贪婪一面的 写照。啖以重利的方法利用了人们渴求谋利机会的贪婪心理。著名的 Nigerian 419 Scam(www.419eater.com)是利用人类贪欲的典型例子。让我们举一个例子,Bob想要收集XYZ大学里学生的个人信息。在他获取所有学生的E-mail地址的情况下,他可以向学生们发送 邮件并宣告:提供个人信息(姓名、地址、电话、电子邮件、出生日期、护照 码等)将免 费获赠 iPod。由于这个创意专门针对在校学生设计,而且足以使他们确信能够免费获得最新 的 iPod,所以多数的在校学生会落入这个骗局。在企业界,相应的攻击方法通常鼓吹可以获 得最大商业收益,达成业务目标。
● 会关系
作为人,我们需要某种形式的 会关系,以分享思想、感情和想法。 会关系最易受攻击的 部分是“性”。多数情况下,异性总是互相吸引。由于这种强烈的感情和信任的错觉,人们可能 在不意间向对手透露信息。很多线上的 交门户 站都提供了见面和聊天的服务,以促进用 户间的 会交际。Facebook、MySpace、Twitter、Orkut 等 站都是如此。例如, XYZ公司 聘请了Bob,要他获取ABC公司财务策略和市场营销战略以保持自身的竞争优势。他首先査找 对方公司的雇员信息,发现 ABC 公司负责所有业务运营的人是一个叫作 Alice的女孩。因 此,他假装是一个普通的工商学的研究生,试图与Alice取得联系(例如,通过Facebook)。 后来,Bob 蓄意营造遇见 Alice 的机会,共同出席聚会、年庆活动,一同造访舞厅、音乐厅等 地方。通过在见面期间的攀谈,Bob自然而然地获取到ABC公司有用的财务和市场策略信息。 请记住,达成的关系越有效,越信任,就越有利于 会工程学工程师达到目标。在信息安全 方面还有很多简化这些操作的工具。下一小节将会介绍的SET工具就是典型的 会工程学工 具。
●Social Engineering Toolkit(SET)
Social Engineering Toolkit(SET)是一款先进的多功能的 会工程学计算机辅助工具集。它由 TrustedSec(https://www.trustedsec.com)的创始人编写,可以行之有效地利用客户端应 用程序的漏洞获取目标的机息(例如E-mail密码)。SET可实现多种非常有效且实用的攻击方 法。其中,人们常用的方法有:用恶意附件对目标进行E-mail钓鱼攻击、Java applet 攻击、 基于浏览器的漏洞攻击、收集 站认证信息、建立感染的便携媒体(USB/DVD/CD)、邮件 群发攻击及其他类似攻击。它是实现这些攻击方法的合成攻击平台。充分利用这个程序的极 具说服力的技术,可对人的因素进行深入测试。
如需启动SET,可在终端中加载SET程序。
root@kali:/span># setoolkit
上述指令将显示如下选项
本例将演示通过恶意PDF附件发起钓鱼攻击的方法。在收件人打开附件时,他们的主机将被 攻陷。
不要使用SET工具集自带的更新功能更新SET程序包。您应该使用Kali Linux 系统的更新功 能,以获取SET 软件的更新。
向钓鱼攻击
如果采用这种攻击方法,我们就要首先创建一个配合恶意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.socialengineer.org/framework/Social_Engineering_Framework。
这种攻击方法的具体步骤如下。
●1、在SET 程序的最初菜单里选择1,进入图8.2 所示的设置界面。
●2.、我们选择1,即Spear-fishing Attack Vectors,然后进入
●3.、在上述选项中,我们必须选择 3,创建 会工程学邮件的模板。然后,我们书写邮件正文
●5、接下来设置payload 类型。本例应该选择4,即Windows reverse TCP shell。然后设置目标 主机应当连接到的攻击平台(通常是Kali Linux 主机)的IP 和端口。本例假设攻击平台的IP地 址是192.168.198.130,服务端口是5555。我们进行相应设置
●6、然后我们选择选项2更改文件名,以使文件名称引人注目。我们把 payload 的文件名改成了fishing。
●7、接下来,我们选择先前创建的 E-mail 模板(1)
只有在测试条款里存在相应测试内容且客户明确理解测试内容的情况下,您才可以进行这种攻击测试。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 功能,便于 会工程学工程师制定安全的攻击路线。这种功能可在攻击多个公司员工的同时保持攻击的隐 蔽性。
strong>漏洞利用:在仔细检查和发现目标系统中的漏洞之后,就可以使用已有的漏洞利用程序对目标系统进行渗透,某些情况下不得不对漏洞利用程序(exploit)进行额外的研究和修改,,否则可能就无法正常工作。审计人员可以吧客户端漏洞利用程序和 会工程学进行结合,进而控制目标系统,这个阶段的主要任务是控制目标系统。整个流程分为三步,涉及利用前、攻击、攻击后的相关行动。
漏洞利用是渗透测试的一个环节。脆弱性评估不涉及漏洞利用的有关测试。在摸索出目标的漏洞之后,测试人员会验证并真刀真枪地利用目标系统的安全漏洞,以进一步了解目标 络和运营系统,获取更多信息,甚至掌握完全控制权。
◆漏洞检测
了解特定软件或特定硬件设备的功能,可能就是挖掘其潜在漏洞的第一步。检验漏洞并不容易,绝非是一蹴而就之事。检验人员必须具备扎实的知识基础,了解安全分析的各方面因素。漏洞检测所需的安全分析技能分为以下几种。
● 编程技能:这是称职的守法黑客必须具备的基础素质。掌握某种编程语言的基本原理和编程 方法,是安全测试人员检测程序漏洞的必备技能。除此之外,他还应当深入了解处理器、系统内存、缓冲区、指针、数据类型、寄存器和缓存等基础概念。无论是C/C++、Python、Pert 还是汇编语言,几乎所有编程语言的实现方式都与上述概念有关。根据现有漏洞编写exploit程 序的基本方法,请参阅http://www. phreedom.org/presentations/exploit-codedevelopment/exploit-code-development.pdf
● 逆向工程:漏洞挖掘工作同样依赖测试人员的逆向工程技能。这种技术分析程序的具体函数、数据结构和算法,可检测出电子设备、软件以及系统中潜藏的漏洞。逆向工程的反编译技术,可在事先不知道内部结构情况下逆向解析出程序的源代码,从而测试程序的错误条件、不完善的函数以及存在缺陷的协议,并能够测试程序的边界条件。专业的安全研究员都 具备很高的逆向工程实战能力。逆向工程可以用于去除软件的版权保护、安全审计、分析技 术竞争情 、侵权鉴定、研究软件的交互性、掌握程序的工作机制,甚至破获敏感数据。逆向工程为应用安全的概念增加了两个抽象层:源代码级审计(source code auditing)和二进 制(可执行程序)审计(binary auditing)。如果可以获取程序的源代码,审计人员可采用自 动或手动的方式分析源程序的安全问题,进而解析出可能触发漏洞的边界条件。另一方面, 虽然测试人员可以在没有源码的情况下进行二进制审计,不过这种审计的效果不如源代码审 计理想。二进制审计通常都会用到两种通用类型的辅助工具,即反汇编程序 (disassemblers)和反编译程序(decompilers)。反汇编程序可把编译后的二进制程序反汇编成汇编指令,而反编译器则把编译后的二进制程序反编译成高级程序语言的程序源代码。 然而,无论选用反汇编程序还是反编译程序,成功的逆向安全工作都离不开审计人员扎实的 技术实力和小心谨慎的评估态度。
●熟悉检测工具:检测漏洞的工作依赖各种调试器、数据挖掘器、模糊测试数据生成器、事件 检测器、代码覆盖分析器、流量分析器和内存监视器。对于检验漏洞的工作来说,漏洞检测 工具十分重要。它们同时还是测试项目的集成测试平台。虽然 Kali Linux收录了不少监测工 具,但是本书并不会详细讲解每款工具。如需持续关注逆向工具的最新动态,请访问在线的 络资料库:http://www.woodmann.com/collaborative/tools/index.php/Category : RCE_Tools。
● 构建exploit和payload的技术实力:利用漏洞的最后一步工序就是编写漏洞的PoC (Proof of Concept,概念验证)程序,即shellcode。这种程序旨在使渗透测试人员在远程目标主机 上执行自定义的指令。根据逆向工程阶段掌握的应用程序的具体缺陷,测试人员要编写验证漏洞的点睛之笔——shellcode程序。同时,他们还要防止shellcode存在缺陷,尽其所能地避免exploit(漏洞利用程序)出现崩溃问题。要让目标系统执行我们编写的程序或我们所要执行的指令,就应当针对漏洞的类型和类别拟定针对性的策略。为了获取目标操作系统的控制权,专业的渗透测试人员会尽力挖掘并综合 使用应用程序的各种安全缺陷。本章的后半部分将通过几个场景演示 Metasploit框架的使用方法和相关技术。
●漏洞和exploit资料库
请注意: 络上公开的漏洞信息并不涵盖全部已知漏洞。此外,虽然部分漏洞存在对应的 PoC exploit程序,但是并非所有的安全漏洞信息都有公开的PoC代码。在公开的漏洞信息 中,部分漏洞的描述信息甚至可谓是言之无物。因此,“要在研究漏洞时参考多个 上资源”已经成为了众多安全审计人员的共识。
本文仅罗列了部分 络资源。Kali Linux集成了由“Offensive Security”提供的资料库,可在您 的系统上保存exploit的所有漏洞记录,以便您日后参考和使用。如需查看Exploit-DB提供的资 料,可在主机的shell中执行下述指令。
#cd /usr/share/exploitdb/ vim files.csv
上述指令将列出Exploit-DB收录的所有exploit信息,即本机/usr/share/exploitdb/platforms/目 录下的文件清单和相关描述。Kali 以目标系统的类型对漏洞进行分类(Window、Linux、HPUX、Novell、 Solaris、BSD、IRIX、TRU64、ASP、PHP 等),并把各种exploit的源代码保 存在相应的子目录下。这些文件多数是C、Perl、Python、Ruby、PHP以及其他一些编程技 术开发的exploit 源代码。Kali Linux 已经收录了执行exploit 程序所需的编译程序和解释程 序。
如何从exploits信息中提取特定信息/span>
●漏洞利用程序工具集
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!