前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OneNote 作为恶意软件分发新渠道持续增长

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

作者头像
FB客服
发布于 2024-06-25 01:25:25
发布于 2024-06-25 01:25:25
1280
举报
文章被收录于专栏:FreeBufFreeBuf
目前,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 位置和类型。

示例 OneNote 文件

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

示例 OneNote 文件

示例 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 标记、框二为嵌入对象的大小、框三为实际嵌入的对象。

嵌入对象

Payload 类型

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

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

Payload 类型分布

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

平均文件大小

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

嵌入图片

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

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

平均图片数量

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

内嵌 EXE 文件

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

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

恶意样本

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

调试过程

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

WSAStringToAddressA 函数

WSASpclertW 函数

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

ws2_32.dll 函数

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

sockaddr_in 结构体

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

解析代码

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

解析结果

结论

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

https://unit42.paloaltonetworks.com/payloads-in-malicious-onenote-samples/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于Docker服务磁盘空间清理的总结
Docker的镜像(image)、容器(container)、数据卷(volume), 都是由daemon托管的。 因此,在需要清理时,也需要使用其自带的手段。
用户8851537
2021/07/27
3.1K0
Docker基础命令大全
-i:–interactive 以交互模式运行容器,通常与 -t 同时使用,即使未连接STDIN也保持打开状态
JavaEdge
2021/02/22
5100
docker commit 参数
本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/98/
羽翰尘
2019/11/20
9730
常用的docker命令
# 有必要对Docker常用的命令做一次梳理: 获取镜像 sudo docker pull NAME[:TAG] sudo docker pull centos:latest\ 罗列所有镜像 docker images 删除镜像,从本地删除一个已经下载的镜像 sudo docker rmi IMAGE [IMAGE...] sudo docker rmi centos:latest 创建docker容器 并进入 webdemo1 docker run -it --name webdemo1 -p 8
summerking
2022/09/19
2990
Docker Curriculum
Learn to build and deploy your distributed applications easily to the cloud with Docker.
Cellinlab
2023/05/17
2010
Docker Curriculum
Docker 容器镜像删除Docker 容器镜像删除
想要删除untagged images,也就是那些id为<None>的image的话可以用
用户2235302
2018/09/19
4.4K0
Docker 容器镜像删除Docker 容器镜像删除
Docker小白的福音:50条Docker命令清单,干就完了!
Docker可以让开发人员、运维人员更容易使用容器创建、部署和运行应用程序。掌握一些必备的Docker命令对于使用Docker的工程师非常重要,那么今天笔者给大家整理了一份Docker的命令备忘单,希望大家可以好好保存,在使用的时候可以拿出来查阅使用。
网络技术联盟站
2022/07/21
1.6K0
Docker小白的福音:50条Docker命令清单,干就完了!
Docker删除image和container
ps查看PID ps -ef | grep grafana | grep -v grep # 查看所有的grafana进程,并去除掉当前的grep进程。 ps -aux | grep grafana #查看所有grafana进程 kill -9 PID #通过PID强制杀死进程 (sudo kill -9 PID)
软测小生
2020/04/01
1.1K0
CI / CD+ Docker 综合实战
3、打包生成的代码,生成一个新版本的镜像,push到本地docker仓库harbor
BUG弄潮儿
2021/05/17
6860
CI / CD+ Docker 综合实战
docker︱在nvidia-docker中使用tensorflow-gpu/jupyter
本文介绍了如何在深度学习中利用Docker和NVIDIA GPU进行高效的GPU加速计算,同时探讨了如何安装和配置Docker和NVIDIA GPU驱动,以及如何使用Docker和TensorFlow进行GPU加速的深度学习模型训练。
悟乙己
2018/01/02
4.9K0
docker︱在nvidia-docker中使用tensorflow-gpu/jupyter
如何删除docker images/containers
docker images往往不知不觉就占满了硬盘空间,为了清理冗余的image,可采用以下方法:
星哥玩云
2022/07/03
2.1K0
docker基本操作
镜像 docker search nginx ⬅️来查看可用镜像 docker pull redis:latest ⬅️下载镜像 docker images ⬅️查看本地镜像 docker rmi {IMAGE_ID} ⬅️删除一个或多个镜像 docker rmi `docker images -q` ⬅️删除全部镜像 docker build -f ./Dockerfile -t php:v1-swoole . docker save {IMAGE_ID} -o image.tar nginx:la
崔哥
2022/05/25
4190
CentOS 7安装Docker V1.0
rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
知忆
2021/06/08
6360
Docker常用删除命令
想要删除untagged images,也就是那些id为<None>的image的话可以用
用户1212940
2022/04/13
1.2K0
Docker常用命令
用户11124775
2024/06/28
1110
Docker基本使用
Docker能做什么 The key benefit of Docker is that it allows users to package an application with all of its dependencies into a standardized unit for software development. 提供一个虚拟的操作平台,供我们安装依赖不同版本系统的工具软件。 提供一个即时可用的应用软件或者流程的镜像,开发者把软件部署到系统镜像中, 使用者可以直接下载下来使用,省去了个人安
生信宝典
2018/02/05
8040
一键启动关闭删除docker容器或者images
脚本有待优化,由于时间问题,暂时先搁置优化,后期会慢慢再次优化到可以以每个容器或者images来操作! #! /bin/bash ##start,stop,delete the docker containers ##written by zhdya_20170914 list=`docker ps -a |awk '{print $2}'| grep -v 'ID'` echo "=============================================================
老七Linux
2018/05/31
7560
Docker-删除untagged docker images
[root@entel1 ~]# docker rmi entel_zmc_images:zmc_base Untagged: entel_zmc_images:zmc_base
小小工匠
2021/08/16
1.1K0
Docker Review - docker images 常用命令
文档: https://docs.docker.com/engine/reference/commandline/docker/
小小工匠
2022/11/30
4280
Docker Review - docker images 常用命令
docker常用命令详解
docker logs -t –since=“2018-12-26 06:39:22” –until “2018-12-26 06:39:55” c-front
全栈程序员站长
2021/06/09
8610
docker常用命令详解
相关推荐
关于Docker服务磁盘空间清理的总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档