概述
近期,安天CERT监测到一起利用OneNote文档投递Snake Keylogger窃密木马的网络钓鱼活动。攻击者向用户发送钓鱼邮件,诱导用户打开附件中的OneNote文档,执行OneNote文档中隐藏在图片下方的恶意文件,从而在用户主机上运行Snake Keylogger窃密木马。
自从微软宣布默认阻止Office文档中的宏之后,攻击者尝试使用其他类型的文件作为传播恶意软件的新型媒介。利用OneNote文档传播恶意文件的网络钓鱼活动于2022年底开始增多,目前已有多个恶意代码家族利用OneNote文档进行传播活动,包括Snake Keylogger、AsyncRAT、QBot、Emotet、IcedID、Formbook、RedLineStealer、AgentTesla等。攻击者通常会在OneNote文档中插入一张模糊的或者与钓鱼邮件主题相关内容的图片,诱导用户双击图片中的指定部分进行查看,并且可以在文档中嵌入各种类型的恶意文件,将多个相同的恶意文件隐藏在图片下方,以确保用户双击图片指定部分时能够点击到任意一个恶意文件。若用户无视风险警告继续执行,恶意文件就会进行后续的攻击流程。
Snake Keylogger窃密木马于2020年底出现,是一种使用.NET开发的恶意软件。该窃密木马能够在受害主机上执行键盘记录、获取屏幕截图、获取剪贴板内容、窃取目标应用软件中保存的用户名及密码信息等窃密功能,并具备多种数据回传方式。窃密木马在受感染系统中实施隐藏、驻留、搜集、监控等恶意行为,从而将敏感数据按照攻击者的需求进行传输,给用户造成收入损失、声誉损害等严重后果,攻击者还能够利用从用户处窃取的数据实施后续的攻击活动。
事件对应的ATT&CK映射图谱
针对攻击者投递窃密木马的完整过程,安天梳理本次攻击事件对应的ATT&CK映射图谱如下图所示:
图 2‑1技术特点对应ATT&CK的映射
攻击者使用的技术点如下表所示:
ATT&CK阶段/类别 | 具体行为 | 注释 |
资源开发 | 获取基础设施 | 获取数据回传服务器 |
环境整备 | 将恶意文件存放在文件托管网站 | |
初始访问 | 网络钓鱼 | 通过钓鱼邮件传播 |
执行 | 利用命令和脚本解释器 | 执行VBS脚本、PowerShell命令 |
诱导用户执行 | 诱导用户执行恶意文件 | |
持久化 | 利用计划任务/工作 | 创建计划任务实现持久化 |
防御规避 | 反混淆/解码文件或信息 | 解码多层载荷信息 |
删除主机中的信标 | 删除用于创建计划任务的XML文件 | |
混淆文件或信息 | 加密多层载荷信息 | |
进程注入 | 注入最终的窃密木马载荷 | |
凭证访问 | 不安全的凭证 | 获取不安全的应用软件、注册表中的凭证 |
发现 | 发现应用程序窗口 | 获取窗口信息用于键盘记录 |
发现文件和目录 | 在指定目录中发现应用软件 | |
查询注册表 | 查询注册表获取应用软件信息 | |
发现系统信息 | 发现系统信息 | |
发现系统网络配置 | 发现系统网络配置 | |
发现系统时间 | 发现系统时间 | |
收集 | 收集剪贴板数据 | 收集剪贴板数据 |
收集本地系统数据 | 收集本地系统数据 | |
输入捕捉 | 键盘记录 | |
获取屏幕截图 | 获取屏幕截图 | |
数据渗出 | 自动渗出数据 | 自动渗出窃密数据 |
使用非C2协议回传 | 通过FTP、SMTP、Telegram回传数据 | |
定时传输 | 定时回传数据 |
防护建议
为有效防御此类攻击事件,提升安全防护水平,安天建议企业采取如下防护措施:
3.1 识别钓鱼邮件
- 查看邮件发件人:警惕发送“公务邮件”的非组织的发件人;
- 看收件人地址:警惕群发邮件,可联系发件人确认;
- 看发件时间:警惕非工作时间发送的邮件;
- 看邮件标题:警惕具备“订单”、“票据”、“工资补贴”、“采购”等关键词的标题的邮件;
- 看正文措辞:警惕以“亲”、“亲爱的用户”、“亲爱的同事”等较为泛化问候的邮件;
- 看正文目的:警惕以“系统升级”、“系统维护”、“安全设置”等名义索取邮箱账号密码的邮件;
- 看正文内容:警惕其中附带的网页链接,特别是短链接;
- 看附件内容:查看前,须使用防毒软件对附件进行病毒扫描监测。
3.2 日常邮箱安全使用防护
- 安装终端防护软件:安装终端防护软件,开启防护软件中对邮件附件的扫描检测功能,定期对系统进行安全检测,修复系统漏洞。
- 邮箱登录口令:邮箱登录口令设置时确保具备一定复杂性(包含三种字符元素),确保口令不记录于办公区明显位置,定期修改登录口令。
- 邮箱账号要绑定手机:邮箱账号绑定手机后,不仅可以找回密码,还可以接收“异常登录”的提示短信,即时处置。
- 重要文件要做好防护:
- a) 及时清空收件箱、发件箱和垃圾箱内不再使用的重要邮件;
- b) 备份重要文件,防止被攻击后文件丢失;
- c) 重要邮件或附件应加密发送,且正文中不能附带解密密码。
- 敏感信息要保护:不要将敏感信息发布到互联网上,用户发布到互联网上的信息和数据会被攻击者收集。攻击者可以通过分析这些信息和数据,有针对性的向用户发送钓鱼邮件。
3.3 政企机构防护
- 安装终端防护软件:安装反病毒软件,建议安装安天智甲终端防御系统;
- 加强口令强度:避免使用弱口令,建议使用16位或更长的口令,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令;
- 部署入侵检测系统(IDS):部署流量监控类软件或设备,便于对恶意代码的发现与追踪溯源。
攻击流程
4.1 攻击流程图
攻击者投放钓鱼邮件,诱导用户打开附件中的OneNote文档,执行OneNote文档中隐藏在图片下方的ee.vbs脚本文件;ee.vbs脚本执行后从文件托管网站下载eme.ps1脚本,该PowerShell脚本释放并执行一个可执行程序;可执行程序运行后释放并加载多个DLL文件,最终将Snake Keylogger注入到创建的子进程中运行。Snake Keylogger具有键盘记录、屏幕截图、获取剪贴板内容、窃取目标应用软件用户名密码等窃密功能,并具备FTP回传、SMTP回传、Telegram回传三种数据回传方式。
图 4‑1攻击流程图
4.2 利用OneNote文档传播恶意文件
攻击者在OneNote文档中插入一张模糊的图片,诱导用户双击指定位置进行查看。
图 4‑2 OneNote文档页面
在原图片“Double click here to view”下方藏有3个ee.vbs文件,当用户双击该处时,就会点击到任意一个脚本文件。若用户无视风险警告继续执行,脚本文件就会进行后续的攻击流程。后续攻击流程详见第5章节的“样本分析”部分。
图 4‑3隐藏在图片下方的恶意脚本
样本分析
5.1 样本标签
表 5‑1样本标签
恶意代码名称 | Trojan[PSW]/Win32.SnakeKeylogger |
原始文件名 | YFGGCVyufgtwfyuTGFWTVFAUYVF.exe |
MD5 | EFA3EF59EBA11BAE9D4C691E431A42DB |
处理器架构 | Intel 386 or later, and compatibles |
文件大小 | 127.50KB (130,560 字节) |
文件格式 | BinExecute/Microsoft.EXE[:X86] |
时间戳 | 2022-11-11 13:29:43 |
数字签名 | 无 |
加壳类型 | 无 |
编译语言 | .NET |
VT首次上传时间 | 2023-04-10 09:22:01 |
VT检测结果 | 58/70 |
5.2 ee.vbs
VBS脚本执行后,从文件托管网站下载攻击者预先托管的PowerShell脚本至指定路径中,并执行该脚本文件。
图 5‑1 VBS脚本
5.3 eme.ps1
PowerShell脚本执行后对字符串进行Base64解码,将解码的内容保存至“C:\Users\Public”目录下并命名为“eme.pif”,该文件是一个使用.NET进行编写的可执行程序。
图 5‑2 PowerShell脚本
5.4 eme.pif
该可执行程序运行后,获取指定名称的资源从而得到C2200.dll文件,并调用该DLL文件中指定的函数。
图 5‑3获得第一阶段DLL文件并调用指定函数
加载C2200.dll文件,休眠40秒,然后对硬编码的字符串进行指定字符替换及Base64解码,得到Cruiser.dll文件;加载Cruiser.dll文件解码得到2个关键字符串,根据字符串“UfVJ”获得eme.pif程序中的图像资源,并根据字符串“prh”对图像资源进行解码,得到Outimurs.dll文件。
图 5‑4获得Outimurs.dll文件
加载Outimurs.dll文件,并调用该DLL文件中的指定函数。
图 5‑5调用Outimurs.dll文件指定函数
5.5 Outimurs.dll
Outimurs.dll文件主要执行3个功能:自我复制、创建计划任务、注入最终载荷。
5.5.1 自我复制
将自身程序复制到新的路径中,并对程序进行重命名。
图 5‑6复制自身程序到新路径中
5.5.2 创建计划任务
释放XML文件至%temp%目录下,利用该XML文件创建计划任务。
图 5‑7利用XML文件创建计划任务
计划任务创建完成后,对XML文件进行删除。
图 5‑8删除XML文件
5.5.3 注入最终载荷
获取指定资源,对该资源进行解码得到最终载荷。创建子进程,并将解码获得的Snake Keylogger窃密木马注入到该子进程中运行。
图 5‑9解码获得最终载荷
5.6 Snake Keylogger窃密木马
Snake Keylogger窃密木马具有键盘记录、屏幕截图、获取剪贴板内容、窃取目标应用软件用户名密码等窃密功能,并具备三种回传方式:FTP回传、SMTP回传、Telegram回传。
5.6.1 键盘记录
对键盘输入事件进行监控,并获取用户当前使用的窗口信息,将键盘记录及窗口信息回传至C2服务器。
图 5‑10键盘记录
5.6.2 屏幕截图
对屏幕进行截图保存至“我的文件\SnakeKeylogger”文件夹中,命名为Screenshot.png,并回传至C2服务器,随后删除该屏幕截图文件。
图 5‑11屏幕截图
5.6.3 获取剪贴板内容
获取系统剪贴板中的内容,并回传至C2服务器。
图 5‑12获取剪贴板内容
5.6.4 窃密目标
Snake Keylogger窃密木马窃取邮箱客户端、浏览器、即时通讯平台、FTP工具等应用软件中保存的用户名及密码等信息,具体目标如下表所示。
表 5‑2 应用软件窃密目标
5.6.5 回传方式
Snake Keylogger窃密木马根据构建时的配置信息选择是否对回传信息进行加密。
图 5‑13根据配置信息选择是否加密回传信息
若在构建时选择对回传信息进行加密,则使用DES算法对信息进行加密,并对加密后的数据进行Base64编码处理。
图 5‑14加密信息
Snake Keylogger窃密木马具有三种回传方式:FTP回传、SMTP回传、Telegram回传,根据构建时的配置信息选择具体的回传方式。
图 5‑15此样本选择的回传方式
· 通过FTP回传
若通过FTP回传信息,则会与攻击者的FTP服务器进行连接,并利用“STOR”命令将保存窃取数据的文件回传至服务器中。
图 5‑16通过FTP回传
根据窃取信息的不同,其回传文件有所区别,如下表所示。
表 5‑3 FTP回传文件
窃取信息 | 回传文件 |
用户名及密码 | <设备名称> - Passwords ID - <标识ID>.txt |
键盘记录 | <设备名称> - keystroke Logs ID - <标识ID>.txt |
剪贴板内容 | <设备名称> - Clipboard Logs ID - <标识ID>.txt |
屏幕截图 | <设备名称> - Screenshot Logs ID - <标识ID>.png |
· 通过SMTP回传
若通过SMTP回传信息,则会向恶意电子邮箱地址发送回传邮件,邮件附件为保存窃取数据的文件。
图 5‑17通过SMTP回传
根据窃取信息的不同,其邮件内容及附件有所区别,如下表所示。
表 5‑4 SMTP回传邮件
窃取信息 | 邮件内容 | 邮件附件 |
用户名及密码 | PW | 用户名称 | Snake | Passwords.txt、User.txt |
键盘记录 | KP | 用户名称 | Snake | Keystrokes.txt |
剪贴板内容 | Clipboard | 用户名称 | Snake\r\n 受害主机相关信息 | Clipboard.txt |
屏幕截图 | Screenshot | 用户名称 | Snake\r\n 受害主机相关信息 | Screenshot.png |
· 通过Telegram回传
此样本通过Telegram回传信息,以POST方式将保存窃取数据的文件提交至攻击者创建的Telegram服务器。
图 5‑18通过Telegram回传
根据窃取信息的不同,其回传文件有所区别,如下表所示。
表 5‑5 Telegram回传文件
窃取信息 | 回传文件 |
用户名及密码 | SnakePW.txt |
键盘记录 | SnakeKeylogger.txt |
剪贴板内容 | Clipboard.txt |
屏幕截图 | Screenshot.png |
总结
自从微软宣布默认阻止Office文档中的宏之后,攻击者转变投递恶意文件的方式,将OneNote文档作为一种传播恶意文件的新型媒介。攻击者向用户发送钓鱼邮件,诱导用户打开附件中的OneNote文档,执行OneNote文档中隐藏在图片下方的恶意文件,从而在用户主机上运行窃密木马、远控木马等恶意软件。
在此建议用户不要轻易相信未知邮件中的内容,对邮件的来源进行确认,并警惕邮件中具有诱导性的内容。安天CERT将持续关注攻击者的新型攻击手段,并对相关攻击活动进行深入分析与研究。
IoCs
IoCs |
554F1A13A1ED03AA6ECA2CB81DEFC242 |
67463B588AE33879F50FD43185AF8BE6 |
B9611FDAA214DF556AD6C8FC582A45F6 |
8481FB36FE2375802264E3255C421629 |
8D369299A047F228593293887092E43D |
0FB6061F7D37424FB9E6D0E76B019C19 |
D7A88C5383F2C5F63EBA55AA264C6F16 |
EFA3EF59EBA11BAE9D4C691E431A42DB |
https[:]//bitbucket.org/!api/2.0/snippets/mounmeinlylo/zqz9zj/a0908238e134ad5a36922c163d2c986a8584d33a/files/emefamstartup.ps1 |
https[:]//api.telegram.org/bot6287986251:AAGCSj3TAzwv7sCC7X0DmHgcs3euo4j9_Ww/sendMessage?chat_id=6218388203 |