盗号木马分析报告


盗号木马分析报告_第1张图片

0x01基本信息文件: C:\Users\15pb-win7\Desktop\004.vir

大小: 631810 bytes

修改时间: 2017年9月29日, 8:19:09

MD5: 81FE61EC3C044AA4E583BA6FF1E600E8

SHA1: D7C9D1E5A2FA2806A80F9EDBCDD089ED05D6B7D8

CRC32: 2EBCCBF8

加壳情况:未加壳

盗号木马分析报告_第2张图片

0x02 简介

这是一个针对用户浏览器、FTP软件,窃取系统及个人信息的木马。

盗号木马分析报告_第3张图片

0x03 被感染系统症状

创建C:\Users\用户名\AppData\Roaming\5F1832文件夹,并将木马以不同名称2728C2.exe复制到其中,其中名称5F1832和名称2728C2为木马随机产生,接着修改木马的文件属性为隐藏。用户系统中浏览器、FTP等软件本地存储密码会被上传到指定服务器。木马尝试在注册表中添加启动项但是失败。0x04详细分析当木马运行后,会进行如下操作

1. 检测操作系统是否运行在虚拟机(wmware等)中,系统进程列表中是否有安全工具(windbg等)和杀毒软件,如果发现自动终止运行。

2. 加载RC数据中的名为1000的资源到内存并其进行解密

盗号木马分析报告_第4张图片

3. 加载Icon资源类型下的所有资源到内存,并使用之前RC中名为1000的资源的数据对其进行解密

盗号木马分析报告_第5张图片

第一次解密

盗号木马分析报告_第6张图片

第二次解密

盗号木马分析报告_第7张图片

此时木马的主体已经暴露在外,将其dump出来,保存为可执行文件

盗号木马分析报告_第8张图片

4.      接着木马程序获取自身路径以挂起的方式创建对应的子进程,并获取对应的线程上下文CreateProcessW(0,自身路径,0,0,0,4,0,0,buf1(大小0x44), buf2(大小0x10));

5.      将子进程的主模块数据卸载

6.  创建一个内存段对象,将当前进程和子进程的指定位置指定大小的内存与之“绑定”

(1)首先创建一个内存段对象

盗号木马分析报告_第9张图片

(2)两次调用下面的函数,将当前进程内存地址为0x16E000和子进程内存地址为0x400000,大小同为0xA2000(也就是释放的恶意PE的IMAGESIZE)的内存空间同时和上面创建的SectionHandle“绑定”到一起。

盗号木马分析报告_第10张图片

此时在当前进程中修改0x16E000后的内容就会间接的修改了子进程0x400000后的内容。

7.      将之前解密出来的恶意主体在当前进程中PE展开(实现PE文件加载到内存)

此时当前进程和子进程的内容应该都如图所示

盗号木马分析报告_第11张图片

8.      接着主进程恢复子进程的主线程,并结束自身进程

盗号木马分析报告_第12张图片

9.      接下来就是分析之前dump出来的主体untitle1.exe了,下面是基本文件信息,.x段很可疑

盗号木马分析报告_第13张图片

程序使用hash值获取函数地址

字符串都是局部变量字符数组,隐蔽性很强

盗号木马分析报告_第14张图片

10. 获取"SOFTWARE\Microsoft\Cryptography"下的"MachineGuid"项的键值"f9117a5d-b155-4a3e-b6c9-5ae181247d3b",加密之后,得到"5ED09A55F1832728C292E32429D73569",最后截取前0xc个字节,返回"5ED09A55F1832728C292E324",如果获取键值失败则采用结合一个固定值产生字符串。以本机为例,之后创建互斥体和之后生成的文件夹名和文件名都和"5ED09A55F1832728C292E324"有关

11.  防止自身多启动

盗号木马分析报告_第15张图片

12.  尝试窃取几乎所有的浏览器、FTP客户端中等软件保存的用户帐号:下面是执行窃取操作的循环

盗号木马分析报告_第16张图片

这里简单分析下第一个函数调用:火狐密码的窃取(1)首先,由注册表获取到路径0012FB78

00271CB8  UNICODE "SOFTWARE\Mozilla\Mozilla Firefox\53.0 (x86

zh-CN)\"(2)获取关键文件夹并用于初始化

盗号木马分析报告_第17张图片

(3)初始化之后就是读取

的这三个文件获取密码

盗号木马分析报告_第18张图片

然后就关闭10.  接着获取当前用户是否具有管理员权限,当前虚拟机未打开管理员权限网络文献:以上Delphi检测用户是否具有administrator权限(OpenThreadToken,OpenProcessToken,GetTokenInformation,AllocateAndInitializeSid和EqualSid)http://www.cnblogs.com/findumars/p/5281970.html

11.将以上所有收集到的信息发送至指定服务器其中.x段存储着服务器地址xor 0xFF后的值,每次均从中获取对应的网址

盗号木马分析报告_第19张图片

获取服务器地址

盗号木马分析报告_第20张图片

发送数据

12.接着就是移动文件到指定文件夹(并在这个过程中改文件名),并设置文件属性

盗号木马分析报告_第21张图片

13.  之后就是循环上传

盗号木马分析报告_第22张图片

14.  执行流程图

盗号木马分析报告_第23张图片

15.木马的缺陷:未能正确添加启动项

这其间获取服务器地址使用一个奇怪的函数,函数内部首先使用RSA相关的函数解密一块内存空间,然后又将释放的恶意PE的.x段与0xFF异或,之后将xor的结果覆盖到之前解密的部分,而这之间没有任何对解密部分的使用,也就是说白解密了.一开始以为是混淆,直到又看到一个函数SHRegSetPath,一开始看到就觉得应该是设置启动项,函数第一个参数是主键HKEY_LOCAL_MACHINE,但是第二个参数竟然是服务器地址,结果就是这个木马不能正确添加到启动项那么,为什么呢?往SHRegSetPath上面看看,会发现刚刚说的那个那函数,跟进去会发现它还是首先解密一块空间,

盗号木马分析报告_第24张图片

解密后就是\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,这正是SubKey应该的字符串,但是之后被服务器地址无情的覆盖了,所以最后就悲剧了.这里猜测可能是作者是想改将服务器地址改为自己的(跟到过解密后的字符串,除了这个注册表的都是网址),他可能是在原来的RSA解密函数内部改的(你会发现有很多nop),在其中使用汇编将自己添加的.x段异或0xFF覆盖到返回地址,但是他没有注意到添加启动项也使用了这个函数也用于解密"\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"字符串.

整个木马详细的分析过程在附件中(真心详细),

欢迎下载链接:http://pan.baidu.com/s/1qYbpdZu 密码:mqiw 解压密码:111

本文由看雪论坛树梢之上原创  转载请注明来自看雪社区

你可能感兴趣的:(盗号木马分析报告)