本帖最后由 安静的小酒吧 于 2015-11-27 00:09 编辑
Win32.Trojan.e6d分析报告<一> 我在吾爱的第二个样本分析 安静的小酒吧 基本信息 名称 | | | | | | | | | | | | | | | | | | | | 130862496F0FD7A4D6DCB519A06F9F80 | | | | 110333F17D5C9F848F64C929A226920B82BB8CED | 简介 该样本来自吾爱破解-病毒样本区,相对于我发的第一篇PC样本分析 分析比较困难。有些部分我也没有完全弄懂,希望感兴趣分析的大牛多多指点。 样本名称Win32.Trojan.e6d是利用360查杀结果提示的样本分类命名的(可能不是真实名称)。 技术特征该样本主要有以下技术特征: 1. 使用了未知的加壳工具。 2. 存在多次进程注入。 3. 启动多个线程。 4. 还存在文件下载并执行(http://api.wipmania.net/icon/n.api,这个估计是一个比较正规 的网站的一个链接,或许在里面种了马或者上传了恶意文件)。 从该样本的壳程序、进程注入、下载执行等方面可以看出该样本可能比较有背景。 执行流程0x00 文件基本信息 (1)PEID和ExeInfo都没有查出任何壳信息,但是文件确实有壳。 (2)导入表如下,但是导入表里的函数都找不到调用位置(应该是壳做了特殊的处理吧)。 导入表 导入函数的调用位置找不到 (3)没有看到有价值的字符串。 不存在有价值字符串 0x01程序加载后会看到很多无规律的add,sub,mov操作。单步跟踪会发现,在0x3c0000这个地址开始写入一段指令, 然后跳入这个地址,这个位置的指令看着很复杂,有很多跳转,最后一直跟下去会最终回到0x400000为基址的代码段, 这时候程序基本解壳完毕,此时可以dump,dump后的程序会可以执行,但是执行期间会出现崩溃(崩溃出现在 一个堆操作上)。所以样本的动态调试我是带壳调试的。 0x3c0000位置的代码,十分没有规律,但是一直在正常执行 回到0x400000位置,此时代码可读性很高,dump下来可以直接用IDA使用F5 (为了降低对F5的依赖性,这次基本都是直接看汇编) 壳的信息就介绍到这里吧,这个壳我不认识,脱壳经验不是很丰富,所以这个壳算是没搞定(大牛轻喷), 如果有认识的希望不吝赐教。 0x02 IDA分析上面dump下来的文件,就很简单了,可读性比较好,但是后面的技术手法比较不错, 所以先简单分析执行流程。 上来就调用了GetCommandLineA(),这个函数相当变态,变态在这个函数只有两句汇编指令: (我是第一次看这个函数的汇编指令,完全被震惊了,所以多说两句,就当是给自己留个笔记吧) 你没看错,就这么两句,0x7c8855f4的位置保存的是程序执行时文件的全路径和运行时的参数。 函数的功能就是获取这样一个字符串。 分析上下代码可知,程序想从这个字符串中查找“-shell”(使用的是strstr函数),显然我们是直接OD加载, 没有设置参数,文件名中也没有,所以应该找不到,也就是说下面的那一大堆互斥体什么的代码都执行不到。 0x03 接下来是两次自身文件复制 第一次 复制为temp.bin 第二次 复制为SCrenSaverPr.src (文件名确实有一定的迷惑性) 0x04 通过写注册表相关项,实现自启动(只是这招在360面前就。。。) 0x05 启动svchost.exe,对其远程进程注入,采用的是代码注入的方式(相关知识和实例可以看 《逆向工程核心原理》中代码注入的相关知识,不得不说棒子写的这本书确实不错,棒子的逆向能 力也很值得学习)。这里主程序进行了多次注入。 启动svchost.exe 给进程的内存空间写入代码 启动进程并执行 另一次注入 0x06 创建一个傀儡进程并恢复运行。 (傀儡进程相关内容http://www.programlife.net/dynamic-forking-of-win32-exe.html) 创建进程 恢复运行 0x07 启动两个不同的线程 第一个进程:遍历C:\Documentsand Settings\Administrator和Temp目录查找.exe文件,重命名并删除。 查找.exe文件 加一个.gonewiththewings后缀 再次遍历那个目录,删除对应文件(这一块的操作有点看不懂。。。) 第二个进程:从http://api.wipmania.net/icon/n.api下载文件判断是否为PE文件(判断是否为MZ开头), 如果是则加载执行。 汇编代码有点长,贴一个IDAF5的代码吧 其他 总的来说该样本结构比较复杂,功能比较多,从技术手法上可以猜测可能有一定的背景,不是一般人随便写的。 为什么这么说呢,因为我是瞎说的。 查杀方法 删除自启动的注册表项、删除上面的几次复制就可以了。 ==欢迎拍砖·共同进步==
|