T1564.007: VBA 踩踏(VBA Stomping)
摘要
攻击者可能通过用良性数据替换 VBA 源代码,来隐藏嵌入在 MS Office 文档中的恶意 Visual Basic for Applications(VBA)载荷。(Citation: FireEye VBA stomp Feb 2020) 嵌入 VBA 内容的 MS Office 文档将源代码存储在模块流中。每个模块流都有一个 <code>PerformanceCache</code>,它存储着一份单独的已编译版本的 VBA 源代码,称为 p-code。当 <code>_VBA_PROJECT</code> 流(其中包含 VBA 项目的版本相关描述)中指定的 MS Office 版本与宿主 MS Office 应用程序的版本匹配时,就会执行该 p-code。(Citation: Evil Clippy May 2019)(Citation: Microsoft _VBA_PROJECT Stream) 攻击者可能通过用零、良性代码或随机字节覆盖 VBA 源代码位置,同时保留先前已编译的恶意 p-code,来隐藏恶意 VBA 代码。扫描恶意 VBA 源代码的工具可能会被绕过,因为不需要的代码隐藏在已编译的 p-code 中。如果 VBA 源代码被移除,某些工具甚至可能认为不存在宏。如果 <code>_VBA_PROJECT</code> 流与宿主 MS Office 应用程序之间存在版本匹配,则会执行 p-code;否则,良性的 VBA 源代码将被解压缩并重新编译为 p-code,从而移除恶意 p-code,并可能绕过动态分析。(Citation: Walmart Roberts Oct 2018)(Citation: FireEye VBA stomp Feb 2020)(Citation: pcodedmp Bontchev)
来源归属
来源:MITRE ATT&CK · 置信度:high
平台
- Linux
- macOS
- Windows
战术
Stealth
参考来源
- https://attack.mitre.org/techniques/T1564/007
- https://github.com/bontchev/pcodedmp
- https://www.fireeye.com/blog/threat-research/2020/01/stomp-2-dis-brilliance-in-the-visual-basics.html
- https://outflank.nl/blog/2019/05/05/evil-clippy-ms-office-maldoc-assistant/
- https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-ovba/ef7087ac-3974-4452-aab2-7dba2214d239
- https://medium.com/walmartglobaltech/vba-stomping-advanced-maldoc-techniques-612c484ab278