[反病毒] 恶意软体分析1--玩出花的批处理
前言
继上次分析了一个mbr之后,这段时间一直没有碰到好玩的样本。现又经蛋总提拔,觉得这么长时间不发点什么不太好意思。正好空格给了我一个样本,这次就来分析分析。
由于样本有点复杂(对我来说),所以这回准备分成系列来讲,大概年前能发一部分吧。
PS:在这里,给大家先拜个早年了!
小计
本次分析的样本都在文后有链接,感兴趣的同学可以自行下载分析
经过
样本一拿到手,我就发现这个东西不简单呐...一个压缩包中文件夹层层嵌套,一看就是做大事的人!呸,
分析
第一层:
<ignore_js_op>
- 截图.pif,实际是个pe文件。和zx.cmd是同一个文件。>这里的图片截图是个诱导程序,用户在双击图片截图之后,程序会自动执行,并将原本准备好的诱导图片覆盖上来,用户第二次打开的才是真实的图片。
第二层:
<ignore_js_op>
svhost.exe与上层的两个pe是同一个文件,通过读取config.ini执行下一层的程序。
这里简单了解下svhost.exe这个程序。
通过属性看其原始文件名为RunGameEx.exe
通过分析发现这个程序会读取当前目录下的gamepatch目录里的config.ini文件。读取配置中的程序并执行,然后退出。
(比较绕口,大家耐心理解下)
也就是说,这个程序会读取 ./gamepatch/config.ini,这也是为什么第一层没有这个配置文件的原因。(汗!我一开始以为是读取程序目录下的配置文件呢,结果后来才发现是读取下一层的配置文件,这里要注意)
这里会执行下层的程序:
suchost.exe shellcopy "..\svhost.exe" "svhost.exe" yestoall noerrorui
第三层:
<ignore_js_op>
- suchost.exe 实际为Nircmd,用来上层执行copy动作
- uqdate.tmp 实际为rar压缩程序,被去掉了文件头。这里的bat脚本里面会生成一个Rar文件头,然后用copy命令与之合并成最后的rar压缩包。密码为p
- updatej.tmp 实际为unrar程序,用来解压上面的压缩包
- 图片截图.zp 实际的诱惑图片。用户点击第一层的图片截图.pif后,当执行到这一层时,bat脚本会将此图片覆盖到第一层,以此来迷惑用户。
- updete.bat 执行的脚本,下面详细分析。
<ignore_js_op>
此脚本是混淆过的,直接用记事本是打不开的。这里我们用c32asm打开
<ignore_js_op>
可以看到前面是乱码,后面是脚本主体。手工删掉文件前面的内容,保留cls直到最后的内容,重新用记事本打开即可看到明文。
<ignore_js_op>
看到这么乱,大家大可不必担心,看前几行:
<ignore_js_op>
所以我们只要把下面相应的变量删除掉就好。
最后的明文:
<ignore_js_op>
脚本一共做了这么几件事情:
- 将当前目录下的config.ini文件删除,将config.xml改为config.ini(目的未知)
- 将目录下的 图片截图.zp 覆盖到第一层目录,迷惑用户。
- 释放文件到temp目录:
bug0.txt
cfwd.dat
zc.exe(实际为c:\windows\system32\rundll32.exe)
- 释放文件到c:\HTEMP0目录:
updatej.tmp(实际为unrar命令行程序)
uqdate.dat(这里释放的并不是原本的文件,而是原本文件加上Rar头组合成的压缩包。)
- 释放文件到APPDATA目录:
Payers.ini(实际是gconfig.ini重命名)
- 解压uqdate.dat压缩包里的qiaoi.bat文件并执行
这里qiaoi.bat这个脚本文件的加密方式和updete.bat是一样的,这里跳过。
到这里,这个恶意样本的表层已经分析的差不多了,最后释放的qiaoi.bat和其加密压缩包其实才是这个恶意软体的核心,但由于篇幅有限,这里先卖个关子。
总的来说,这几层表面调用基本全是批处理,可见作者对此理解の深。这也是这篇帖子主题的出处。
批处理其实就好比是windows下的shell脚本,但是比shell功能要弱一些,我对批处理也不是很熟悉,希望对这个感兴趣的同学可以另行深入了解,互相交流。
下一篇的分析才是重点,我还在继续研究,估计年前勉强能发吧,希望大家元旦快乐!