DDE混杂的3种新方法
最近一段期间,微软的Office产品曾经成为滋润新型攻打方法的瘠田,从相对比拟便捷的数据注入方法(如DDE注入以及CSV注入)到愈加复杂的基于嵌入公式对象的攻打技术,不一而足。一、前言
最近一段期间,微软的Office产品曾经成为滋润新型攻打方法的瘠田,从相对比拟便捷的数据注入方法(如 DDE注入 以及 CSV注入 )到愈加复杂的基于 嵌入公式对象 的攻打技术,不一而足。反病毒行业很快排汇了这些技术,有许多厂商可以正确检测并识别大少数攻打方法。但是万物都处于演变之中,因此攻打场景中产生攻打手腕的混杂及变种也只是期间疑问。思科Talos以及ReversingLabs曾宣布过一篇联结 文章 ,引见与CSVDDE注入无关的两种新技术(一种混杂技术以及一个变种)。本文的目的是为大家解释这些技术面前的一些“原理”,也会引见3种新的混杂技术。
二、CSV/DDE代码注入
虽然网上对于DDE代码注入技术曾经有许多参考资料,但这里咱们还可以便捷过一下这种技术的原理。CSV(经常使用逗号作为分隔符)是一种便捷的数据格局,可以用来存储结构化数据,也可以作为Excel的数据源(Excel会解析该数据,而后将被分隔符切分的数据填充到单元格中)。实践上,假设文件格局与文件扩展名不婚配,但该文件扩展名可以经常使用Excel来关上,那么Excel仿佛会驳回CSV形式来导入数据。
依据微软的形容,DDE(Dynamic>
命令自身也是一种表白式。假设表白式中仅蕴含可打印字符(甚至蕴含一些无法打印字符,如0xAA,详细取决于代码页),那么缓冲区大小就为256字节。由于命令前缀或许操作符占了1个字符,因此实践上表白式只要255个字节可用。表白式可以是称号、数字、字符串或许文件名。
即使缓冲区中有足够大的空间,外部程序的最大文件名长度为8个字符。这或许是MS-DOS文件名的历史遗留疑问,过后系统最大只支持8字节长文件名(不包括扩展名)。
但是,表白式通常驳回递归定义,可以驳回算术及逻辑运算符(如&、^、/、+等等)链接起来,甚至还可以经常使用左括号(示意函数参数的开局)或许冒号(用作单元格分隔符)。虽然命令不应该被当成表白式来解决,但由于null字节会被所有疏忽掉,而空格有时刻后会被疏忽(比如位于命令之前的空格),因此产生这种状况也无余为奇。
换句话说,表白式中可以蕴含数量不限的null字节。Excel会漠视参数以及单元格中的null字节。关键的是,单元格援用基本不用为有效值。一旦表白式被成功解析及转换,命令和参数就会传递给WinExec()API口头。
四、更多细节
思科Talos在 文中 提到,攻打样本会经常使用便捷的混杂技术,比如在DDE公式之前或许之后附加文本或许二进制数据。这仿佛只是冰山一角,这是由于数据解析规定不只可以解决前缀(prefix)或后缀(suffix)方式的混杂命令,也能解决中缀(infix)方式的混杂数据。
表白式可以串联经常使用,咱们也可以在实践命令之前注入恣意数量的表白式(每个子表白式最多可以经常使用255个字符),命令甚至也可以串联起来经常使用,这也是命令可以经常使用混杂前缀的基础,如下所示:
+thespanishinquisition(cmd|'/ccalc.exe'!
目前在实践攻打中看到的载荷会选用cmd、msexcel或许msiexec作为可口头指标文件,,但咱们可以恣意选用其余外部运行,只需文件名少于8字符即可,而这个条件在实践环境中很容满足。比如,regsvr32、certutil以及rundll32都满足文件名长度需要,这为咱们关上了后缀混杂攻打的新环球:
最后,咱们可以在各处参与null字节或许空格,到达中缀混杂目的。空格不能嵌入到命令称号中,一旦嵌入就将拆分命令名,造成命令无法口头。但是命令名之前以及或许参数中的空间还可以为咱们所用。当然,命令名不辨别大小写,因此咱们可以经常使用不同的大小写打算来启动混杂。大家可以访问此处下载前面咱们形容的一切混杂样例(明码为infected)。
图1. A1000十六进制数据中的中缀混杂示例
这些混杂技术当然可以独自经常使用,或许可以组合经常使用。咱们曾经经常使用Excel 2013以及Excel2017测试过本文提到的一切混杂技术,在本文撰写时没有任何杀毒软件厂商能够检测到这些技术。为了帮大家进攻这类便捷的混杂攻打,咱们雷同颁布了婚配的YARA规定,大家可以访问此链接下载。
五、总结
在本文中,咱们引见了混杂DDE载荷的3种新技术:前缀、中缀以及后缀混杂技术。由于Office产品在过去27年中不时在不时完善,丰盛的配置雷同给失罕用户和恶意用户带来宽广的扮演舞台。在接上去的几年期间内,可以预感的是新的攻打方法及混杂技术将不时演变,咱们也宿愿能看到新陈代谢的技术用来投递攻打载荷。