长亭百川云 - 文章详情

基于Outlook邮件的持久化技术

木星安全实验室

56

2024-07-13

01

介绍

低权限用户持久化技术非常有价值。我们一直喜欢研究新奇的技术,这些技术很少有人涉猎,蓝队对它们也很感兴趣。本文将讲到Outlook的持久化技术,但目前,很多蓝队没有关注该技术。

此前,已经有多位研究人员研究过基于 Outlook 的持久化这个话题,包括Dave Hartley和Nick Landers,他们详细介绍了如何使用Outlook规则来实现持久化。

但在本文中,我们会重点介绍使用Outlook的VbsProject.OTM文件,通过不同的操作来实现相似的结果。虽然这个技术尚未得到普及,但之前Cobalt Kitty就把它当作命令和控制通道用过。

02

分析

与大多数Microsoft Office产品一样,Outlook能够启用“开发人员”选项卡,通过VB编辑器创建基于VBA的宏。打开编辑器,创建一个简单的宏,就能找到一个名为“ ThisOutlookSession”的Outlook特定模块:

保存这个宏会导致%APPDATA%\Roaming\Microsoft\Outlook目录创建VbaProject.OTM文件:

但是,以默认配置执行宏会失败,默认配置为“数字签名宏的通知,所有其他宏均已禁用”。

利用以下值创建安全性注册表项来修改这个配置:

Level值用以下值定义宏安全性配置:

4 = 在不弹出通知的情况下禁用所有宏

3 = 如果有数字签名的宏,则弹出通知,禁用其他宏

2 = 给所有宏弹出通知

1 = 启用所有宏

若要宏不通知用户,隐蔽运行,需要设置Level值,在操作期间启用所有宏。

检查VbaProject.OTM文件时,我们发现它是标准的Microsoft复合文档文件(CDF):

dmc@deathstar ~  ✗ file ~/VbaProject.OTM

进一步的分析oledump.py,发现它包含宏代码的OLE流:

dmc@deathstar ~  ✗ python oledump.py ~/VbaProject.OTM

现在,我们知道VbaProject.OTM是启用了标准OLE宏的文档,所以,创建、混淆、清除和重载这些文件的传统工具和技术仍然适用。如果把它拖放到磁盘上,要确保其静态安全。

接下来,我们会深入研究如何持久化和武器化。

03

武器化

把VBA代码作为事件的结果执行。ThisOutlookSession模块能让我们订阅Outlook里的不同事件,有不同的机会执行代码。

持久化可能包括由用户驱动的某些事件(例如,打开Outlook),或者由攻击者决定的某些事件(例如接收特定邮件)。在演示武器化时,我们会重点讨论后者,并说明如何利用带有特定主题的邮件来执行任意VBA。

若要设置收到新邮件的时间,可以在Outlook启动时,先订阅默认收件箱的事件,这能通过以下方法来实现:在注册事件时,给默认收件箱文件夹(olInboxItems)设置一个变量:

Option Explicit

然后,利用用户对收件箱的引用,在新邮件到达时,借助“ ItemAdd ”回调函数接收事件:

Private Sub olInboxItems_ItemAdd(ByVal Item As Object)

我们只关注电子邮件的接受,所以需要优化回调,让它仅触发新的邮件项目。这要验证条目,确保其类型为“ MailItem ”:

Private Sub olInboxItems_ItemAdd(ByVal Item As Object)  

如果不希望在每个接收到的邮件上执行,可以用电子邮件地址,主题,正文内容等条件来过滤接收到的邮件。扩展上述代码,当收到特定主题(MailItem.Subject)的邮件时,执行代码,随后用MailItem.Delete方法删除电子邮件:

Private Sub olInboxItems_ItemAdd(ByVal Item As Object)

把上述代码放在一起,然后弹出计算器:

Option Explicit

弹出计算器只是概念证明,可以利用武器化的方式生成一个 Beacon,具体的实现方式留给各位读者尝试。

04

检测

从终端角度来看,可以通过以下两个关键指标来检测该技术:

1.检测creation/modification events (Sysmon event ID 11) for the %APPDATA%\Roaming\Microsoft\Outlook\VbaProject.OTM文件。

2.检测注册表 HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security 键和 Level 值的创建、修改事件(Sysmon 事件 ID 12)。

本文作者是Dominic Chell。

木星安全实验室(MxLab),由中国网安·广州三零卫士成立,汇聚国内多名安全专家和反间谍专家组建而成,深耕工控安全、IoT安全、红队评估、反间谍、数据保护、APT分析等高级安全领域,木星安全实验室坚持在反间谍和业务安全的领域进行探索和研究。

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2