你只是为了说服用户点击你的链接而进行了漫长而艰苦的斗争。他们很想知道您启用了宏的 excel 文件的内容。所以,不要让网络代理通过阻止你的有效载荷来破坏你的乐趣!我们正处于主场,但这并不意味着我们还没有取得胜利。
过去的好日子
我记得很清楚。那一年是 2014 年,我作为一名初出茅庐的渗透测试员开始了我的第一次网络钓鱼探险。我启动了我的 Metasploit 侦听器,用 Veil 铸造了一个 EXE 有效载荷,并将其命名为“dresscode_policy.doc.exe”。我发送了电子邮件,作为回报,我得到了从深蓝色互联网上如雨点般涌入的大量炮弹的祝福。在那些日子里,似乎总是会有网络钓鱼在桌面上。现在回想起来,我简直不敢相信这曾经如此简单。
其它相关课程
linux高级usb安全开发与源码分析视频教程
linux程序设计与安全开发
恶意软件开发
windows网络安全防火墙与虚拟网卡(更新完成)
windows文件过滤(更新完成)
USB过滤(更新完成)
游戏安全(更新中)
ios逆向
windbg
还有很多免费教程(限学员)
更多详细内容添加作者微信
稀疏的水域
我们继续年复一年地鲁莽地放弃对同一水域进行过度网络钓鱼,现在网络钓鱼不再像以前那样咬人了。同样的诱饵是行不通的。同样的网是空的。我们只能责怪自己如此自私(selphish?我们使用了像鱼叉这样的 EXE,现在除非签名,否则它们会被完全阻止。我们编织了 PowerShell 的网络,直到 AMSI 和受约束的语言模式将它们剪成丝带。我们用 Excel 宏挖掘了大量用户,直到 Microsoft 几乎完全取消了宏。我们甚至利用网络的标记绕过了濒临灭绝的边缘。
我们将如何再次捕获网络钓鱼?
到底发生了什么
我有点夸张,但我确实想提出一点:
防御适应威胁,而我们就是威胁。
随着新的网络钓鱼技术的出现,最明显的防御措施之一一直是尝试根据其文件类型阻止初始访问有效负载。有人开始在 Microsoft Excel 加载项 (XLL) 文件中攻击恶意软件,突然之间,大多数组织完全阻止这些文件是有道理的。几个月前还在“工作”的有效载荷类型往往会产生太大的噪音,现在会被阻塞。
我们可能会为我们最喜欢的初始访问有效载荷(R.I.P. OLE)的下降而哀悼,但并非所有的希望都消失了。让我们从高层次来讨论初始访问的挑战,以便我们可以更清楚地看到我们的选项。首先,我们将讨论目标,然后讨论防御,最后是绕过!
它可以运行代码吗?
如果文件类型可以运行代码,或者打开另一个可以运行代码的应用程序,则它可能用于初始访问。要获取潜在危险文件的完整列表,我们可以查看Outlook上默认阻止的文件:
https://support.microsoft.com/en-us/office/blocked-attachments-in-outlook-434752e1-02d3-4e90-9124-8b81e49a8519
该列表长达 120 个条目!考虑到Outlook仍然允许危险的文件类型,例如启用宏的Office文档,即使这也不是完整的列表。多亏了 @mrd0x,另一个很好的来源是 filesec.io:
https://filesec.io/#
使用“双击”过滤器查找对网络钓鱼特别有用的文件类型。这些“双击”文件在用户单击时启动一些操作。通常运行某种类型的脚本或可执行文件。该列表有 77 个条目!
我们的初始访问目标是成功地将这些文件中的至少一个成功交付给目标,并说服他们打开/运行它。允许的文件类型会因目标环境中的控件而异,但极不可能阻止所有这些文件类型。通常,这些“危险”文件中的几个在业务流程中使用,并应用了异常。我们只需要找到一个例外!
长城
我们和目标之间有一堵墙。它两旁布满了想要摧毁我们的有效载荷的炮塔。这面墙由公司代理、公司防火墙和目标的浏览器组成。每个网站都可以查看用户正在下载的内容,并且每个网站都会试图阻止用户邀请我们加入网络,但他们的视力存在问题。他们实际上只有三种方法可以知道正在下载的文件类型,我们可以控制每一种。
扩展名 — 文件名的最后一个字符(例如,doc、txt、exe)
MIME 类型 — 我们在服务器响应标头中指定的内容类型(例如,application/msword、text/plain、application/x-msdownload)
幻数 — 文件中的第一个字节(例如,“50 4B 03 04”表示 .zip 文件,“4D 5A”表示 Windows 可执行文件)
在正常情况下,这些指标都应该讲述一个一致的故事,例如:
扩展名为“exe”的 Windows 可执行文件,MIME 类型为“application/x-msdownload”,前两个字节为“4D 5A”(“MZ”标头)。
因此,您可以编写一个程序来根据任何单一特征检测这些危险文件。基于这三者编写检测将是极其多余的。我怀疑许多软件工程师都犯了这个错误。选择一个指标,编写检测逻辑,并认为这就足够了。但是,使它变得危险的是文件的内容,而不是其名称、MIME 类型或幻数。现在我们已经清楚地看到了我们的对手,让我们来谈谈我们如何可能绕过他们的监视。
绕过
正如我所提到的,我们需要绕过代理、防火墙和浏览器控制,才能在目标系统上获取我们的有效载荷;但是,举例来说,假设这些控制措施中限制性最强的是公司代理。系统管理员已微调其代理规则,以阻止任何通过 HTTP 和 HTTPS 下载已知恶意文件类型的尝试。类似的规则也适用于其他两个控件,但现在只关注一个控件会有所帮助。
绕过 1 — 异常
我告诉过你,代理会阻止所有恶意文件,但你真的要不经测试就相信我的话吗?噗噗噗噗!如前所述,我们可以使用大量潜在的恶意文件类型。有些可能太晦涩难懂,网络防御者甚至都不知道。由于业务需求,可能需要明确允许其他人。如果 OneDrive 上托管的每个 Office 文档突然被阻止,这不会给许多公司带来问题吗?我们的系统管理员要承受多长时间的热量才能屈服并出现异常?在实践中,我经常出人意料地发现这些,所以你可能会很幸运。
绕过 2 — 嵌入到 HTML 中
您知道吗,您可以在浏览器中用 JavaScript 动态生成一大堆数据,然后仅使用 JavaScript 将内容“下载”到文件中?对于大多数浏览器来说,这是一个完全合法的功能。例如,Web 开发人员可能需要一种方法在页面上公开一个按钮,以便将“表”元素的内容下载到用户的 CSV 文件中。
我们可以使用相同的功能将任意文件内容下载到任意文件名。这种技术对我们如此有用的原因是,无需单独调用服务器来下载有效载荷。我们可以将有效载荷的内容放入 HTML 文档的“script”标签中,就像特洛伊木马一样。代理只会看到正在下载的 HTML 文档,而不知道其中包含另一个恶意文件。这种技术被称为“嵌入 HTML”,有几种工具可以帮助我们自动化武器化。这是我多年来一直使用的一个:
https://github.com/Arno0x/EmbedInHTML
您可能需要进行一些调整,以便不会根据模板进行签名,但该项目是一个很好的示例,说明如何使用加密来很好地执行此攻击,以进一步保护您的有效负载。
绕过 3 — 受密码保护的 ZIP
我发现ZIP文件在公司环境中是非常普遍的。ZIP 的合法用途如此之多,以至于完全阻止它们将是令人望而却步的。为了考虑到可能危险的ZIP文件,许多安全产品实际上会解压缩内容以查看其中的内容,然后再确定它是否安全。
但是,如果他们无法打开它怎么办?如果我们在网络钓鱼电子邮件中包含一个密码,然后目标将使用它来打开受密码保护的ZIP文件,该怎么办?在大多数情况下,安全产品将无法正确审查文件,但无论如何都会让用户下载它。我已经使用这种技术取得了巨大的成功,将各种粗略的文件类型滑过了公司代理。
绕过 4 — FTP 和 WebDAV
您知道大多数浏览器都支持 FTP URL 吗?在我们的示例中,一个限制性极强的 Web 代理阻止 HTTP 和 HTTPS 的下载,将用户发送到 FTP 共享可能会在不被注意的情况下溜走。此外,根据代理设置的应用方式,可能不会在访问 WebDAV 共享explorer.exe强制执行这些设置。在这种情况下,您可以指示目标复制 UNC 路径并将其粘贴到文件资源管理器中。
绕过 5 — MIME 诡计
有时,我们可以让接收 Web 浏览器根据其 MIME 类型了解“真实”有效负载类型,并欺骗文件扩展名。一个典型的例子是,Internet Explorer 将 MIME 类型为“application/hta”的任何文件视为 HTA 文件,并提示用户执行它。如果我们的示例代理根据文件扩展名阻止了我们的“payload.hta”文件,我们可以简单地将文件重命名为“payload.pdf”,同时仍然从我们的服务器指定 HTTP 标头“Content-Type:application/hta”。
绕过 6 — 更改扩展
假设您想要提供一个 PowerShell 脚本来暂存您的恶意软件,但代理阻止了 PS1 文件。如果我们只是将脚本放在 TXT 文件中,然后要求目标用户为我们更改文件名,该怎么办?同样,您可以向文件添加一个无意义的扩展名,然后指示用户他们需要选择一个应用程序来打开它(例如,PowerShell)。当然,这不如让他们双击文件那么方便,但您可能会惊讶于,如果我们已经将它们挂在钩子上,我们可以将哪些其他请求附加到我们的网络钓鱼消息中。
旁路 7 — 魔术数字踩踏
我见过很多案例,我成功地交付了一个用 Windows 脚本实用程序(如 PowerShell、VBA、JScript 等)编写的舞台器,并看到我的舞台器请求加载全部有效负载,结果舞台器立即死了。在其中一些案例中,我发现,由于我正在暂存 .NET 程序集或其他 Windows 可执行文件,因此我的完整有效负载的下载会根据文件的前两个字节进行签名和阻止。在本例中,所有 Windows EXE 和 DLL 文件前面的“MZ”标头。为了解决这个问题,一个被证明非常有效的快速修复方法是从文件中删除前两个字节,然后使用我的舞台器中的一些逻辑以编程方式将它们添加回来。
绕过 8 — 毒害现有文档
如果我们使用 CuddlePhish 首先访问 O365、Gmail 或 Okta,然后滥用目标对我们在 OneDrive、Teams、Google Drive 等上找到的后门文件的访问权限,而不是尝试直接通过我们的网络钓鱼活动提供有效载荷,该怎么办?如果您不熟悉 CuddlePhish,我们可以使用它来绕过多因素身份验证 (MFA),同时强制网络钓鱼目标为我们登录服务。
这里的重点是,我们不是从我们的网络钓鱼站点提供有效载荷,而是将访问权限定为我们期望目标组织存储和共享文档的地方。您甚至可以更进一步,使用对 Outlook 网络邮件和 Teams 的访问权限向目标组织的其他员工发送消息,并提示他们“查看对有毒文档的更改”。
向船上的鲸鱼致辞:又名网络标志
许多红队成员对网络标记 (MOTW) 感到气馁,并将其视为他们希望在网络钓鱼期间提供的任何有效载荷的死刑判决。我不得不说,事实并非如此。我认为 MOTW 很少是网络钓鱼有效载荷棺材上的最后一颗钉子。首先,我知道至少有两个 MOTW 绕过仍然有效(对不起,但我目前不分享这些),所以我知道肯定会有更多。如果你四处挖掘,那么我相信你能找到一个。
其次,MOTW 并不总是意味着您的有效载荷在水中肚皮朝上并死在水中。对于许多文件类型,它只是添加另一个或两个烦人的提示,以确保用户真的想要“保留”和“打开”粗略的文件。
最后,您可以随时要求目标右键单击该文件,选择“属性”,然后选中“解锁”按钮:
真的就这么简单!请记住,这绝对是最困难的 MOTW 旁路,而且并不难。大多数用户都愿意并能够为您执行此绕过操作。
综上所述
代理、防火墙和浏览器将尝试阻止粗略的文件,这在尝试通过网络钓鱼提供有效载荷时确实可以让我们失去动力。幸运的是,我们有选项,大约有几十到数百个选项,因此不太可能阻止每种可能恶意的文件类型。此外,大多数安全产品仅根据我们可以控制的属性阻止文件类型。因此,我们可以使用一些技巧来绕过它们。最坏的情况是,我们只需要一些额外的社会工程来让我们的目标在打开/运行我们的有效负载之前进行文件修改。
记住!网络钓鱼是朋友,不是食物......
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...