社会工程渗透测试教程(一)(2)

简介: 社会工程渗透测试教程(一)

社会工程渗透测试教程(一)(1)https://developer.aliyun.com/article/1508469

客户服务心态

员工是否接受过对社会工程学的脆弱性培训?至少在大多数企业中,特别是在像前台接待员或帮助台技术员这样的角色中,他们确实接受了帮助性的培训。如果员工接受了帮助性的培训,那么只要问题属于他们的专业领域,他们就会尽力解决你的问题。社会工程师善于利用这一点,向员工提出一个问题,解决这个问题很可能会在某种程度上帮助社会工程师。以下对话是一个例子:

呼叫中心 “早上好,易受攻击公司。我是莎拉,请问有什么可以帮您的?”
社会工程师 “早上好,莎拉,我叫杰克·马丁……线路似乎有点不清晰,你能听到我说话吗?”
呼叫中心 “先生,我能听到您说话的声音很清楚。”
社会工程师 “好的,我找对了帮助台吗?”
呼叫中心 “是的,先生,有什么可以帮忙的?”
社会工程师 “太好了,我刚刚和你们的主管谈话,但是我们之间的一个非常重要的对话中断了,现在我记不得他们的名字了。你能想到可能是谁吗?”
呼叫中心 “哦,好的,抱歉,那……好吧,可能是詹姆斯,你是说他吗?”
社会工程师 “不幸的是,我只记得他们的姓。”
呼叫中心 “詹姆斯·史密斯?”
社会工程师 “啊!是的!就是这个!我们在谈论一个你们同事,他一直,嗯,就是不太乐意帮忙的。听着,你能给我他的直拨号码吗,以防我再次在谈话中间被切断?”
呼叫中心 “当然可以,您应该可以联系到他……。”

这个例子展示了社会工程师如何利用员工渴望帮助的心态。这几乎不是一个复杂的社会工程攻击,只使用了最微妙的技巧。然而,它一次又一次地证明是有效的。前两个问题必然会得到“是”的回答,这是有意的。员工被巧妙地引导进了一个积极而愿意合作的心态,从而使第三个问题更有可能得到积极的回答。如果社会工程师立即询问主管的姓名和直拨号码,那么员工可能会不太响应。

一旦达到了愉快的心态,社会工程师就会提出问题。他们正在与主管进行重要的对话,但突然断线了,他记不起他们的名字。员工可以轻松解决这个问题,并使用一个明显的把戏透露全名。通过强调对话的重要性,社会工程师对员工施加了轻微的压力。社会工程师并没有直接询问人的姓名,而是提出了一个涉及姓名的解决方案。在帮助台员工的心目中,这两者之间存在很大的区别。最后,通过提出第二个问题,获得了直拨。他们一直在断线,所以希望能直接拨号回拨。同样,这个问题很容易解决。然后,社会工程师加入了一个关于通话性质的暗示,即有关同事的通话。这有望在帮助台员工中引起好奇心,增加他们愿意提供帮助的可能性。通过提出问题而不是直接要求信息,社会工程师利用了客户服务心态。只要社会工程师能够通过人员可以解决的问题的解决方案实现其目标,客户服务的这种脆弱性就会存在。

答案是去除良好的客户服务心态吗?那肯定会有助于防范社会工程,因为板着脸的暴躁而固执的接待员可能会拒绝提供任何信息,这可能是出于恶意而不是程序。然而,你的企业很快就会遭受到负面客户反馈的猛烈抨击。

这种客户服务心态成为漏洞的程度取决于政策和程序。如果人员接受了帮助培训,但没有遵循任何规定什么可以透露什么不可以透露的政策或程序,那么企业的一个环节就存在严重的弱点。

不良管理示例

“自上而下”的方法缺失是许多安全书籍中的常见话题。简单的事实是,如果没有管理支持,那么你的项目很可能注定失败。当管理层不重视社会工程的威胁时会发生什么?这会使公司更容易受到影响吗?简短的答案显然是“是的”!如果没有管理的“买入”,那么就不太可能有用于防御策略的预算,员工也不太可能支持没有管理支持的概念。如果没有健全的政策和程序、人员意识和培训以及安全评估,企业将自己暴露于攻击之下。

假设管理团队并没有真正意识到社会工程的威胁,但由于监管或合规驱动因素不得不实施防御措施。防御策略可能已经就位,但管理团队的缺乏支持是否仍然会造成问题?当然会。当安全程序不适合他们时,管理团队可能会抵制安全程序,并可能拒绝参加意识和培训计划,理由是这不适用于他们。管理团队的立场使他们成为冒充技术的可能目标,如果管理团队一贯绕过安全控制,那么社会工程师也可以这样做。管理团队为员工树立了良好的榜样是非常重要的。

缺乏意识和培训

员工意识和培训的重要性在第十五章中详细讨论,包括如何规划、设计和实施有效的计划。然而,在这一部分中包括是值得的,因为完全缺乏任何意识和培训可能是企业可能犯的最重大错误,特别是在防御社会工程攻击方面。

意识和培训计划确保:

• 员工了解他们的工作角色、责任以及这些角色和责任与企业使命的关系。

• 员工了解有关信息安全的各种业务安全政策和程序。

• 员工至少具有安全最佳实践和各种控制措施的基础知识,以保护他们负责的信息资产。

员工可能变得极易受到社会工程攻击的两种主要方式。第一种是通过企业本身的各种弱点,如前所述。第二种是确保人类本性完全容易被利用。这将通过忽视进行任何社会工程意识和培训来实现。

上述是安全意识和培训计划的一般目标。如果目标是为员工提供抵御社会工程攻击所需的工具,则可以进行扩展。

社会工程意识和培训计划确保:

• 员工了解社会工程攻击是如何执行的。

• 员工具有检测攻击、适当回应并在可能的情况下防止任何暴露的知识和培训。

这一切听起来可能相对明显,但设计和实施一个有效的计划并不那么简单。通常企业选择一系列未能产生任何真正影响并且肯定不提供所需的“培训”的演示文稿。

弱安全政策

关于加强企业政策和程序以防范社会工程攻击的想法,在第十四章中有详细介绍。即使那些通常对社会工程攻击莫名其妙地免疫的员工,也可能因为政策和程序的薄弱而变得脆弱。这就是为什么有一整章专门致力于帮助企业改进当前的政策和程序,并创建新的、更注重安全性的替代方案。最后几节将探讨一些政策和程序中最常见的弱点,它们如何使企业脆弱,以及社会工程师如何利用它们。

企业安全政策是一套不断更新的文件,解释企业打算如何保护其物理和信息资产。通常,一家企业理想情况下应该有涵盖以下内容的政策:

• 信息敏感性

• 可接受的使用

• 计算机安全

• 桌面安全

• 电子邮件安全

• 互联网安全

• 移动安全

• 网络安全

• 物理安全

• 服务器安全

• 无线安全

上述列表当然不是详尽无遗的,根据企业的规模和复杂性,可能需要更多的政策。这是企业可能犯的最明显的错误之一,即一开始就没有这些政策。如果企业不花时间制定这些政策,那么他们就不能指望员工按照这些政策中定义的最佳实践行事。如果员工不知道如何安全地使用设备和服务,那么他们就会变得极易受到攻击。

企业常犯的另一个错误是制定这些政策,但未能有效地向员工传达这些政策。这些文件被上传到某个中央内部网或 Wiki 服务,并且只有在人员违反某些政策方面时才会被访问。人员是否期望在入职过程中吸收这些信息?大多数企业会声称是这样的,但有多少员工会这样做?此外,自入职以来,IT 基础设施和政策又发生了多少次变化?政策中的信息应该构成基础安全意识和培训计划的基础。员工应该定期接触这些政策中的信息,作为持续培训的一部分。

假设一家企业已经制定了一套安全政策,并向所有员工提供了这些政策的内容,并定期沟通这些政策的内容。员工对政策的陈述和支持企业目标的方式有透彻的理解。如果这些政策的内容太弱,以至于对企业的安全几乎没有实际影响,那么这一切都将是一种浪费时间。什么是“弱”安全政策?以下段落是与信息敏感性相关的安全政策的一个示例摘录:

“机密”分类包括所有可能泄露会损害公司成功的信息。这包括诸如商业秘密、潜在收购和开发计划等信息。它还应包括一些不那么敏感的信息,如人员层次结构、电话目录、一般企业信息等。机密信息不应向非员工透露。

我们已经讨论过数据分类系统,并在这里看到它们作为安全政策的一部分的使用方式。上述摘录似乎是合理的,说明了不应向公众透露的信息类型。然而,“敏感”这个词是非常相对的,一条信息对于员工和企业可能是完全无害的,但对于社会工程师却非常有用。

信息应该像拼图一样对待。以下是员工可能无意中泄露的拼图片段列表。这些信息片段对于社会工程师来说非常有用,但至少对于普通员工来说并不明确属于“机密”范畴:

• 那位特定的员工正在参加为期几天的会议。

• 我们目前使用的清洁公司是…

• 当您到达时,我们将为您提供一张卡片,您可以使用它在整个建筑物中打开门。

• 是的,我们可以在午餐时间浏览互联网。

• 那时您需要与一位保安交谈,因为接待处将没有人员。

• 要重置您的密码,您需要与克莱尔交谈,并让她给我们发送一封电子邮件以获取授权。

如果社会工程师可以以某种方式利用足够多的这些片段,他们可能能够拼凑出足够多的图像以便利用。例如,如果您知道某个员工离开了,您可以打电话给企业并冒充他们。一个非常老套的社会工程攻击是到企业宣称与您知道已经离开的员工有会面。这可能对于放置带有恶意软件的 USB 驱动器(希望员工会捡起并将其连接到他们的工作站)或者简单地与接待员交流并研究接待处的布局都非常有用。

安全政策的主要问题在于它说明了哪些信息通常应被视为机密,但没有说明为什么以及如何将其用于反对企业。没有了为什么或者如何,要遵守该政策就变得困难,因为许多信息项将处于灰色地带。对一些员工来说,现有的清洁公司可能与办公室地毯的颜色一样无害。该政策未能为员工提供足够的信息,以清楚地判断什么应该透露,什么不应该透露。

政策通常是有意模糊的,包括所有必要的信息来充分解释每个方面将导致一个非常庞大的文件。期望员工吸收一份 250 页的安全概念政策是更加不现实的。然而,大多数政策之所以模糊是因为它们太泛泛。如果企业确保政策与其个别要求一致,那么他们可以更具体而不会太冗长。

当政策过于具体时,员工可能会误解或错误解释特定政策项的目的。以下是关于业务内部密码传输的个别政策项的示例。

用户密码绝不能以明文形式通过电子邮件发送给任何内部或外部收件人。

这个政策项听起来还算公平,电子邮件帐户可能会被入侵或电子邮件本身被拦截。然而,尽管有这样的政策,员工们仍然可能会在办公室里大声喊出密码,或者在电话中清晰地拼写出来,让所有人都听到。他们仍然会把它们写下来,打印出来,并公开与同事分享,以节省时间。该政策正在解决一个非常具体的问题,而没有解决更大的整体安全概念。

安全政策也可能因为对安全系统弱点的理解不足而变得薄弱。例如,一家公司可能有一个与电子邮件使用相关的安全政策,其中规定:

用户应该检查电子邮件中超链接的位置,以确保它不会导向恶意位置。

大多数现代网络钓鱼攻击都是基于指向恶意网站的链接而不是恶意附件,因此这个政策是很好的建议。然而,如果攻击者在企业网站中发现了跨站脚本(XSS)漏洞,该链接可能会导向他们的官方网站,但然后将用户重定向到恶意网站而用户并不知情。这个特定的安全政策实际上会帮助攻击者。

XSS 漏洞允许攻击者将客户端脚本(如 JavaScript)注入到网页中。如果攻击者能够诱使用户点击恶意链接或访问恶意网页,攻击者可能能够在用户的浏览器中执行恶意 JavaScript,在受影响的域的上下文中。

这是另一个关于密码强度的常见弱安全政策示例。这个政策通常在微软的 Active Directory 中配置,以尝试强制执行强密码。

所有员工的密码必须是八个字符长,包含一个大写字母和一个数字。

最常用的密码是什么?为了满足这些复杂性要求并且仍然记住大多数员工会选择的密码,“Password1”。或者通常是他们工作的地方加上一个“1”,比如例如 Liverpool1。

上述示例可以说更多地涉及计算机系统安全而不是社会工程学。然而,该政策条款之所以薄弱,是因为它没有考虑到人性。社会工程学是利用人性,因此这个例子非常合适。

弱的程序

程序是任何企业的关键部分,定义为“按照一定顺序或方式进行的一系列行动”。它们确保业务任务以一致的方式执行,符合企业的期望。如果企业的程序薄弱,那么人员就会变得容易受到攻击。所谓“薄弱”,是指攻击者可以绕过或规避某种方式来绕过程序。

例如,以下常见程序与承包商签到相关:

当承包商到达接待处并介绍自己时:

  1. 确保承包商填写签到簿的适当部分,包括日期、姓名、公司、被访人、通行证号码和车辆注册信息(如果需要)。
  2. 向承包商发放“承包商”专用的射频识别(RFID)通行证。
  3. 联系“被访人”以通知他们承包商的到来。
  4. 邀请承包商坐在指定区域等待。

上述程序似乎相当明智,绝大多数企业都使用类似的程序。然而,从社会工程师的角度来看,这个程序很可能会被滥用。

点 1:

如果承包商被要求填写签到簿,那么他们可能会看到之前的访客。如果之前的访客来自“易受攻击的工程师公司”访问“IT 部门”,那么他们可能是第三方支持技术人员。通过可见的车辆注册信息,社会工程师可以简单地等到他们回到车辆,看看那个人穿着什么,携带了什么工具,甚至与他们聊天以获取更多信息。这些都是在可能的冒充攻击中提供帮助的极好信息。

如果侦察揭示了管理层中某人的姓名,并且签到表显示有人正在拜访该人,那么社会工程师可以利用这一点来获得信任。他们可能会联系那位经理,声称是那个人的同事;“嗨,我知道我的同事大卫今天拜访了您,我可以问一下会议进行得如何吗?” 从经理的角度来看,打电话的人必须是真实的,否则他们怎么可能知道会议的情况呢?要获取上述任何信息,社会工程师显然需要到达签到阶段。然而,他们可以简单地写下虚假信息并提供一个他们知道不存在的联系人。当接待员通知他们时,他们可以简单地声称他们显然犯了错误,道歉并毫无事端地离开。

点 2:

这里的问题是程序的执行顺序。承包商在验证之前就获得了一个射频识别卡。社会工程师可以好好看看这张卡,也许是为了制作一张用于将来攻击的假卡。此外,还有使用专业设备重播射频信号的可能性。与上述情况类似,当验证失败时,社会工程师可能已经获得了他们想要的信息。

第 3 和第 4 点:

程序的这一部分很重要,因为在发送承包商之前,绝不能先联系现场联系人。然而,程序并没有考虑到无法遵循的情况,这正是社会工程师可能正在期待的。

如果社会工程师到达后登记,然后告诉接待员主要联系人不在,但说他们可以自行工作,接待员会知道该怎么做吗?如果社会工程师提到了足够多的名字,解释了一个非常有说服力的情况,看起来很合理,并且听起来很有说服力,接待员很可能会接受社会工程师对不执行程序的理由。事实上,在不知道该怎么做的情况下,接受社会工程师的理由很可能是解决问题的诱人选择。社会工程师可能解释说,他们已经和他们的经理海伦谈过了,她说可以不受监护地工作,完全知道海伦目前正在出差。

程序并不总是以安全为考量设计的,更多地侧重于尽力保持业务的顺利运行。简单的“如果然后”和“假如”语句的缺乏会导致员工需要自行解释程序,这会导致社会工程师可能操纵的情况发生。上述程序可能更关心的是防火安全,而不是阻止社会工程师。

有关加固程序的更多信息,请参阅第十四章。

总结

这一章讨论了许多企业主要投资于物理和技术安全控制,而忽视了投资于社会工程防御策略的现象。探讨了企业面临的一些最常见的安全挑战,展示了企业内部的弱点如何转化为员工的弱点。有一句常见的说法是“人是最薄弱的一环”,很多人会认为员工天生容易受到攻击,对企业构成最大的风险。然而,本章节表明这并不一定是全部。企业安全问题,如授予过多权限、无效的数据分类、缺乏需知需会、弱政策、弱程序甚至是不良管理示例,都显著地增加了员工对社会工程的易受攻击性。一些更加困难的挑战,如平衡安全、功能和可用性,表明企业往往面临着艰难的斗争。

第三章 着重于人性的脆弱性,而不是企业结构内部的脆弱性。这些是与社会工程最常相关的脆弱性。本章将涵盖基本技术,如伪装和冒名顶替,然后在此基础上探讨更高级的主题,如信息聚合、利用情绪状态和目标个性分析。每个概念都将从一般社会工程的角度和与评估相关的角度进行讨论。

第三章:操纵技术

加文·沃森,高级安全工程师,RandomStorm 有限公司

社会工程师使用各种技术来操纵目标,以便揭示信息或执行操作。本章将引导读者了解基本技术,如构架、借口攻击、加载和引诱。

关键词

借口攻击;冒充;引诱;压力和解决方案;利用权威;反向社会工程;认证链;赢得信任;从无害到敏感;预热和加载;社会证明;构架;情绪状态;选择性注意力;人格类型;身体语言

本章内容

借口攻击

冒充

引诱

压力和解决方案

利用权威

反向社会工程

认证链

赢得信任

从无害到敏感

预热和加载

社会证明

构建信息

情绪状态

选择性注意力

人格类型和模型

身体语言

介绍

第二章关注的是与企业本身相关的社会工程学漏洞。演示了企业安全弱点如何转化为员工的问题。即使是最注重安全的员工也可能因企业流程的弱点而变得脆弱。

本章将重点介绍社会工程师用于利用人性而不是企业的最常用技术。这可能是为了引出信息或操纵目标以执行有助于攻击的操作。每个章节将描述不同的技术,解释为什么使用它以及它的工作原理。

借口攻击

借口攻击通常是每次成功的社会工程攻击的核心,但是有许多定义,每个定义都增加了对其实际含义的困惑。例如,韦伯斯特词典将其定义为:

以他人身份呈现自己以获取私人信息的做法。

这很接近,但实际上只是在描述冒充。此外,目标不一定是获取私人信息。各种在线来源的定义与社会工程学的定义几乎相同:

将个体操纵成揭示敏感信息的艺术。

的确,大多数借口都旨在操纵个人或引出信息,但这并不是一个足够清晰的定义。

关于借口攻击的最接近的解释是在爱荷华州立大学 2009 年的论文中发现的^(1):

借口攻击是攻击者制造情景,试图说服受害者提供有价值的信息,例如密码的攻击。借口攻击的最常见例子是当有人打电话给员工,假装是权力的人,比如 CEO 或信息技术团队的成员。攻击者说服受害者情景是真实的,并收集所需的信息。

上述定义的关键部分是提及情景的创建,这是用来与受害者接触的借口。借口为攻击设定了场景,以及角色和情节。它是许多其他技术执行以实现总体目标的基础。借口由以下两个主要元素组成:

  1. 可能的情况

这是可能导致实现目标的情况。这是一系列可信事件,由社会工程师设计和引导,以提取信息或操纵目标。选择的借口基于最初的侦察。正是这种侦察不仅指出了一个可行的借口,而且提供了支持它所需的必要信息。

  1. 角色

可能的情况涉及社会工程师扮演“角色”,就像一个演员一样。这并不一定意味着冒充某个真实的人,事实上,更常见的是虚构的角色。然而,重要的是要记住,在创建角色时有许多方面需要考虑。社会工程师必须考虑他们会如何穿着、如何说话以及他们会具备什么样的技能。

例如,假设社会工程师想要从公众中获取银行账户信息。他们在受害者的垃圾桶中找到了一封来自其互联网服务提供商(ISP)的信件。他们决定利用这些信息来谋求利益,并围绕它建立一个借口。这种攻击可能涉及许多不同的方面,但在这里我们只专注于可能使用的基本借口。

例如,可能的情况可以是:

受害者接到一个电话,攻击者冒充他们的 ISP。不幸的是,之前通过直接借记来检索必要资金的尝试失败了。如果客户确信他们有足够的资金,那么 ISP 希望确认这不是他们那里的错误。他们希望在电话上确认受害者使用的银行账户号码,并在电话上重试交易。如果交易成功,他们将相应地修改他们的记录。

角色可能是:

电话接听者可能是一个典型的技术支持员工,友善、礼貌、乐于助人,并热衷于解决问题。

假设一个社会工程师想要进入特定企业的建筑物。不幸的是,在线研究没有揭示任何可用于帮助攻击的信息。然而,社会工程师仍然需要建立一个借口,一个不需要任何关于企业或其流程的先验知识的借口。

可能的情况可以是:

业务显然需要进行灭火器的维护检查。一名攻击者冒充工程师出现在现场,需要进入建筑物检查每个灭火器,并在必要时更换。这并不完全罕见,因为这些检查通常是未经通知的。工程师不需要被护送。

角色可能是:

工程师会穿着制服,可能还带着各种工具。他们只对快速完成工作感兴趣,并可能对延误反应不佳。

上述两个前文似乎相当简单,但请记住,它们只是构建攻击的基础。本章中描述的其他技术可以添加到前文中,以使其更有可能成功。例如,社会工程师可能使用冒充、说服和建立信誉的技巧来支持前文,仅举几例。

冒充

绝大多数社会工程前文都会涉及到一个冒充的元素。正如前面提到的,这种冒充不一定是真实个体的冒充,而可能是专门为前文设计的角色。在设计一个前文角色时,应该提出以下问题:

• 这个个体会穿什么?

• 他们的仪表会如何?

• 他们会携带任何特定类型的设备吗?

• 他们可能会有什么样的口音?

• 他们说话会有多流利?

• 他们会使用什么样的词汇?

• 这个人会展示什么样的身体语言?

• 这个人会有什么样的技能?

如果你无法回答这些基本问题中的任何一个,那么你的冒充可能会失败。原因是,冒充中的任何不一致都可能引起注意,影响整个前文。如果有人站在门口声称自己是一名穿着背心和凉鞋的警察,那么他们可能不会被相信。

引起注意的不一致可能导致验证检查,这将对前文的稳健性(以及社会工程师自己)施加重大压力。验证检查可能是通过要求提供现场联系人的详细信息或提供有效的照片身份证明来进行的。虽然此类事件可以在一定程度上进行计划,例如详细的掩护故事和假徽章,但它们很容易导致攻击的完全暴露。因此,重要的是不要冒充具有你无法令人信服地复制的特征的人。

目标是让冒充变得如此令人信服和如此“平凡”,以至于不引起任何不必要的注意。一些社会工程师认为,仅仅“扮演角色”是不够的,社会工程师必须实际“相信”他们就是那个人。然而,无论你多么相信自己是另一个人,如果受害者由于不一致而不相信你,那么你的攻击很可能不会成功。

如果您的借口需要扮演一名会计的角色,您可以如下回答以下问题:

• 这个人会穿什么?

• 一套整洁而合身的西装,漂亮的鞋子。

• 他们的外表会有多么得体呢?

• 从头到脚都非常得体。

• 他们会携带任何特定类型的设备吗?

• 公文包,也许是一个剪贴板。

• 他们可能会有什么样的口音?

• 取决于地区。

• 他们说话得多么流利?

• 可能会接受正规教育,讲话流利。

• 他们可能会使用什么样的词汇?

• 词汇量丰富,特别是财务术语。

• 这个人会展现什么样的肢体语言?

• 可能会保守,不过于自信。

• 这个人会具备哪些技能?

• 具有强大的财务能力,会计技能。

在社会工程攻击中,冒名顶替通常用于利用“真实”个人的特权。当冒充一个实际存在的人时,会遇到一些挑战。

最明显的挑战是要充分了解个人,以便回答上述问题。例如,要在不采用长期攻击策略(如长期监视)的情况下对个人进行这种程度的剖析显然更加困难。显然,如果你和个人看起来一点也不像,那么与认识他们的人进行面对面的冒名顶替是不太可能成功的。最常见的方法是尝试联系个人,录制他们的声音并练习模仿他们的声音。如果能做到这一点,那么通过电话进行冒名顶替很可能是可能的。

有些情况下,可以冒充一个真实的人而无需听起来像他们。例如,在受害者知道这个人是谁但从未见过他们的情况下。如果你攻击一个员工众多的大型企业,不太可能每个人都认识每个人。社会工程师可以联系前台冒充一个不太可能见过的随机新员工。在这种情况下,社会工程师很可能在任何方面都与该个体毫不相似。在某种意义上,这种冒名顶替是非常差劲的,但它不需要令人信服。只要声称自己是某个特定的人,来自某个特定的部门,可能就足以获得所需的信誉。

通过电子邮件和书面沟通来冒充个人似乎是最安全的选择。然而,书面通信同样可能包含可以被发现的不一致性。在尝试以这种方式冒充个人时,收集尽可能多的他们的写作风格示例非常重要。个体可能经常使用某些形式,非正式用语,不良语法或其他特定特征。包括这样的特征可能会增加可信度,而不包括它们可能会引起怀疑。

当涉及伪装时,关键是“进行侦察”。如果侦察工作彻底,初始侦察应提供构建强大伪装所需的信息。

钓鱼

当试图从他们的目标身上骗取金钱时,“骗子”通常会使用经典的技巧。他们为受害者提供一个诱人的机会,并利用它将他们吸引到骗局中。在许多方面,这可以被认为是一个简单的诱饵和陷阱的情况。只要目标的注意力在诱饵上,整个骗局可能就不会被揭穿。

当社会工程师攻击企业以侵犯安全时,欺骗金钱可能不是一种合适的方法。起初,他们更有可能感兴趣的是获取信息或侵入计算机系统。钓鱼如何用于侵犯安全呢?

初始侦察应该揭示足够的信息,以确定每个可行目标是否适合特定类型的诱饵。也许你的侦察已经揭示出首席执行官对经典汽车有浓厚的兴趣,那么你的诱饵可以是一次罕见的购买机会。

一旦受害者的注意力被固定在诱饵上,你如何设置陷阱呢?这显然取决于你试图实现什么目标。假设你想要访问计算机系统,并决定向销售部门的某人发送钓鱼邮件。对销售人员来说,最吸引人的诱饵可能是一个有利可图的线索。以下是可能发送的电子邮件示例:

嗨,詹姆斯,

我没有时间跟进这个线索,所以你想要吗?客户想要了解我们的新服务更多信息,听起来是个好机会。

vulnerableinc.com/contact

只要邮件看起来没问题,什么销售人员会不点击链接呢,尤其是如果这意味着可能获得佣金。如果诱饵足够吸引人,目标通常甚至不会考虑消息的合法性,因为可能的奖励实在太诱人了。

最著名和陈词滥调的方法之一是用掉落的 U 盘诱饵员工。其思想是员工出于好奇会拿起 U 盘并将其连接到他们的工作站上。U 盘将包含恶意软件,旨在在计算机系统中创建后门。然而,有许多不一定能被考虑到的变量,比如:

• 如果一个非员工拿起 U 盘并连接了它呢?这样可能违反了《1990 年计算机滥用法》。

• 如果计算机没有出站互联网访问权限呢?

• 如果防病毒软件的规避技术失败了呢?

• 如果 USB 端口被禁用呢?

• 如果员工注意到有很多掉落的 U 盘并发出警报呢?

当这种攻击最初出现时,用户只需连接 USB 驱动器,因为 Microsoft Windows 会“自动运行”其中的软件。然而,今天情况并非如此,因此必须使用其他技术。有一些设备(如 Teensy)当连接时会模拟键盘输入,从而实现相同的后门目标。然而,仍然可能存在上述讨论的同样的挑战。一个解决方案是确保只有你预期的目标接收到该设备。一些专业的渗透测试人员和社会工程师通过将 Teensy 集成到计算机鼠标中,并将鼠标作为礼物发送给目标来解决这个问题。

另一种常见的物理诱饵方法是丢弃带有诱人标签的 CD 或 DVD,如 2014 年工资单或员工招聘计划。然而,在内部放置此类物品将是不必要的,因为社会工程师已经进入内部。相反,这些物品可以通过接待处传递给员工,甚至邮寄给目标企业。

读者最熟悉的是电子邮件钓鱼诈骗中使用的诱饵技术。钓鱼电子邮件可能包含赚钱的承诺,获取免费门票或其他有吸引力的机会。当然,这是一个数字游戏,攻击者可能只需要少数几个受害者来实现他们的目标。

压力和解决方案

使用情绪状态是一个庞大的主题,特别是与社会工程学相关。本章中许多支持技术将描述社会工程师如何利用不同的情绪状态来获得优势。然而,在这里我们将专注于一个非常具体和有效的技术;压力和解决方案。

这种技术的前提非常简单,但应用可能非常困难。基本前提是以负面情绪状态(如恐惧、愤怒、愤慨或羞耻)对受害者施加压力。然后向受害者提出一个可以减轻或消除情绪的解决方案。当然,这个解决方案将帮助攻击者实现他们自己的目标。这类似于诱饵,因为受害者被情绪所蒙蔽,就像被诱饵所蒙蔽一样。如果你能激发足够强烈的情绪,那就是受害者将专注的全部。

以下示例显示了如何使用这种技术实现社会工程目标。

恐惧

当我们在受害者身上激发恐惧时,我们不想让他们变成一堆颤抖的废物,相反,恐惧可能与纪律处分或失去重要事物有关。理论上,恐惧可能与任何事物相关,只要你有一个能够让它消失的解决方案。

目标:获取首席执行官的电子邮件帐户访问权限。

压力:IT 部门的员工接到一位首席执行官的电话,他说:“听着詹姆斯,我现在和我们的两位客户在一起,我正试图向他们解释最新的数据。我已经在邮件里输入了我的密码大约五十次,但毫无进展。我以为你们那边一切都运行顺利?希望你能远程解决这个问题,因为过来这里很远,我可能会让你过来做。”

解决方案:这是一个糟糕的情况,员工最不想做的最后一件事就是开始遵循验证程序,提出会进一步惹恼首席执行官的问题。在这种情况下,员工可能会毫不犹豫地重置密码。此外,只需进行很少的在线研究就可以找到首席执行官的姓名和电子邮件地址。

愤怒/愤慨

这里最好的方法是激起强烈的恼怒情绪,而不是激怒受害者。如果这种情绪被推得太远,你可能会陷入一个迅速失控的局面。

目标:诱使员工浏览恶意网站。

压力:前台接到 IT 部门的电话,他们解释说“嗨乔西,不幸的是我们发现你正在使用的机器被用来浏览,嗯,我们应该说是不端网站?”。乔西对这种暗示感到震惊“嗯,肯定不是我!你怎么敢”。

解决方案:IT 部门可以回复说“嗯…应该有阻止这类网站的过滤器,也许你的机器以某种方式被入侵了?你能为我浏览几个公司网站吗,这样我就可以检查流量并找出问题所在?

利用权威

前一节包括一个冒充首席执行官向 IT 帮助台技术员施加压力的例子。尽管压力可以通过多种方式施加,正如该节所示,那个特定的例子还利用了作为首席执行官所具有的“权威”。利用各种形式的权威可以出于各种原因非常有效。

关于企业,一个明显的原因是大多数员工被期望执行管理设定的任务。员工等级制度的本质意味着雇主可以“操纵”员工,只要这种需求符合工作角色的期望。如果员工认为社会工程师是管理层的一部分,他们很可能会遵从任何合理的要求。向管理层提供敏感信息不太可能引起任何警报。事实上,这种信息请求可能相当常规。例如,社会工程师(或私家侦探)可以联系目标企业的人力资源部门冒充管理层,请求有关特定员工的信息。只要人力资源部门相信他们是管理层,他们很可能会发布信息。

在企业内部有一些拥有权威但不一定属于标准员工层次结构的个人。 这些个人充当响应性安全控制器,同时也作为一种威慑力量,他们当然是保安人员。 保安人员可以非常有效,但就安全而言,它们是一把双刃剑。 如果社会工程师能够冒充其中之一,这很可能只需要一个假制服,他们就可以有效地使用这种权威。 社会工程师可以要求看到员工的安全徽章,甚至可能没收它。 他们可以声称正在进行一些安全检查,并希望看到钥匙的位置。 此外,即使员工没有认出他们,挑战和质疑保安人员的机会也非常渺茫。

记住,“权威”需要成为冒充的每个方面的一部分。 看起来像那样相当容易,通常一个时髦的西装就足够了。 但是,听起来是更具挑战性的,尤其是如果你不知道自己在说什么。 创造权威幻觉的一个微妙的技巧是提出问题。 在谈话中,提问的人被认为拥有最大的权力。 显然,我们不建议提出一系列平凡的问题并使受害者困惑。 我们只是说,权威的平衡可能会因简单地确保你问的问题比对方多而发生变化。

在这里,我们专注于企业,但权威也可以在许多其他情况下发挥作用。 普通公众被社会条件约束,听从警察、急救服务人员甚至道路维护工人等个人的请求。 如果一个穿着安全服装的人告诉你避开某个区域或使用不同的入口,你很可能会服从。 第一章提到了“运作卡米翁”,即恐怖分子购买紧急车辆来帮助社会工程攻击。 如果受害者认为社会工程师是警察或救护车司机,那么感知的权威就可以产生毁灭性的影响。

本书的作者绝不以任何方式支持或推荐冒充警察或急救服务等官方机构。 这种行为可能会让你陷入非常严重的麻烦。

逆向社会工程

逆向社会工程是一种经典技术,用于确保攻击者具有可靠的信誉。 它可能涉及大量计划和谨慎的时机安排,可能相当危险。 但是,如果成功了,它确保了受害者成为一个象征性的受控傀儡。 基本思想是让受害者寻求社会工程师的帮助来解决问题。 然后,社会工程师提供帮助,这也有助于攻击。 受害者向社会工程师请求某物,而不是相反。 这就是为什么它被称为逆向社会工程。

这种技术的复杂程度有不同的级别,取决于目标。最基本的形式只涉及一个阶段:Assist(协助)。例如,社会工程师可以联系一名员工并假扮成 IT 部门的某个人,问:“您目前遇到任何计算机问题吗?”很有可能有人会有问题,事实上几乎是肯定的。然后,社会工程师可以同意帮助解决该问题。挑战性的部分是将攻击融入解决方案中。例如,社会工程师可以声称他们需要用户的凭据以远程登录。或者,社会工程师可以要求用户浏览到特定网站以测试连接性,这当然可能是恶意的。

更复杂的版本包括两个阶段:Sabotage(破坏)和 Assist(协助)。社会工程师首先制造某种问题,然后表现出自己是能够解决该问题的人。这种攻击的一个极端例子是破坏公用事业设施,比如切断电力,然后以派遣的技术人员身份到达现场修复停电。

更复杂的攻击版本包括三个阶段:Introduction(介绍)、Sabotage(破坏)和 Assist(协助)。这种技术首先涉及与受害者联系以获得一定程度的信任。例如,社会工程师可能会联系员工并自我介绍为 IT 部门的新成员。他们可以给员工一个直接的电话号码,解释说如果他们遇到特定的计算机问题可以打电话。由于社会工程师没有要求任何信息或要求受害者执行操作,因此不太可能引起任何警报。当出现此类问题时,受害者会联系社会工程师寻求帮助。社会工程师因此获得了可信度,受害者联系他们而不是相反。

身份验证链

身份验证链是一种可以以多种不同方式应用的强大技术。其概念是制造或编排一种情况,使受害者“假设”社会工程师已经得到了验证。为了演示这个概念,我们将直接跳入一个简单的例子。

社会工程师可以发送一封电子邮件给一家企业,冒充特定客户的身份,请求有关他们最近收到的服务的信息。这些信息可能是只有执行服务的工程师才知道的。收到邮件的员工可以联系工程师获取该信息,并将其传递给社会工程师。这个简单示例的重要部分是工程师如何看待这种情况。从工程师的角度来看,一个合法的员工请求了公司内部没有限制的信息。他们没有理由质疑这个请求,他们“假设”原始员工已经验证了客户。因此,社会工程师获得了那个合法员工的信任,并间接从工程师那里获取了信息。认证被传递下去,每个人都加强了认证的力量。

需要注意的是,在上述示例中,“认证链”是对初始网络钓鱼攻击的支持技术。下面的示例展示了该技术如何作为攻击的基础,而不是作为一个支持元素。

假设一名社会工程师想要进入医院的服务器房间,也许是为了制造混乱或者获取患者记录。他们冒充空调维修工程师的身份去接待处。社会工程师向其中一名接待员解释道:“我来这里是为了对服务器房间的空调进行维护检查,IT 部门派我来的,显然你们有钥匙”。接待员回答道:“抱歉,我们没有,拿钥匙的只有门卫,他的办公室就在走廊尽头”。社会工程师离开,几分钟后又回来说:“抱歉,但是没人应门,稍后再试一下”。他们可以继续假装尝试开门,并告诉接待员门没人应,直到接待员同意自己去调查为止。当接待员尝试开门时,门卫应门了,接待员解释道:“啊,你果然在,这位先生是来处理服务器房间空调的事情的,请你带他上去吧”。门卫很可能会假设接待员已经验证了工程师,从而创建了认证链。这个具体的例子实际上是作者执行的真实攻击的描述,展示了这种技术的有效性。

使用这种技巧的另一种方式是冒充进行验证的员工。例如,社会工程师可以冒充一名员工并联系接待处解释:“…脆弱公司的一名工程师大约在 20 分钟后到达,你能确保他们签到并给他们一个出入通行证吗?他们知道自己在做什么和去哪儿。” 在这里,接待员假设访问的工程师已经被员工验证过了。然后,社会工程师可以冒充工程师到达并获得进入建筑物的权限。在这种情况下,社会工程师形成了链条的起点和终点。

另一种,有点冒险的使用这种技巧的方式是向受害者呈现链条的初始部分。例如,社会工程师可以联系受害者说:“我刚刚和你的经理苏珊交谈过,她说你也许能帮我…”。受害者可能会认为他们的经理苏珊已经验证了来电者,而事实上他们根本没有交谈过。

获得信任

获得信任是几乎每次社会工程攻击中使用的一种技巧,以增加成功的机会。这个想法是通过提供关键信息来赢得受害者的信任。这些信息通常很容易获得,起初并不敏感。

如果一个社会工程师联系员工说:

你好,你能告诉我你正在使用的 Web 浏览器的版本号吗?

员工可能会质疑他们为什么想知道以及他们是谁。主要缺失的元素是借口,加上它将导致:

你好,我是 IT 部门打来的,我们正在进行一些远程修补,你能告诉我你的 Web 浏览器是否已经升级到 7.0 版本了吗?

现在我们有了一个借口,攻击看起来更有说服力了,但并不多。通过添加关键信息以获得信任,可以显著提高它的效果。例如,社会工程师可以轻易地找到他们联系的员工的姓名、IT 部门的正确名称、IT 部门的工作人员的姓名,也许还有公司目前正在进行的项目。所有这些信息都可以很容易地从各种在线来源获得。

这次攻击可能会变成:

嗨,詹姆斯,我是服务台的西蒙,你有 2 秒钟吗?还是你们还在忙于 xyz 项目?…啊,好吧听着,我们正在进行一些远程修补,你能告诉我你的 Web 浏览器是否已经升级到 7.0 版本了吗?如果没有,我需要派遣戴夫过去解决一下。

在这次攻击中使用的关键信息给予了社会工程师信任。甚至仅仅提到某人的名字就足以使攻击更加令人信服。一般来说,信息越难获得,它给予的信任就越多。

除了使用具体的名称和参考业务特定信息外,使用正确的业务术语也可能非常有效。也许员工经常将 RSA 2 要素身份验证令牌设备称为 RSA fobs。例如,攻击者可以利用这一点在向 IT 部门提出请求时占便宜,比如“嗨詹姆斯,我是营销部的西蒙,斯图尔特在吗?啊,也许你可以帮忙。我刚和我们的 xyz 客户在一起,我需要远程登录但是我又忘了我的 RSA fob,我能用你的吗?你可以 念出上面写了什么吗?”。在这种情况下,社会工程师可能已经知道斯图尔特不在,也许是从一封外出邮件回复中得知的。因此,在这个例子中,詹姆斯、西蒙和斯图尔特的名字都获得了信任,以及客户的名字和 RSA fob 术语。

很多这种(获得信任的)信息是在攻击之前的初步侦察阶段发现的,甚至在攻击进行之前。然而,社会工程师可能在攻击过程中引出新的信息,这些信息也可以用来进一步获得信任。信息越敏感,获得的信任就越多。

从无害到敏感

前一节描述了如何使用信息获得信任。本节讨论了社会工程师使用信息的另一种方式,更准确地说,是社会工程师如何看待信息。

从社会工程师的角度来看,“任何”信息在一定程度上都是有用的。前面的章节描述了信息就像拼图的碎片,你拥有的碎片越多,你就越能理解整体情况。攻击之前执行的初步侦察阶段可以看作是收集尽可能多的拼图碎片。然而,这个类比可以进一步深入。拼图的每一块至少与另一块拼图相匹配,通常可以通过正面印有图像来确认。因此,每个碎片都可以用来识别至少另一块与之匹配的碎片。对于社会工程师来说,任何一小块“无害”的信息都是一个拼图碎片,这可能用于识别另一块,可能更重要的信息。社会工程师试图确定使用当前所拥有的信息可以获得哪些其他信息。使用无害信息来识别和获取敏感信息,然后使用敏感信息来获取更敏感的信息,是社会工程攻击的持续过程。

在关于伪装的部分给出的例子中,关于 ISP 打来的电话展示了这个过程非常好。攻击者首先获得了受害者的 ISP 寄来的关于他们当前套餐的信件。这封信是在受害者的垃圾桶里找到的。这封信没有包含任何明显的敏感信息,比如个人详细信息或财务数字。这就是为什么受害者乐意扔掉它而不是撕碎它。对于社会工程师来说,这封信包含以下“潜在”的信息片段,这些信息片段就像拼图一样,可以用来找到更多信息:

• 全名

• 当前使用的 ISP

• 当前使用的 ISP 套餐

• 月付款金额

• 账户参考号码

这些关键信息片段可以用来增加可信度,同时也可以从目标那里获取更敏感的信息。假设这些信息片段成功用于冒充 ISP,并且受害者随后透露了他们的银行账号。这显然是更敏感的信息,可以进行更严重的攻击。

假设受害者过了一段时间再次被联系,这次是来自他们的银行:

喂,苏珊吗?你好,我是来自 xyz 银行的瑞秋。我打电话是关于以 1234 结尾的活期账户,我们认为可能使用关联的借记卡进行了欺诈性购买,我们想要与您核对购买历史。出于安全原因,在我们继续之前,您能确认一下您的安全密码吗?谢谢。

一旦社会工程师获得了账户号码和安全密码,他们可能会进行更严重的攻击,甚至可能直接访问银行账户。

这里的主要观点是将有关目标的任何信息都视为潜在敏感信息,这完全取决于该信息如何被使用。

引导和加载

引导(有时称为加载)的概念是一种奇怪而迷人的心理现象。基本思想是一个人可以接触到某些词语、想法或行动,这将使他们更有可能“选择”相关联的词语、想法或行动,甚至在不知情的情况下也会这样做。

如果读者足够老,还记得 1980 年代英国儿童电视节目“Wacaday”中的 Timmy Mallett,他们会记得游戏“Mallett’s Mallet”。两个孩子面对面玩,每个人都必须尽快想到一个与对手刚说的词相关联的词。例如,一个孩子可能会说“太阳!”,然后另一个可能会说“月亮!”。如果任何一个孩子回答得太慢,没有与对手相关联的词,他们就会收到 Timmy 亲自送上的泡沫锤。在这个例子中,个人们试图想到相关联的词,当你在压力下时这可能会很困难。然而,即使我们不打算这样做,词语联想也会发生,而且不一定局限于词语。

心理学家约翰·巴格进行的一个清晰展示了启动效应力量的实验。纽约大学的学生被要求从五个混乱的单词中组成一个四个单词的句子。例如,学生可能有“球, 跑, 抓, 他们, 了”,并且期望他们能够产生“他们抓了球”或者类似有意义的句子。一组学生被给予包含与老年人相关的关键词的单词组,比如“虚弱, 健忘, 灰色, 秃头, 等”。一旦学生完成了实验的这部分,他们被告知前往走廊尽头的下一个阶段。研究人员计时每个学生走到下一个实验的时间。他们发现,正如预测的那样,被启动与老年人相关词语的学生需要更长的时间才能到达走廊的尽头。即使没有提到“老”, “慢”, 或者“老年人”这些词,学生们在不知不觉中建立了关联,这显著影响了他们的行为。

操纵个人的行为是社会工程的核心,因此这种技术可能非常有用。然而,在突破安全方面的实际应用存在一些挑战。首先,对个人的影响并不会让他们愿意做他们知道是错误的事情。因此,你永远不能“启动”某人让你进入受限区域而没有一个非常好的理由。然而,你可能会启动一个受害者进入一个特定状态,比如更“易于达成一致”,这可能有助于实现一个目标。第二个最明显的挑战是如何应用启动而不被受害者意识到。正如我们所讨论的,关联可以在受害者不知情的情况下发生,但在现实场景中,启动的应用可能非常明显。如果一个社会工程师试图在随意谈话中加入“打开”, “访问”, 和“授权”等关键词,那么受害者可能会变得更困惑而不是被启动。启动应该被视为一种支持技术,并不应成为攻击的基础。

启动也可以支持诸如电子邮件钓鱼攻击或通过书面通讯进行的攻击。可以包含某些与攻击目标一致的关联词。

在前一章中,提到了围绕客户服务心态的问题的一个例子。这是一个很好的展示启动效应如何应用的例子。通过让受害者反复说“是”,它会使他们进入一种易于达成一致的心态。他们越易于达成一致,就越有可能遵从您随后的请求。

如果您决定使用启动来辅助攻击,请考虑您与目标的接触时间。还要考虑受害者必须处于什么状态才能使其受益,以及您将使用什么来建立关联。

社会证明

社会影响力,也被称为社会证明,当然不是什么新鲜事。多年来,企业一直利用社会证明技术来鼓励人们购买他们的产品和服务。基本理念非常简单;人们会跟随群众。追求与他人一致的舒适是人性的一部分。有些人积极地与主流对立,也许试图通过反叛自我表达。然而,当社会证明的力量足够强大时,他们也很可能像顺从的羊一样跟随。

心理学家诺亚·戈德斯坦和史蒂夫·马丁是影响和说服科学的先驱。 他们进行的一个特定实验清楚地展示了社会证明影响力的力量。 他们调查了亚利桑那州石化森林中反盗窃标志的有效性。 问题在于人们偷走了一些石化木头碎片,从而破坏了自然环境。 他们的一个标志如下所示:

许多过去的游客已经从公园里带走了石化木,破坏了石化森林的自然状态。

这导致了增加盗窃行为,因为它产生了负面社会证明。公园游客会读到这个标志,然后想:“其他人都在偷,为什么我不呢?”当标志被更改为相反的内容,声明绝大多数游客为了保护环境而不偷窃时,盗窃行为显著减少了。

在它们的广告中,营销活动经常遭受负面社会证明的影响。例如,如果他们想试图鼓励更多的人骑自行车上班,使用以下宣传活动会取得很少的成功:

英国有超过 2500 万人不骑自行车上班。

与石化木标志一样,这项运动只会让人们更舒适地“不”骑自行车上班,因为还有很多其他人不这样做。 更好的策略是说明有多少人骑自行车上班,并鼓励更多人加入。

社会证明是一种非常强大的营销工具,但社会工程师如何利用它呢?他们所需要做的就是说服目标对象,其他人已经遵守了请求,然后他们更有可能效仿。例如,以下钓鱼电子邮件摘录试图说服收件人点击恶意链接。然而,由于遭受到了负面社会证明,它不太可能收到太多的回应。

大家好,

我们正在努力推动我们的社交媒体存在。不幸的是,绝大多数员工还没有点赞我们的企业页面。请点击链接解决这个问题。

www.somesocialmediawebsite.com/

IT 支持

上述请求可能会取得一些成功,但如果我们添加正面社会证明,我们更有可能收到回应。

大家好,

感谢你对我们社交媒体推送的积极回应。你们部门的绝大多数人都已经给予了“赞”我们感到非常高兴。如果你还没有加入我们,请使用以下链接加入我们。

www.somesocialmediawebsite.com/

IT 支持

社会证据同样可以轻松地融入对话中来帮助攻击。例如,一个社会工程师可以简单地表示,他们已经与受害者的几个同事交谈过。在这个例子中,David 和 Simon 这两个名字同时充当了可信度和社会证据。

嗨,苏珊,我已经和你们部门的大卫和西蒙交谈过了。他们真的很有帮助,回答了我大部分的问题,请代我致谢。不过,他们说有几个问题你可能是最合适的人来回答,你有几分钟帮忙吗?

永远不要低估人们在人群中融入的愿望的力量!

信息的框架构造

从最基本的意义上讲,“框架构造”是关于以某种方式呈现信息,以引发特定的反应或引导观众的主观感知朝着某个方向发展。通常,框架构造用于以更积极的方式呈现信息,以鼓励观众“选择”那个特定的选项。例如,假设你在两台赌博机之间选择,它们都宣称有 100 英镑的头奖。这两台特别诚实地宣传了中奖的几率,并大胆地在全屏显示上进行了宣传。

第一台赌博机宣传如下:

每次游戏都有 35%的几率中奖。

另一台赌博机宣传如下:

每次游戏都只有 65%的几率不中奖。

你会选择哪一个?两台赌博机都宣传了相同的中奖几率,但你可以确信更多的人会选择第一台。

长期以来,一个非常普遍的例子是零售店如何以“高达 50%的折扣!”这样的声明来宣传促销活动。我们都非常清楚,绝大多数商品都不会打那么多折扣,事实上可能只有一个商品的折扣达到了那个数额。然而,尽管可以指责他们有点误导,但他们实际上只是以更积极的方式来呈现信息。

汽车经销商在定价商品时经常使用框架构造技巧。他们通常会使用广告语句,如“500 英镑起的二手车!”同样,可能只有一辆车以那么低的价格出售。一般来说,大多数人都很清楚,可能只有一辆车以那个价格出售。然而,积极的框架构造仍然会影响他们的决定,即使只是非常微妙地。

社会工程学中框架构造有哪些实际应用?前一节中包含了使用社会证据的示例,但也包含了一句利用“积极”框架的句子。

嘿,苏珊,我已经和你部门的大卫和西蒙交谈过了。他们非常乐意帮助,并回答了我大部分的问题,感谢他们。然而,还有几个问题他们说你可能是最合适回答的人,你有几分钟帮我解答吗?

以“… 然而,有…”开头的句子本来可以这样表达:

… 然而,他们回答不了几个问题,你能帮忙吗?

这样提问将同一个问题表达为负面情绪,这不太可能达到我们想要的效果。当以这种负面方式表达问题时,苏珊很可能会想:“如果他们回答不了,我为什么能够回答呢?”以更积极的方式表达问题,苏珊更有可能表示同意并回答问题(如果她能回答的话)。

作为一名社会工程师,你需要思考你的言行将如何被感知和解释。如果你能做出微小的改变,比如上面演示的那些改变,你就能显著改变目标的决策。和大多数社会工程技术一样,熟能生巧。

情绪状态

本章已经介绍了“压力和解决方案”的技巧。该技巧激发了强烈的负面情绪,然后提出了减轻或解决该情绪的解决方案。压力和解决方案是一种非常有效的技巧,但并不是唯一可以利用强烈情绪的方式。可以说,任何情绪都有可能促成一次攻击,这取决于目标是什么。情绪可以用来分散受害者的注意力或影响他们的决定。社会工程师的挑战在于利用情绪状态,使其成为有利因素,而不是场景中不稳定的变量。

首先要做出的决定是,情绪是由社会工程师呈现以影响受害者,还是由受害者自己激发。例如,激发受害者的同情要比自己表现同情更有用得多。同情你的受害者更有可能在他们能做的任何事情上提供帮助,这很容易被利用在一次攻击中。激发这种情绪可能不过是宣称你忘记了重要的事情、用拐杖行走或只是装傻。但是,要注意你试图激发同情的做法不会引起鄙视。

善良是一种明显的情绪,因为受害者很可能对一般善意的行为更为响应。然而,这种情绪可以更有效地利用回报的力量。因此,如果你能说服受害者你曾经帮过他们一臂之力,他们很可能会想要回报。由于社会工程学的前提往往是虚构的,“帮助”实际上并不需要真正发生,受害者只需相信它已经发生。

恐惧是一种极其强烈的情绪,通常被用作施加压力和解决方案的一部分。然而,恐惧也可以被用作一种有效的分散注意力的技术。可能所需的一切就是触发火警或报告炸弹警报,员工们就会非常分心。另一个例子是,社会工程师联系一名员工在家中解释说,有人闯入了办公室。他们解释说到处都是破碎的玻璃,许多设备和个人物品似乎被盗了。受害者可以清楚地听到办公室的警报声。社会工程师随后解释道:“警察正在赶来,所以我会随时通知你,你不需要过来。我试图关闭警报,但它不起作用,你通常用什么代码?”恐惧让受害者分心,不太可能对情况中的任何事情提出质疑。

信任是另一种可以轻易利用的情绪。许多读者会认为信任不是一种情绪,而是对另一个人的感知。然而,可以像激发任何情绪一样激发一个人的信任。一个女性社会工程师展示怀孕肚会在周围的人中引发大量的信任。如果假怀孕肚里含有像撬锁和投放盒这样的工具,那么你将拥有一个非常危险的社会工程师。

任何情绪都可以被社会工程师利用,他们的想象力是唯一的限制。然而,需要注意的是,情绪本质上是不可预测的。对强烈情绪的精心计划的利用很容易变成一连串无法控制的事件,对于社会工程师来说,这将导致非常困难的局面。

社会工程渗透测试教程(一)(3)https://developer.aliyun.com/article/1508471

相关文章
|
28天前
|
存储 Ubuntu 安全
ROS2教程02 ROS2的安装、配置和测试
本文是关于ROS2(机器人操作系统2)的安装、配置和测试的教程。内容包括使用一键安装脚本快速安装ROS2 Humble版,手动安装步骤,设置语言环境、添加软件源、更新软件包、安装ROS2桌面版和开发工具,配置ROS2环境,创建工作空间,配置ROS2领域以避免网络冲突,以及如何删除ROS2。此外,还包括了测试ROS2是否安装成功的两个案例:基本的Topic通信测试和使用Turtlesim演示程序。适用于Ubuntu 22.04操作系统。
56 1
ROS2教程02 ROS2的安装、配置和测试
|
13天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【9月更文挑战第5天】性能测试是确保应用在高负载下稳定运行的关键。本文介绍Apache JMeter和Locust两款常用性能测试工具,帮助识别并解决性能瓶颈。JMeter适用于测试静态和动态资源,而Locust则通过Python脚本模拟HTTP请求。文章详细讲解了安装、配置及使用方法,并提供了实战案例,帮助你掌握性能测试技巧,提升应用性能。通过分析测试结果、模拟并发、检查资源使用情况及代码优化,确保应用在高并发环境下表现优异。
40 5
|
27天前
|
测试技术 开发工具 虚拟化
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
这篇文章提供了一份保姆级的教程,指导如何在MacOS虚拟机上安装Xcode,包括环境准备、基础软件安装以及USB扩展插件的使用,以实现iOS自动化测试方案的第一步。
24 0
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
|
28天前
|
Java 测试技术 Maven
Junit单元测试 @Test的使用教程
这篇文章是一个关于Junit单元测试中`@Test`注解使用的教程,包括在Maven项目中添加Junit依赖、编写带有@Test注解的测试方法,以及解决@Test注解不生效的常见问题。
|
2月前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
63 2
|
2月前
|
Web App开发 XML Java
《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
66 3
|
2月前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
259 5
|
2月前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
50 6
|
2月前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
【7月更文挑战第12天】在本文中,作者宏哥介绍了如何在不使用PageFactory的情况下,用Java和Selenium实现Page Object Model (POM)。文章通过一个百度首页登录的实战例子来说明。首先,创建了一个名为`BaiduHomePage1`的页面对象类,其中包含了页面元素的定位和相关操作方法。接着,创建了测试类`TestWithPOM1`,在测试类中初始化WebDriver,设置驱动路径,最大化窗口,并调用页面对象类的方法进行登录操作。这样,测试脚本保持简洁,遵循了POM模式的高可读性和可维护性原则。
31 2
|
2月前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)
【7月更文挑战第11天】页面对象模型(POM)通过Page Factory在Java Selenium测试中被应用,简化了代码维护。在POM中,每个网页对应一个Page Class,其中包含页面元素和相关操作。对比之下,非POM实现直接在测试脚本中处理元素定位和交互,代码可读性和可维护性较低。
28 0