OneNote Embedded 文件滥用检测

天翼云开发者社区
• 阅读 74

本文分享自天翼云开发者社区《OneNote Embedded 文件滥用检测》,作者:Icecream 攻击技术 在这些网络钓鱼活动中被滥用的OneNote功能是在图片后面隐藏嵌入式文件,诱使用户点击图片。如果图片被点击,它将执行隐藏在下面的文件。这些文件可能是可执行文件、JavaScript文件、HTML文件、PowerShell、.... 基本上任何类型的文件,在执行时都可以执行恶意软件。最近,我们还观察到.chm文件的使用情况,它有一个嵌入的index.html文件,将运行内联的JavaScript。在Windows系统中,这大致上是指执行脚本/文件的以下进程之一:.index.html,'powershell.exe', 'pwsh.exe', 'wscript.exe', 'cscript.exe', 'mshta.exe', 'cmd.exe', 'hh.exe' OneNote Embedded 文件滥用检测 OneNote 文件剖析 OneNote 文件使用GUID来指示嵌入文件部分的开始。在 OneNote 中表示嵌入文件开始的 GUID 是:{BDE316E7-2665-4511-A4C4-8D4D0B7A9EAC}使用下面的工具(https://toolslick.com/conversion/data/guid)我们可以将 GUID 转换为 HEX 字符串:e716e3bd65261145a4c48d4d0b7a9eac。 如果使用 HEX 编辑器,您可以搜索此字符串并找到嵌入文件的确切位置。 OneNote 将保留 20 个字节。前 8 个字节用于指示文件的长度,后面的 4 个字节未使用且必须为零,最后 8 个字节保留且也为零。这导致以下十六进制字符串E7 16 E3 BD 65 26 11 45 A4 C4 8D 4D 0B 7A 9E AC ?? ?? ?? ?? ?? ?? ?? ?? 00 00 00 00 00 00 00 00 00 00 00 00在嵌入文件数据存在之前。

当通过 HEX 编辑器查看 OneNote 文件时,很快就会清楚 OneNote 不会尝试加密或压缩任何内容。也就是说,如果您正在查看的.one文件不是.onepkg. 文件.onepkg类似于包含从 OneNote 笔记本导出的文件的 ZIP 文件。可以使用 7zip 打开这些文件。 OneNote 文件 ( .one) 将显示嵌入文件的内容,如下所示: OneNote Embedded 文件滥用检测 这意味着我们可以在分析这些文件时轻松检查已知的误报,这将我带到下一点,创建检测规则。

YARA规则 创建一个检测规则来捕获所有恶意嵌入文件并不容易,因为通常脚本没有“魔法字节”,不像可执行文件具有著名的“MZ”标头。虽然创建一个看起来像之前观察到的十六进制字符串 + MZ 文件头的 YARA 规则很容易,但这只会标记嵌入式可执行文件。如果这是你的目标,那么这是一个很好的规则,但是我想要一些更灵活的东西,我可以在电子邮件网关上使用它来标记所有潜在的恶意传入 OneNote 文件。

所以我采取了不同的方法。我观察到在 OneNote 文件中嵌入图片(例如:屏幕截图)是很常见的。我没有观察到很多嵌入了其他文件的案例。这导致我创建了一个 YARA 规则,该规则将查看 OneNote 文件,忽略指示图像存在但会在观察到任何其他文件时发出警报的文件部分。因此,我不会寻找恶意文件,而是会忽略已知的合法文件。这个简单的技巧让我能够创建一个高置信度的检测规则,同时不会让分析师因太多误报而超载。

当然每个环境都是不同的,如果你的环境中的 OneNote 文件中嵌入 PDF 文件很常见,你也应该排除那些 PDF 文件。因此,在测试期间建立基线很重要。 下面是这种技术的一个例子。00之后的 '也可以??替换为。??尽管这些字节应始终为空,但如果字节被更改,此规则将不会检测文件。

{
    meta:
        author = "Nicholas Dhaeyer - @DhaeyerWolf"
        date_created = "2023-02-14 - <3"
        date_last_modified = "2023-02-17"
        description = "OneNote files that contain embedded files that are not pictures."
        reference = "https://blog.didierstevens.com/2023/01/22/analyzing-malicious-onenote-documents/"

    strings:
        $EmbeddedFileGUID =  { E7 16 E3 BD 65 26 11 45 A4 C4 8D 4D 0B 7A 9E AC }
        $PNG = { E7 16 E3 BD 65 26 11 45 A4 C4 8D 4D 0B 7A 9E AC ?? ?? ?? ?? ?? ?? ?? ?? 00 00 00 00 00 00 00 00 00 00 00 00 89 50 4E 47 0D 0A 1A 0A }
        $JPG = { E7 16 E3 BD 65 26 11 45 A4 C4 8D 4D 0B 7A 9E AC ?? ?? ?? ?? ?? ?? ?? ?? 00 00 00 00 00 00 00 00 00 00 00 00 FF D8 FF }
        $JPG20001 = { E7 16 E3 BD 65 26 11 45 A4 C4 8D 4D 0B 7A 9E AC ?? ?? ?? ?? ?? ?? ?? ?? 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0C 6A 50 20 20 0D 0A 87 0A }
        $JPG20002 = { E7 16 E3 BD 65 26 11 45 A4 C4 8D 4D 0B 7A 9E AC ?? ?? ?? ?? ?? ?? ?? ?? 00 00 00 00 00 00 00 00 00 00 00 00 FF 4F FF 51 }
        $BMP = { E7 16 E3 BD 65 26 11 45 A4 C4 8D 4D 0B 7A 9E AC ?? ?? ?? ?? ?? ?? ?? ?? 00 00 00 00 00 00 00 00 00 00 00 00 42 4D }
        $GIF = { E7 16 E3 BD 65 26 11 45 A4 C4 8D 4D 0B 7A 9E AC ?? ?? ?? ?? ?? ?? ?? ?? 00 00 00 00 00 00 00 00 00 00 00 00 47 49 46 }

    condition:
        $EmbeddedFileGUID and (#EmbeddedFileGUID > #PNG + #JPG + #JPG20001 + #JPG20002 + #BMP + #GIF)
}

规则背后的逻辑如下;YARA 规则将匹配任何具有定义嵌入文件存在于 OneNote 文件中的 GUID 的文件。然后它将计算它找到的 GUID 的数量。如果这大于直接跟在图像文件后的 GUID 数量(此处指定为#PNG + #JPG + #JPG20001 + #JPG20002 + #BMP + #GIF),则意味着存在其他文件并且规则火柴。如果不是,则该文件仅包含图像并被认为是安全的。

文件被标记后,分析师仍应查看嵌入的文件。DissectMalware(https://github.com/DissectMalware/pyOneNote)创建了一个惊人的 python 脚本,有助于提取嵌入式文件。分析师或自动化系统可以分析文件并提供更多上下文,以确定提取的文件是否是恶意的。

结论 这篇文章旨在引导您逐步完成创建 YARA 检测规则的过程,该规则可以帮助您防止受到其中一个样本的危害。创建这样的检测规则时应该考虑的是,您必须从一个基线开始,在这个基线中您知道哪些嵌入式文件在您的环境中是常用的。虽然此 YARA 规则可以在“阻止”模式下使用,它会阻止所有与此规则匹配的电子邮件,但建议在“警报”模式下使用此 YARA 规则,其中会为 SOC 团队创建警报,并且电子邮件一直保留到附件分析完成,因为这将最大限度地减少可能的合法文件被阻止的影响。

点赞
收藏
评论区
推荐文章
Springfox与SpringDoc——swagger如何选择(SpringDoc入门)
本文分享自天翼云开发者社区@《》,作者:才开始学技术的小白0.引言之前写过一篇关于swagger(实际上是springfox)的使用指南(https://www.ctyun.cn/developer/article/371704742199365),涵盖了
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
Linux应急响应(四):盖茨木马
0x00前言Linux盖茨木马是一类有着丰富历史,隐藏手法巧妙,网络攻击行为显著的DDoS木马,主要恶意特点是具备了后门程序,DDoS攻击的能力,并且会替换常用的系统文件进行伪装。木马得名于其在变量函数的命名中,大量使用Gates这个单词。分析和清除盖茨木马的过程,可以发现有很多值得去学习和借鉴的地方。0x01应急场景
创建云主机你不知道的那些事
本文分享自天翼云开发者社区《》,作者:乐道在界面上简简单单点击了一下创建云主机,但是后台发生了什么?大家清楚吗?本文将详细为大家讲述整个云主机创建的流程1、根据资源ID查询云主机基础信息表,如果该表里面存在云主机相关信息,会抛出异常(应该只是针对云主机名称
云备份技术解析:云容灾 CT-CDR 关键技术介绍
本文分享自天翼云开发者社区《》,作者:沈军1、CDP存储快照,实现秒级RPO(1)CDP技术:云容灾CTCDR(CloudDisasterRecovery)采用CDP(ContinueDataProtection)技术,能够在IO级别进行复制能极大的提升
云备份技术解析:云备份 CT-CBR 关键技术介绍
本文分享自天翼云开发者社区《》,作者:沈军1、增量备份备份策略可以分为全量备份、差异备份、增量备份。(1)全量备份(FullBackup),备份所有指定的文件夹和文件,不做文件筛选,对某个时间点上的所有数据进行完全拷贝。好处是每次备份数据相对独立,不依赖历
勒索软件介绍
本文分享自天翼云开发者社区《》,作者:沈军勒索攻击介绍勒索软件是当前主要网络攻击威胁,一般通过木马病毒的形式传播,将自身掩盖为看似无害的文件,利用钓鱼邮件或软件漏洞等方式进行攻击,攻击后将受害者主机硬盘上的文件进行加密,以此来达到勒索的目的。所有的勒索软件
如何检测 Sliver C2 框架活动
本文分享自天翼云开发者社区《》,作者:IcecreamSliver是一个开源的跨平台对手模拟/红队框架,为渗透测试目的而开发,但与其他类似软件如CobaltStrike一样,也被网络犯罪分子用于恶意活动。由于其多功能性和灵活性,它在网络犯罪团伙中越来越受欢
PostgreSQL:内存结构
本文分享自天翼云开发者社区@《》,作者:我是小朋友在Postgresql中,内存大概被分为两块Localmemoryarea:为每一个backendprocess分配的内存Sharedmemoryarea:PostgreSQLserver所有的backgr
PostgreSQL:进程结构
本文分享自天翼云开发者社区@《》,作者:周平Postgresql是一个C/S架构的关系型数据库,由多个后台进程管理数据库,下面分别介绍一些这些进程postgresserverprocess一个服务器端进程,是所有进程的父进程。该进程管理数据库文件,接受客户
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
808
粉丝
16
获赞
40