首页
社区
课程
招聘
[原创]一个隐藏蛮深的白加黑样本分析
2020-6-9 14:51 14554

[原创]一个隐藏蛮深的白加黑样本分析

2020-6-9 14:51
14554

目录

前言

偶然找到一个白加黑的样本,尝试进行分析,看看是如何运行的。
先放个自己做的样本的流程图吧。

 

ff7f1a61-8020-4794-ad49-2da67b45c094.png

文件前期整理分析

文件夹内有3个文件,前两个是隐藏文件,而且虚假后缀为 .bmp 的文件类型是快捷方式,所以判断这几个文件应该是有猫腻的。

 

fae67dc6-0484-4b53-b7ac-73898ce00343.png

 

73bfee1d-4141-4f6c-94c6-153bc36d8df1.png

 

使用 HIEW 对截图.bmp文件进行查看,发现它会调用 rundll32.exe 来加载 reg.dll。

 

f2e6a8df-9cf2-4b52-aa26-a9c4a733c939.png

 

运行截图.bmp文件,会弹出一个 DNF价格表.jpg,使得用户误以为截图.bmp文件是无毒的,然而一个后缀是.jpg,一个是.bmp(实际是.lnk,一般用户都不把文件后缀打开,所以本文暂时将.lnk文件看成是.bmp吧)

 

81250d16-f096-4ac9-bbd4-5e657a2d9a5a.jpg

 

利用火绒剑监控 rundll32.exe 进程,来查看它调用的程序。发现恶意程序会调用隐藏dll及隐藏文件夹中的dll。

 

8a9db168-3955-41c2-8612-4e9b81f676cb.png

 

a1ee9eee-f1d0-4895-9c8d-3b71f10411fe.png

 

在进程中发现了有趣的进程出现,QQGame.exe,而我的电脑里可没装这个优秀平台的。

 

a9710bc4-7bb3-43f9-a970-9238fd7c3d1c.png

 

有个 dllhost.exe 的进程也创建了QQGame.exe。对进程所在的文件目录进行查看,发现有这些可疑文件。大小很可疑,像隐藏文件夹中的一些文件。

 

7a9b5a21-db20-4736-bd5d-d8b2dd09a9f8.png

 

对所有可疑文件进行整理,整理出一个表格,更容易辨别吧。文件的签名可以使用微软的签名查看工具 sigcheck.exe 来查看。

文件名 MD5 是否有签名
HD_Comm.dll 4E7297B83268994537D575716CC65A54
截图.bmp.lnk 5C9422B6B2731A67D8504CD5C8F96812
Au.exe 4BED62D4A1344F3A87E8B8A629E3B26D 有(腾讯游戏云加速下载引擎(旋风Inside)
Config.dat B6BE1CFEB69FC091E67480E45E9B4B4D
io.dat 798536BB39EF2066DF35885F78C59A58
Reg.dll E3DE7CB9E11F877ABDB56D832F20E76F
config.dat B6BE1CFEB69FC091E67480E45E9B4B4D
dllhost.exe 9A0F444364CC3FC74C3AB1E7BFBD219B
load.exe 4BED62D4A1344F3A87E8B8A629E3B26D 有(腾讯游戏云加速下载引擎(旋风Inside))
TenioDL_core.dll 4E7297B83268994537D575716CC65A54
 

通过这个表,只需要分析几个恶意样本就可以了。

 

根据 截图.bmp.lnk 文件内容,先分析 Reg.dll。

执行流程分析

当用户点击 .bmp 文件时,会使用 rundll32.exe 来调用 Reg.dll 文件。

 

在 Reg.dll 文件的字符串中,找到 中国建设银行安全检测工具、华大智宝 等字符串,可能是一个安全检测工具所需的dll,也可能是恶意的。

 

c369eb74-ac17-4f17-8757-7cb6c76997c3.png

 

也找到了 HD_Comm.dll 这样的字符串,有理由怀疑是调用 HD_Comm.dll 这个恶意文件。

 

30c5ea2a-0ca8-4738-8d4d-b32a90dae242.png

 

在字符串中找到Config.dat这样的字符串,应该也是调用这个恶意文件。wow_helper是Config.dat文件中的导出函数。

 

565cef6f-1e87-4d05-ba93-386adb98edde.png

 

对代码进行了分析,基本上确定 Reg.dll 文件是一个跳板文件,就不进行动态分析了。

HD_Comm.dll

查看 HD_Comm.dll 文件的导出表,导出了好多函数,可能是在正常的 HD_Comm.dll 文件中加入了恶意代码。

 

74792482-9afd-412d-8c09-bf99d5d160f0.png

 

通过创建互斥体,来确保只运行一个恶意程序。

 

b2223011-3073-4546-876b-3bf3acac9696.png

 

将 HD_Comm.dll 复制到 dat\TenioDL_core.dll 中。

 

f8418388-0a13-40d1-be44-87671e860f26.png

 

最后运行 Au.exe 文件。

 

04c348b9-677c-4ba2-b1ac-570640cc8f6b.png

Au.exe

运行了 Au.exe 文件,发现跳出来DNF价格表的图片,这不就意味着恶意程序已经运行了嘛,可我明明撒都没干呀。

 

9b7fb1ba-32b4-43fc-838f-8bbbc06cf71a.jpg

 

看了看 Au.exe 的字符串,原来它会调用 TenioDL_core.dll 这个DLL,然后恶意程序就运行了。

 

c2014143-4bc8-43a0-910d-b4fb8655dd5c.png

Config.dat 分析

010打开文件看到文件前面多了一个字节,去掉进行分析。

 

a7eed51e-4428-495d-8ed1-f668b9d1916c.png

 

发现LoadPE无法识别,Config.dat还不是一个标准的PE文件,猜测可能需要对其进行解密,回到HD_Comm.dll 用Config.dat的地方继续分析。

 

b77066c7-50df-4577-a88c-0a464430abc7.png

 

发现 sub_100016B0 函数中很像解密的操作。

 

625ab267-4f77-4b9c-b4cc-7f9f7972e204.png

 

经过分析,汇编指令idiv很可疑,先将传入的0x18放入eax中,eax(0x18)除以ecx(0xA9),余数放在dl中,dl的第一次值是0x18,再加上0x8,dl第二次值为0x20。

 

然后就是将二进制数据进行解密,先异或0x20,再减去0x20。得到这样的二进制数据,再将第一个字节的00去除,对Config.dat进行分析。

 

1f387f4a-8a75-4bf9-8b40-b1a34d2f927d.png

 

对Config.dat的字符串进行查看,明显看到与键盘监控相关的字符串。

 

9d85c06e-324c-4e28-ab11-3ebff7c02f98.png

 

80f5fe1e-6a5a-4a7b-9857-6226ed94e145.png

 

查看关于io.dat的代码,发现有对其进行解密的操作,减0x6a,异或0x22

 

e8a4cd22-8d43-4568-bd27-25baa0c714d3.png

 

d2dfd3d9-1761-4fc9-ae8c-97dc49592438.png

 

打开io.jfif文件。

 

9c6641c6-b91f-435c-ac89-ebebb11c6164.jpg

 

还看到了 DNF价格表.jpg 文件,对其进行代码追踪,io文件写入到DNF价格表中。

 

a03e5183-81cb-49c6-9454-8941d0471d65.png

 

c34af3c7-2f91-4f33-b0b6-3911adc474df.png

 

先创建文件,再从内存中将数据写入文件中,最后打开文件,以此来诱使用户认为文件是安全的。

 

436d81f4-b128-4062-9529-a6aafa8eca60.png

 

创建 limit 目录下的文件

 

31b2fc88-fe83-4a14-80a3-870d8d68fdae.png

导出函数 wow_helper

判断金山杀软进程是否存在,如果存在就关闭

 

2df5a03c-37f8-4233-99df-5335c8a2619c.png

 

复制QQGame.exe

 

39cf2607-99eb-4fc6-9f2f-55ee56c26336.png

 

创建 limit 目录下的文件。

导出函数 UserService

这个导出函数其实才是恶意代码所在之处。

 

前面的部分平平无奇,关键部分都隐藏起来了。

 

f6303d67-b9a2-4ded-88fe-31615ea0e35a.png

 

恶意样本会发送上线包。

 

212da33c-5952-44e6-b79d-90e6908ef7fe.png

 

40554d72-6e08-45fc-a56a-e63653c25c5d.png

 

然后会接收主控端的不同的命令,来进行不同的操作。

 

c4068390-54ca-4d39-a52d-2f95a46e745a.png

 

152968f6-cd17-4589-bed3-f97158646dc6.png

 

545360c2-fb08-4059-8da0-669d49901ea7.png

 

使用Wireshark抓包,发现上线包被加密了。

 

09a1cc5d-bb2e-4693-b07c-6287b1430e63.png

 

在恶意程序的send函数向上溯源可找到加密方式。

 

d4c9396a-cfc3-4386-86f7-904c406b1147.png

 

对其解密后,可看到其获取了计算机名等系统信息。

 

78dfb828-f167-4804-b107-e9eacbe5c008.png

 

接下来就可以伪装成主控端,来向肉鸡发送模拟的攻击指令,来测试出不同指令进行的不同操作。这个样本以前分析过类似的,就不做过多的分析了。

dllhost.exe

打开文件之后可以看到,获取函数地址,获取 config.dat 文件。

 

6b9e9a94-95da-4936-9da0-17b2cbb4c801.png

 

解密 config.dat 文件。

 

408e113b-256b-48a8-b231-d2f91b72aed1.png

 

通过这些字符串大致可以猜到,dllhost.exe是调用 config.dat 文件的,那就不进行过多分析了。

 

68973cf4-5a5a-46d3-b58c-a9dcf29a7b1d.png

总结

总结一下流程吧,打开 截图.bmp.lnk,会调用 Reg.dll ,Reg.dll 会调用 HD_Comm.dll ,HD_Comm.dll 会运行 Au.exe 并调用主要恶意程序 Config.dat ,Au.exe 也会调用 HD_Comm.dll 。


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2020-6-9 16:30 被1行编辑 ,原因: 图片消失。。。
上传的附件:
收藏
点赞7
打赏
分享
最新回复 (13)
雪    币: 259
活跃值: (283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ZwCopyAll 2020-6-9 17:50
2
0
微软的签名查看工具 sigcheck.exe
雪    币: 219
活跃值: (221)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
礁石的爱 2020-6-9 19:30
3
0
很详细
雪    币: 310
活跃值: (1917)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
niuzuoquan 2020-6-9 21:41
4
0
mark
雪    币: 1219
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
诸葛默默 2020-6-11 10:31
5
0
楼主,解压密码是多少啊?
雪    币: 535
活跃值: (617)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
Rixo_叶默 2020-6-11 13:18
6
0
呃,感觉像是姜烨之前讲的那个病毒啊
雪    币: 1331
活跃值: (9456)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
erfze 12 2020-6-11 21:21
7
0

师傅,这个是什么工具?

雪    币: 331
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
思源欲涩 2020-6-16 14:14
8
0
lz,解压密码多少啊?
雪    币: 3307
活跃值: (3474)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
1行 1 2020-6-16 14:41
9
0

密码是  infected 软件是 Total commander

最后于 2020-6-16 14:47 被1行编辑 ,原因:
雪    币:
活跃值: (222)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mb_mxczobmt 2020-7-6 15:49
10
0
分析的挺详细,赞
雪    币: 3867
活跃值: (3495)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
APT_华生 1 2021-4-26 21:28
11
0
哥,send函数往上的解密代码没找到呀
雪    币: 3307
活跃值: (3474)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
1行 1 2021-4-27 09:40
12
0
APT_华生 哥,send函数往上的解密代码没找到呀
仔细找呀,看加密函数的参数,找对应参数在哪里还被调用了。还有一个办法,你找到加密前的数据,下硬件断点,加密数据的时候就会断下
游客
登录 | 注册 方可回帖
返回