远程控制木马分析报告

远程控制木马分析报告

样本主体分析18xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.EXE

样本基本信息:

属性
Filename 18xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.EXE
MD5 b9b34748f958c31e12ae3741f728be99
SHA-1 a806386497e280612eadbe87e2104550c95ab617
File Type Win32 EXE
Magic MS-DOS executable PE for MS Windows (GUI) Intel 80386 32-bit
SSDeep 12288:DKGk6+Tjk6PQEAEd0bpkRgNyPBODdgVRX6Tw:Dz+TwNE0NfcAT
File Size 467.39 KB

静态分析

18xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.EXE

将文件载入到IDA中,分析start函数,找到了一些相对不重要的函数和一个负责主要逻辑的函数

找到关键函数sub_401A40()

通过查看函数调用图判断此函数的大致执行流:

通过API判断此函数的主要功能:文件读写,文件遍历,疑似反调试,创建进程。

通过以上结论判断此文件为病毒Droper,载入OD对关键函数进一步分析:

动态分析

此处省略沙箱中的执行结果,将沙箱的分析结果作为动态分析的辅助提示进行动态分析。

获取当前程序的文件名和所在文件路径:

进入子函数,获取当前文件路径

获取自身文件指针,将文件读取到内存中:

用GetWindowsDirectoryA()函数获取Windows目录:

进行字符串拼接:

拼接出新的路径:

新的文件名:

删除自身:

将内存中的数据写入到新的文件中:

创建目录18xxxxxxxxxxxxxxxxx

循环拼接出要写入的文件的文件名:

整体流程如下:

函数sub404260负责将图片写入,每存储一张照片就将.liz后缀的临时文件删除:

除了色情图片,程序还释放了一个名为Thumbs.db的文件。

启动远控进程rat.EXE:

检测两个进程–熊猫卫士和趋势科技的杀软:

删除文件C:\Users\Hvnt3r\AppData\Local\Temp\\byeyou.tmp

文件复制:

分析结果

得出此程序的功能:

  • 创建同名目录并在目录下释放文件
  • 杀毒软件检测
  • C:\Users\Hvnt3r\AppData\Local\Temp\目录创建byeyou.tmp备份文件
  • C:\Users\Hvnt3r\AppData\Local\Temp\目录创建rat.EXE后门程序并启动此程序

此程序是一个Dropper,完成恶意文件的释放过程,接下来分析此文件释放出的文件rat.EXE。

子程序分析rat.EXE

从名字看这个应该是一个远程控制程序,但是为了避免恶意代码编写者故意使用特殊的文件名来误导分析者的思路,因此还是要重点分析一下。

静态分析

从函数的调用关系来看这个程序可能有如下作用:

文件读写、注册表修改、从程序资源节释放文件、进程相关操作。

既然看到了常见的程序资源节的相关函数,将程序载入到ResourceHacker中看一下,果然在资源节中发现了一个疑似的PE文件:

将文件提取出来存储为rsc.exe,稍后分析。

程序的基本静态分析结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
if ( ExpandEnvironmentStringsA(Src, &Dst, 0x104u) )
{
if ( CreateDirectoryA(&Dst, 0) == 1 )
{
SHGetSpecialFolderPathA(0, &pszPath, 7, 0);// 获取某一文件的路径
GetShortPathNameA(&pszPath, &szShortPath, 0x104u);// 获取指定路径的短路径形式
strcat(&szShortPath, asc_403234); // \*.*
strcpy(&szLongPath, &Dst);
strcat(&szLongPath, asc_403230); // \
GetShortPathNameA(&szLongPath, &v22, 0x104u);// 获取指定路径的短路径形式
sprintf(&Dest, aCmdExeCCopySS, &szShortPath, &v22);// cmd.exe /c copy %s %s
memset(&StartupInfo, 0, sizeof(StartupInfo));
StartupInfo.wShowWindow = 0;
StartupInfo.cb = 68;
StartupInfo.dwFlags = 1;
CreateProcessA(0, &Dest, 0, 0, 0, 0, 0, 0, &StartupInfo, &ProcessInformation);// 执行CMD命令,完成文件复制操作
WaitForSingleObject(ProcessInformation.hProcess, 0xFFFFFFFF);
if ( !ExpandEnvironmentStringsA(aAllusersprofil_0, &v23, 0x104u) )// %ALLUSERSPROFILE%\Application Data\Microsoft
// 将环境变量补充维完整形式
return 0;
GetShortPathNameA(&v23, &v17, 0x104u);
sprintf(&CommandLine, aRegeditExeSESB, &v17);// regedit.exe /s /e %s\back1.reg "HKEY_CURRENT_USER\Software\Micro
memset(&StartupInfo, 0, sizeof(StartupInfo));
StartupInfo.wShowWindow = 0;
StartupInfo.cb = 68;
StartupInfo.dwFlags = 1;
CreateProcessA(0, &CommandLine, 0, 0, 0, 0, 0, 0, &StartupInfo, &ProcessInformation);// 执行注册表备份
sprintf(&CommandLine, aRegeditExeSESB_0, &v17);// cmd.exe /c copy %s %s
WaitForSingleObject(ProcessInformation.hProcess, 0xFFFFFFFF);
memset(&StartupInfo, 0, sizeof(StartupInfo));
StartupInfo.wShowWindow = 0;
StartupInfo.cb = 68;
StartupInfo.dwFlags = 1;
CreateProcessA(0, &CommandLine, 0, 0, 0, 0, 0, 0, &StartupInfo, &ProcessInformation);// 执行文件复制
WaitForSingleObject(ProcessInformation.hProcess, 0xFFFFFFFF);
if ( RegOpenKeyExA(HKEY_CURRENT_USER, SubKey, 0, 0xF003Fu, &phkResult) )// Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
return 0;
RegSetValueExA(phkResult, ValueName, 0, 1u, &Dst, strlen(&Dst) + 1);// 添加自启动
RegCloseKey(phkResult);
if ( RegOpenKeyExA(HKEY_CURRENT_USER, aSoftwareMicros_0, 0, 0xF003Fu, &phkResult) )// Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Fol
return 0;
RegSetValueExA(phkResult, ValueName, 0, 1u, &Dst, strlen(&Dst) + 1);
RegCloseKey(phkResult);
}
strcat(&Dst, aCtfmonExe); // ctfmon.exe
v4 = _p___argv(0, &Dst);
CopyFileA(**v4, &Dst, 0); // 创建文件ctfmon.exe
v5 = FindResourceA(0, 2, 0xA); // 从资源节提取数据
v6 = v5;
if ( v5 )
{
v7 = SizeofResource(0, v5);
if ( v7 )
{
v8 = LoadResource(0, v6);
if ( v8 )
{
v9 = LockResource(v8);
if ( v9 )
{
GetSystemDirectoryA(&Buffer, 0x104u);
strcat(&Buffer, aAlgExe); // alg.exe
sub_4016D0(v9, &unk_4032C0, v7, &Buffer);// 实现进程注入
}
}
}
}
}
return 0;

其实经过静态分析之后此程序的执行逻辑已经比较完善了,但是有些细节还是要通过动态分析来进一步确定:

动态分析

创建文件夹,如果目录已存在则跳过,如果不存在则执行下面的操作:

复制当前目录

执行注册表部分备份:

1
regedit.exe /s /e  %s\back1.reg "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"

设置开机启动

将自身复制为ctfmon.exe

将从资源节中提取的PE数据注入到alg.exe中

获取函数ZwUnmapViewOfSection的地址

实现进程注入

分析结果

此程序实现的功能如下:

  • 设置开机启动,实现长期驻留
  • 文件备份
  • 进程注入
  • 唤醒注入的程序

子程序分析rsc.exe

静态分析

此木马使用GetProcAddress函数来获取所需函数的地址

程序中有很多地方都用到了这种方法来降低自身被安全人员发现的概率。

SeDebugPrivilege提权:

主要函数

动态分析

打开网址http[:]//www[.]softover[.]net/chendog/rat[.]gif

下载此文件

其他相关DNS查询

对比代码发现此程序可能是远程控制软件psyrat2的变种。

后门功能实现的主要函数为sub_403190,代码量较大,这里就不一一说明分析过程了,下面直接给出分析结果。

分析结果

根据以上分析得出此程序的主要功能:

  • 受害主机环境识别(CPU信息,系统版本)
  • 隐藏自身
  • 重启|关闭计算机
  • 通过网络传送文件
  • 常见的文件读写与目录操作
  • 屏幕截取
  • 进程遍历|终止某一进程
  • 操作可移动设备
  • 远程执行命令

总结

建议

  • 不要浏览不良网站
  • 及时更新计算机的杀毒程序,但是不要觉得有了杀软保护就可以放松警惕比如此恶意软件的检出率较低
  • 在计算机控制面板中设置显示文件后缀名,此案例中恶意代码就是将可执行程序伪装成存储有色情图片的文件夹引诱用户点击,因此如果设置显示文件后缀名可以发现此文件后缀是EXE,能在一定程度上看破这种伪装

其他

有趣的是在我分析这个样本时曾将样本上传到VT和微步在线分析过,第一次上传到微步在线的时候只有两个反病毒引擎检测出,但是过了没几分钟刷新了一下页面就发现又多出了两个反病毒引擎识别出了此恶意软件,而且根据腾讯反病毒引擎的识别结果,貌似将这个恶意软件识别为了DNF的木马,(并没有查到腾讯对病毒的命名标准,只是猜测)。

附录

IOC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
C2--------------------------------------------------------------
| http[:]//www[.]softover[.]net/chendog/rat[.]gif
| cn[.]fetftp[.]nu
| rt[.]softseek[.]org
Path-------------------------------------------------------------
| 18xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\1.jpg
| 18xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\2.jpg
| 18xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\3.jpg
| 18xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\4.jpg
| 18xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\5.jpg
| 18xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\6.jpg
| 18xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\7.jpg
| 18xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\Thumbs.db
| C:\Users\[xxxx]\AppData\Local\Temp\byeyou.tmp
| C:\Users\[xxxx]\AppData\Local\Temp\rat.EXE
| C:\ProgramData\Microsoft\Comon\ctfmon.exe
String-----------------------------------------------------------
| sfctlcom.exe
| pavfnsvr.exe
| regedit.exe /s /e %s\back1.reg "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
Filename---------------------------------------------------------
| 18xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.EXE
| ctfmon.exe
| rat.EXE
| byeyou.tmp
| Thumbs.db

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×