近期捕获到一批采用默认密码加密的样本,vt上检测率极低。经过分析这批样本采用了新的加密方式,从而绕过了现有的检测方法。
Office文档在加密后,文件结构会发生改变。如果利用默认密码“VelvetSweatshop”加密excel文档,则不需要输入密码也可以正常打开。用户在使用这种方式生成的样本时不会感受到差异,但是对样本进行静态检测时需要先通过默认密码解密出原始样本,才能检测到其中的恶意特征。这种反检测技术在2019年逐渐被各安全厂商攻克,已不再具有高强度的免杀效果。接下来通过对样本的分析来探索这种新的利用方式。打开样本后有宏的提示,并且名称管理器中可以找到自启动相关的Auto_Open内置函数,vba工程编辑器中也不包含任何宏代码。因此推测样本中使用了excel 4.0宏。
在Auto_Open指向的单元格内确实找到了excel 4.0宏代码,经过分析这是一个常见的zloader加载器。这里不再详细展开。
同时在样本中不包含EncryptionInfo与EncryptedPackage流,而是标准的xls文件结构。因此这是一个早期版本(excel 2003及更早的版本)中生成的加密文档,只对workbook流中的部分数据进行了加密。
workbook流中可以找到加密相关的FilePass记录(type=0x2F)。
相关格式如下(MS-XLS 2.4.117 FilePass):

其中wEncryptionType=0代表样本采用了异或加密。这是Office文档所使用的最古老的一种加密方式,如今已经被废弃。继续解析可以获得验证用的verificationBytes=0x9A0A。
异或加密的秘钥验证代码如下(MS-OFFCRYPTO 2.3.7.1 Binary DocumentPassword Verifier Derivation Method 1):
使用默认密码“VelvetSweatshop”带入计算后得到的值为0x9A0A,与样本中保存的verificationBytes相同,由此可以确定样本通过默认密码进行加密。在Office 2003中可以在加密时选择加密类型为不可靠的加密(XOR),从而构造出同样的样本。
早期的加密文档通常使用默认的加密方式(ECMA-376)对ooxml格式(xlsx,xlsm等)样本进行加密,此时会对样本整体加密后存放在EncryptedPackage流内,特征相对明显并且便于解密。
这次的样本使用旧的加密方式对cfb格式(xls)样本进行加密,这种方式虽然更为隐蔽但是只能对workbook流内的数据进行局部加密,对于宏以及ole对象的数据是无法加密的。因此只有攻击代码以纯文本的方式保存在工作表中,才能完成对攻击代码的隐藏。适用面比较窄,仅能在dde及excel 4.0宏的样本中使用。相关样本
0d01bf2ba4985397910a7924c02036b71132febe46f5f9b79a1bd3de440dc53d
0e334135f0bc0e6832c50ec2fe3681816fd63a1843214a433cc92f59e77a4247
1bcf2d09a64a536efa4831600d00c6daad6b1751fa6d2ae111a7abb7ff0b61bb
307ea21a8cba83a8d7e58ebbd131a63cb8ae3d2281bd7a93004d8be78b70107e
386f8f8b2a9d16767e1b17b714e87cd4f0b234bfded0ed2752b9a2568edeb15f
640508607e89322f8a4cb844f33fad2ef51fc22afdbec3224ec8f9ef8a345edc
92859da9f5ec97c9c7646122138e996bb57021bb9fdee295f5ddb960390682e4
960a3a2cc5166ac483baa974591dc5fc8ff223d12997c0b9f671874f7b422c91
b2291c311ffcaeea4387bb0689e381219c580898f6e64d134b4b2c92a4996b08
ba51cbdb7039f1b1bcda2a38e32b8d1e31b7ba58048cf50865f2c0732132126a
db79e0f38c0894477dfa8ac83e82fea3561ae97d814955372b95d4c2bd352f32
e3ab371b9e086a7bd33745c142a61c32261b8e7f89a5f5f4fa61986f4fbc5b61
eb995188e21b8e4172ddd1db12f070b7305f1946610485904237e730162507b1