吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 17219|回复: 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] 纯文本查看 复制代码
#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, 2024-11-28 08:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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