Loading... `严重混淆` `powershell调试` ole复合格式: ![image.png](http://47.117.131.13/usr/uploads/2021/08/3461517446.png) 使用olevba.exe提取宏代码,一样的可以先看一下分析报告: ![image.png](http://47.117.131.13/usr/uploads/2021/08/3690161497.png) 宏代码被严重混淆: ![image.png](http://47.117.131.13/usr/uploads/2021/08/4117824296.png) 可以看到这段宏经过了严重的混淆,方法名,变量名,以及字符串都经过了严重的混淆,如果按照程序的流程一步步分析,怕是要分析到吐血。这个时候我们可以用取巧的方式,纯粹的宏能做到的事情实际上是有限的,一般是对文档或模板的操作。而宏病毒往往是作为payload的方式可能是shell、WScript.Shell、Application.Run等(以及前面提到的winmgmts方式),我们可以直接搜索这些字符串迅速定位到运行payload的地方。此时,olevba.exe提取宏时的分析报告就显得尤其重要了。 ![image.png](http://47.117.131.13/usr/uploads/2021/08/1472557630.png) 例如本例中,搜索"shell",定位如下位置: ![image.png](http://47.117.131.13/usr/uploads/2021/08/859451085.png) shell的参数,是一段字符串,这段字符串就是最终会执行的命令,我们修改宏代码,将这段字符串保存到c:\users\sam\Desktop\data.txt,以便查看字符串内容: ![image.png](http://47.117.131.13/usr/uploads/2021/08/2355362703.png) 保存下来的命令如下: ![image.png](http://47.117.131.13/usr/uploads/2021/08/2499308415.png) 简单整理发现,实际上是使用cmd执行powershell命令,有趣的是将"powershell"字符串被分为"po"、"wers"、"hell"三部分,通过拼接形成"posershell"字符串: ![image.png](http://47.117.131.13/usr/uploads/2021/08/1374825599.png) 依然是要base64解密powershell命令,又是一段混淆过的代码: ![image.png](http://47.117.131.13/usr/uploads/2021/08/3121615230.png) 从最后可以看到用"Y&{m:b!I~z"分割以后,将[INT] ——>[char],混淆也很简单,但开头的”((vARiAbLe '*mDR*').namE[3,11,2]-JOIn'')“不知道是什么意思,由于是powershell命令,我们可以直接上手,开启powershell进行调试。 开头混淆的字符串其实就是"IEX": ![image.png](http://47.117.131.13/usr/uploads/2021/08/1489427179.png) 将混淆的字符串重定向输出: ![image.png](http://47.117.131.13/usr/uploads/2021/08/4038538048.png) 解密出来的内容如下(小白感叹一句,powershell也太好用了⑧!): ![image.png](http://47.117.131.13/usr/uploads/2021/08/334971180.png) 代码很清晰了,有一堆URL,依次从这些URL中下载文件并运行。 至此,其宏功能分析完成。 参考链接:https://blog.csdn.net/qq_38474570/article/details/88409894 最后修改:2021 年 08 月 04 日 10 : 16 AM © 允许规范转载