OneNote嵌入式URL滥用:新型恶意软件分发技术剖析

本文详细分析了攻击者如何滥用OneNote的嵌入式URL功能进行恶意软件分发,包括三种具体的URL嵌入技术,并探讨了相应的检测方法及微软安全产品的防护局限性。

OneNote嵌入式URL滥用

Nicholas Dhaeyer

蓝队,Qbot,OneNote,网络威胁,恶意文档,网络钓鱼,恶意软件,安全运营中心,威胁狩猎

2023年3月27日 / 2025年1月17日更新 阅读时长:5分钟

本篇是《OneNote作为恶意软件交付平台》系列文章的第2部分。

在我之前的博客文章中,我描述了OneNote如何被滥用以传递恶意URL。针对此类攻击,helpnetsecurity最近报道称,微软计划在今年四月发布针对此问题的修复程序。目前,尚不清楚该修复程序的具体形式,但从helpnetsecurity的文章来看,微软的修复似乎将重点放在OneNote的嵌入式文件功能上。 在我的测试过程中,我发现还有另一种滥用OneNote传递恶意软件的方法:利用URL。其思路与威胁行为者已在HTML页面或PDF中滥用URL的方式类似。即向用户呈现一个虚假的警告或图像,诱使其点击,从而在其浏览器中打开URL并加载钓鱼页面。 本篇博客文章的重点在于通过附件传递的OneNote文件内部包含的URL,而非指向OneNote在线服务的链接。

通过OneNote文件传递URL有3种方式:

  1. 直接将URL粘贴到OneNote文件中(可点击的URL)
  2. 将某些文本(如“打开”)设置为可点击,并链接到恶意URL(可点击的文本)
  3. 在图片中嵌入URL(可点击的图片)

需要注意的是,这三种方式都依赖于社会工程学,通过指示或欺骗诱使用户点击你的URL或图片。我们已经观察到这种技术通过OneDrive和SharePoint Online被使用。 那么,让我们创建一些示例,看看这种攻击可能是什么样子。

OneNote中的URL 可点击的URL 最直接的方法是将URL直接放入OneNote文件中。在实际的网络钓鱼电子邮件中,OneNote文件可能不仅仅包含URL。为了使内容更可信,威胁行为者可能会在OneNote文件中编写一个小故事或一段“加密”信息(如下例所示)。其想法是说服用户点击URL以“解密”信息。一旦点击URL,用户随后将不得不下载某些内容或提供凭据以“登录”。 如果你想阅读OneNote文件中的信息,则必须点击URL。这可能导致下载恶意文件或跳转到凭据窃取页面。 此类“加密”信息示例如下:

(示例图片:一个伪造的加密消息,用户必须点击URL才能解密)

可点击的文本 与可点击的URL类似,你可以将URL隐藏在普通文本后面。当你将鼠标悬停在URL上时,你会看到它指向何处。如果该地址指向一个使用域名仿冒(例如,用g00gle[.]com代替google[.]com)的恶意域名,那么威胁行为者就可以欺骗人眼。

(示例图片:文本“打开”背后隐藏着一个恶意URL)

这里的问题在于,一旦你点击“打开”文本,你将立即被重定向到网站。不会有弹出窗口询问你是否确实要访问该网站。 考虑到这种技术,也可以使用我们之前的“加密信息”示例,让用户认为他们将访问一个合法页面,但实际嵌入不同的URL:

(示例图片:可见的URL“https://microsoft.com”背后隐藏着一个恶意URL)

可点击的图片 要在图片中嵌入URL,请右键单击图片,然后点击“链接…”。 在这里,你可以输入指向恶意文件或钓鱼页面的URL。是的,你可以编造一个故事,说你需要通过一个伪造的登录网站进行身份验证并登录到浏览器。 请注意,要打开嵌入在图片中的URL,你需要按住Ctrl键并点击图像。网络钓鱼文档将不得不指示用户按住Ctrl键并点击图片;然而,我不认为这对威胁行为者来说是一个障碍。

(示例图片:一个带有“打开”按钮的图片,其中嵌入了恶意URL)

检测能力 关于OneNote交互 打开URL将启动默认浏览器。这可以解释为OneNote生成一个子进程,即浏览器。完整的进程流程可能如下所示: explorer.exe > Outlook.exe > OneNote.exe > firefox.exe 请注意,正如Outlook通常所做的那样,一旦你点击文件,它会在临时缓存文件夹中保存一个副本(根据你的Outlook版本,其位置可能与上图所示略有不同,但通常你会在文件夹路径中看到INetCacheContent.Outlook字样)。 针对此行为的快速狩猎规则可以是查找之前观察到的进程树。可以根据环境需求调整此进程树,具体取决于所使用的浏览器(例如,如果你运行的是brave.exe,则应将其包含在查询的“FileName”部分中):

1
2
3
DeviceProcessEvents
| where InitiatingProcessFileName contains "onenote.exe"
| where FileName has_any ("firefox.exe","msedge.exe","chrome.exe")

如果你想采用更“广泛捕获”的方法,可以将最后一行替换为一个查询,该查询查看命令行并查找http或其他协议(如ftp),因为基于Chromium和Firefox的浏览器都接受URL作为命令行参数来打开特定网站。

1
| where ProcessCommandLine has_any ("http","ftp")

关于电子邮件传递 在我们的测试过程中,Microsoft Defender未能检测和提取嵌入在OneNote文件中的URL,如下方截图所示。Defender既无法从OneNote文件中提取URL,也无法显示文件中嵌入了URL。

(示例图片:未从OneNote附件中提取到URL)

这也意味着微软不会为该URL创建安全链接,因此威胁行为者可以绕过“点击潜在恶意URL”的警报,该警报有助于防范钓鱼页面,因为它依赖于监控URL点击,而如果未检测到URL,则此功能失效。

结论 虽然OneNote中的嵌入式文件目前仍然是一个重大威胁,但你不应忘记,还有其他滥用OneNote功能的方式可用于恶意目的。正如我们观察到的,微软不会从OneNote文件中提取URL,并且存在多种方法来避免检测和诱骗用户点击URL。从那里开始,使用相同的战术来传递第二阶段的恶意软件,无论是通过包含恶意脚本的ISO文件还是ZIP文件。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计