吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 17352|回复: 49
收起左侧

[PC样本分析] 论坛样本分析之多重防御木马程序分析

  [复制链接]
Hyabcd 发表于 2015-8-28 19:02
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
     原帖地址:http://www.52pojie.cn/thread-390644-1-1.html     样本压缩包中含有快捷方式一个,bat批处理程序一个,Temp文件一个,dll动态链接库一个。如图所示。
    QQ截图20150828152512.png
    为何说该木马程序具有多重防御呢,通过逆向分析可以发现,该木马程序运行方式复杂,具体特点如下:
    (1)运用快捷方式打开批处理执行命令而不是直接执行;
    (2)两次调用dll并执行不同功能,只有第二次运行真正执行主要功能,达到混淆的效果;  
    (3)添加反虚拟机调试代码,避免虚拟环境运行该程序;
    (4)多线程运行。
    首先该程序用快捷方式打开加密过的批处理文件png.bat,用winhex可以看到具体的命令内容,如下图所示。
    QQ截图20150828154659.png
    mkdir命令是建立子目录,而rundll32.exe nvwsrds.dll,avmode -fn hgfyryertsdsd命令是运行rundll32.exe来执行nvwsrds.dll中的avmode函数,函数的参数为-fn hgfyryertsdsd。可以看出,该程序的主要功能是由nvwsrds.dll来实现的,因为rundll32.exe不好进行动态调试,因此我写了个调用 nvwsrds.dll执行avmode函数的程序用于进行动态调试,代码如下。
[C] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "stdafx.h"
#include<windows.h>
#include<stdio.h>
#include <tchar.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
     
        HMODULE hModule = NULL;
 
        typedef void(__stdcall* Func)(char* key);
 
 
        //载入dll
        hModule = LoadLibrary(_TEXT("nvwsrds.dll"));
 
        // 获取 avmode 函数地址
        Func funav = (Func)GetProcAddress(hModule, "avmode");
 
char* a=“-fn hgfyryertsdsd”;
 
        // 使用函数指针
        funav(a);
 
        // 释放指针
        FreeLibrary(hModule);
 
        return 0;
    }

    进入程序调试可以发现程序被加了许多花指令,不过并不妨碍调试。首先程序创建了一个文件夹。
    QQ截图20150828160136.png
    然后将原本的dll重命名后复制到该文件夹中。同理,将Temp文件也复制到相同的文件夹中。
    QQ截图20150828160308.png
    除此之外程序还打开一张图片,在执行完上述功能时,程序再次调用rundll32.exe来运行拷贝到新文件夹中的nvwimg.dll的avmode函数,并把程序的主要功能交由它来实现,至此程序第一部分终止。如图所示。
    QQ截图20150828161114.png
   这时有人会问,两个dll不是相同的吗,如果按照这样进行下去将无限循环运行该dll。我在调试过程中也考虑到这个问题,但木马作者运用了一个判断语句解决了这个问题。通过判断自身名称是否为nvwimg.dll来确定所要执行的功能,这样就能让拷贝过去的dll执行其他的功能。同样用一个小程序作为载体运行nvwimg.dll,单步跟即可来到判断语句。如图所示。
    QQ截图20150828161846.png
    strstr用于比较两个字符串是否相同,下面的jnz指令在文件名为nvwimg.dll时进行跳转。继续跟可以发现一句in eax dx的指令,该指令在虚拟机中不会触发异常,因此程序直接不过最后终止并没有相关操作。因此可以发现该句是木马程序判断自身是否在虚拟环境运行的指令,如果发现自身在虚拟环境下运行则终止进程。这时候只需对虚拟机进行相关设置,即可让程序触发异常,设置方法见此http://bbs.kafan.cn/thread-1326120-1-1.html,当程序触发异常跳到系统领空时,在代码段下断点跑几次就能跑回代码段中。来到代码段中可以发现程序对Temp文件进行读取,并截取其中有效部分进行解密,而解密的内容加上PE文件头后构成了PE文件,在执行完这部分后就执行该PE文件内容。
    QQ截图20150828163027.png QQ截图20150828164031.png
    进入这部分程序后,先进行一些命名操作,为后面的操作做好预备工作,然后创建一个inf安装信息文件。并在文件中写入配置信息,具体如下图所示。
    QQ截图20150828181045.png QQ截图20150828181238.png
   通过该配置信息可以看出,程序将自身及所用到的宿主程序加入开机启动项,以达到开机自启动的效果。在这之后,程序创建一个互斥体,以判断自身是否被运行,防止同时出现两个进程而终止。
    QQ截图20150828181508.png
   之后,程序创建地址为A8CED0的新线程以执行主要功能,可以看出,程序为了隐藏自身真实功能可是费尽九牛二虎之力,通过多次的调用才到达主要功能的执行部分,在地址A8CED0下断,f9跟进,即可断下。跟进可以发现,程序有疑似查找杀毒软件操作(不过我没到达这部分功能)。继续跟进,发现程序对某个地址有socket操作。
    socket.png QQ截图20150828182408.png
   由于该地址服务器已经失效,程序继续寻找另一地址进行操作,而操作的方法也比较特别。程序先调用HttpOpenUrlA打开一个网页,网址为http://t.qq.com/as730498358,是个腾讯微博,然后程序遍历网页源代码,从网页源代码中找到所需要的ip地址,如图所示。
   QQ截图20150828185449.png
  而打开该网页我们也可以发现,作者使用腾讯微博的签名来保存ip地址,这种方法在之前就有人提到过,不过当时是用qq昵称来保存,这样能够很好地保存动态的ip地址而且不容易被发现。
   QQ截图20150828185756.png
  除此之外,程序还通过拼接ip查询网站的URL来构造请求,然后同样以打开网页并遍历网页源码的方式获取ip地址。
   QQ截图20150828185920.png
  在进行完ip地址的获取之后,程序同样运用socket套接字来和这几个地址进行数据传输,由于这些地址已无法使用,并不知道程序发出什么数据,获取什么数据,不过可以肯定的是,程序必定具有远控功能。要防范这类程序,还是需要大家提高警惕,不要滥用外挂等不安全软件,因为外挂自身必定被杀软报毒,有些木马就利用这一情况附加在外挂上面,从而感染计算机,所以大家下载外挂时一定谨慎。









  

点评

的确有人之前用qq昵称来保存,现在竟然用微博签名了,真是越来越发达  发表于 2015-9-12 02:23

免费评分

参与人数 10热心值 +10 收起 理由
LOVE_TT + 1 1111111啦啦啦啦啦啦啦啦啦啦啦啦啦啦
a5606495 + 1 谢谢@Thanks!
superu + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
Tortoise + 1 谢谢@Thanks!
小白菜 + 1 这个和前面的360的技术博客上的一个样本分.
yuluo5566 + 1 我很赞同!
arryboom + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
Nian + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
1094483658 + 1 谢谢@Thanks!
逍遥枷锁 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Hyabcd 发表于 2015-10-19 20:02
ruanjianjl 发表于 2015-10-19 19:55
原理你解释了我懂了 我知道这个TEMP是加密的 需要DLL来揭秘 但是我想查看这个IP信息 怎么操作呢?DLL对TE ...

用winhex去查看temp的内容可以基本发现temp的一些特征,然后用OD跑dll时发现OD会加载一堆东西到内存中,到内存中查看会发现这些东西和temp的内容是一样的,再过后dll会进行一个循环操作,操作的目标也是这段内存的内容,然后在进行完循环之后程序又给这段内存中的内容加上PE头,所以可以断定这是在进行解密然后构建PE问你件。解密完后dll就会创建线程去运行这个新构建的pe文件,然后就能看到在运行过程中使用socket操作,操作对象中就包含这个ip
 楼主| Hyabcd 发表于 2015-10-19 23:10
ruanjianjl 发表于 2015-10-19 19:57
方便的话 录制下演示可以不 ?GIF或者录像 都可以 感谢 我也喜欢分析  这个我研究了半天了 难在这里了

录制什么的我不是很会也没时间,我就这里说一下,你先一样写个程序用od断CopyFile这个函数看他产生的新dll名字是啥,然后再写一个一样的用od断ReadFile这个函数可以看到他把temp的内容读取了,然后再断_beginthreadex这个函数看他创建进程地址在哪,在那个地址开始处下断,然后跑起来,等程序断在那个地方时对connect这个函数下断就能看到他和哪些地址连接
zzbyzb 发表于 2015-8-28 19:06
前排膜拜大神,论坛下载的软件不一样是安全的,大家注意一下
Zero丶冻结 发表于 2015-8-28 19:08
好高深,膜拜大牛。
Nian 发表于 2015-8-28 22:12
Mark 应该永远看不懂
无痕软件 发表于 2015-8-31 11:31
对的,以前乱下外怪就中招过。
康小泡 发表于 2015-8-31 11:39
感觉我现在有强迫症了。看到这种排版我就心里痒痒啊
 楼主| Hyabcd 发表于 2015-8-31 12:26
康小泡 发表于 2015-8-31 11:39
感觉我现在有强迫症了。看到这种排版我就心里痒痒啊

图片截得不是很好,然后就凹凸不平的,下回我好好对齐一下
康小泡 发表于 2015-8-31 16:15
Hyabcd 发表于 2015-8-31 12:26
图片截得不是很好,然后就凹凸不平的,下回我好好对齐一下

这类木马应该被叫做hook007,大概卡了一下,里面的很多手段都是一样的,甚至还保留了一些前面版本的信息。360技术博客上面也有提到过这个样本http://blogs.360.cn/360safe/2014/09/12/hook007_trojan/
 楼主| Hyabcd 发表于 2015-8-31 16:50
康小泡 发表于 2015-8-31 16:15
这类木马应该被叫做hook007,大概卡了一下,里面的很多手段都是一样的,甚至还保留了一些前面版本的信息 ...

来去看看,我不大懂木马类别,刚接触不是很久
故人旧事 发表于 2015-8-31 16:54 来自手机
测试木马病毒的才是大婶
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-3-27 07:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表