BOM归来
导语:巴西网络犯罪分子使用新的方法绕过安全检测是很常见的,但是你能想象他们使用的是6年前的老方法吗?
2013年,McAfee发现俄罗斯黑客使用修改Windows系统上主机文件的方法来传播恶意软件,除此之外,UTF-8 BOM (Byte Order Mark,字节顺序标记)字节还可以帮助这些恶意攻击者绕过检测。
BOM(byte-order mark),即字节顺序标记,它是插入到以UTF-8、UTF16或UTF-32编码Unicode文件开头的特殊标记,用来识别Unicode文件的编码类型。对于UTF-8来说,BOM并不是必须的,因为BOM用来标记多字节编码文件的编码类型和字节顺序(big-endian或little-endian)。
因为这样的攻击活动依赖鱼叉式钓鱼攻击来增加受害者点击量,挑战就是如何欺骗邮件扫描器并使用一个看似破坏的文件加载到受害者收件箱中。
当用户用默认的文件管理器来打开ZIP文件时会出现下面的错误信息:
该错误信息表明文件被破坏了,但是研究人员在检查文件内容时发现一些很奇怪的东西:
UTF-8 BOM的ZIP header前缀
除了有正常的PK签名(0x504B)开头的ZIP header外,研究人员还发现表示BOM的3个字节0XEFBBBF。一些工具不会将该文件识别为ZIP格式的,而是识别为UTF-8文本文件,并且无法从中提取处恶意payload。
但是像WinRAR和7-Zip这样的工具就会忽略该数据并正确的提取处内容。当用户用这类工具提取文件时,就可以执行恶意payload并感染系统。
WinRAR成功提取的文件
恶意可执行文件会作为一个加载主payload的加载器,主payload会嵌入在resource部分。
Resource表表明含有加密数据的资源
resource section中保存的加密DLL
resource中保存的内容是用XOR算法加密的,也在是来自巴西的恶意软件样本中非常常见的。解密的resource是一个加载和执行导出函数BICDAT的DLL。
用来加载提取的DLL和执行导出函数BICDAT的代码
库函数会下载第二阶段payload,payload是一个密码保护的zip文件并用相同的函数加密,作为嵌入的payload。在提取出所有的文件后,加载器会再次执行主可执行文件。
BICDAT函数执行的代码
与Banking RAT恶意软件相关的代码
传播的final payload是银行RAT恶意软件的变种(https://securelist.com/the-evolution-of-brazilian-malware/74325/#rat),目前主要在巴西和智利传播。
发表评论