查看原文
其他

一个隐藏蛮深的白加黑样本分析

1行 看雪学院 2021-03-07

本文为看雪论坛优秀文章

看雪论坛作者ID:1行


   

目录

    前言

    文件前期整理分析

    执行流程分析

         HD_Comm.dll

         Au.exe

         Config.dat 分析

              导出函数 wow_helper

              导出函数 UserService

         dllhost.exe

  总结





前言


偶然找到一个白加黑的样本,尝试进行分析,看看是如何运行的。

先放个自己做的样本的流程图吧。
 





文件前期整理分析


文件夹内有3个文件,前两个是隐藏文件,而且虚假后缀为 .bmp 的文件类型是快捷方式,所以判断这几个文件应该是有猫腻的。
 
 
 
使用 HIEW 对截图.bmp文件进行查看,发现它会调用 rundll32.exe 来加载 reg.dll。
 
 
运行截图.bmp文件,会弹出一个 DNF价格表.jpg,使得用户误以为截图.bmp文件是无毒的,然而一个后缀是.jpg,一个是.bmp(实际是.lnk,一般用户都不把文件后缀打开,所以本文暂时将.lnk文件看成是.bmp吧)。
 
 
利用火绒剑监控 rundll32.exe 进程,来查看它调用的程序。发现恶意程序会调用隐藏dll及隐藏文件夹中的dll。
 

 
在进程中发现了有趣的进程出现,QQGame.exe,而我的电脑里可没装这个优秀平台的。
 
 
有个 dllhost.exe 的进程也创建了QQGame.exe。对进程所在的文件目录进行查看,发现有这些可疑文件。大小很可疑,像隐藏文件夹中的一些文件。
 
 
对所有可疑文件进行整理,整理出一个表格,更容易辨别吧。文件的签名可以使用微软的签名查看工具 sigcheck.exe 来查看。


通过这个表,只需要分析几个恶意样本就可以了。
 
根据 截图.bmp.lnk 文件内容,先分析 Reg.dll。




执行流程分析


当用户点击 .bmp 文件时,会使用 rundll32.exe 来调用 Reg.dll 文件。
 
在 Reg.dll 文件的字符串中,找到 中国建设银行安全检测工具、华大智宝 等字符串,可能是一个安全检测工具所需的dll,也可能是恶意的。
 
 
也找到了 HD_Comm.dll 这样的字符串,有理由怀疑是调用 HD_Comm.dll 这个恶意文件。
 
 
在字符串中找到Config.dat这样的字符串,应该也是调用这个恶意文件。wow_helper是Config.dat文件中的导出函数。
 
 
对代码进行了分析,基本上确定 Reg.dll 文件是一个跳板文件,就不进行动态分析了。


HD_Comm.dll


查看 HD_Comm.dll 文件的导出表,导出了好多函数,可能是在正常的 HD_Comm.dll 文件中加入了恶意代码。
 
 
通过创建互斥体,来确保只运行一个恶意程序。
 
 
将 HD_Comm.dll 复制到 dat\TenioDL_core.dll 中。
 
 
最后运行 Au.exe 文件。
 


Au.exe


运行了 Au.exe 文件,发现跳出来DNF价格表的图片,这不就意味着恶意程序已经运行了嘛,可我明明撒都没干呀。
 
 
看了看 Au.exe 的字符串,原来它会调用 TenioDL_core.dll 这个DLL,然后恶意程序就运行了。
 


Config.dat 分析


010打开文件看到文件前面多了一个字节,去掉进行分析。
 
 
发现LoadPE无法识别,Config.dat还不是一个标准的PE文件,猜测可能需要对其进行解密,回到HD_Comm.dll 用Config.dat的地方继续分析。
 
 
发现 sub_100016B0 函数中很像解密的操作。
 
 
经过分析,汇编指令idiv很可疑,先将传入的0x18放入eax中,eax(0x18)除以ecx(0xA9),余数放在dl中,dl的第一次值是0x18,再加上0x8,dl第二次值为0x20。
 
然后就是将二进制数据进行解密,先异或0x20,再减去0x20。得到这样的二进制数据,再将第一个字节的00去除,对Config.dat进行分析。
 
 
对Config.dat的字符串进行查看,明显看到与键盘监控相关的字符串。
 
 
 
查看关于io.dat的代码,发现有对其进行解密的操作,减0x6a,异或0x22。
 
 
 
打开io.jfif文件。
 
 
还看到了 DNF价格表.jpg 文件,对其进行代码追踪,io文件写入到DNF价格表中。
 
 
 
先创建文件,再从内存中将数据写入文件中,最后打开文件,以此来诱使用户认为文件是安全的。
 
 
创建 limit 目录下的文件:
 


导出函数 wow_helper


判断金山杀软进程是否存在,如果存在就关闭。
 
 
复制QQGame.exe:
 
 
创建 limit 目录下的文件。


导出函数 UserService


这个导出函数其实才是恶意代码所在之处。
 
前面的部分平平无奇,关键部分都隐藏起来了。
 
 
恶意样本会发送上线包。
 
 
 
然后会接收主控端的不同的命令,来进行不同的操作。
 
 
 
 
使用Wireshark抓包,发现上线包被加密了。
 
 
在恶意程序的send函数向上溯源可找到加密方式。
 
 
对其解密后,可看到其获取了计算机名等系统信息。
 
 
接下来就可以伪装成主控端,来向肉鸡发送模拟的攻击指令,来测试出不同指令进行的不同操作。这个样本以前分析过类似的,就不做过多的分析了。


dllhost.exe


打开文件之后可以看到,获取函数地址,获取 config.dat 文件。
 
 
解密 config.dat 文件。
 
 
通过这些字符串大致可以猜到,dllhost.exe是调用 config.dat 文件的,那就不进行过多分析了。
 





总结


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




- End -



看雪ID:1行

https://bbs.pediy.com/user-860119.htm

  *本文由看雪论坛 1行 原创,转载请注明来自看雪社区。



推荐文章++++

*  一个VB蠕虫病毒分析

* 记一次frida实战——对某视频APP的脱壳、hook破解、模拟抓包、协议分析一条龙服务

* 循序渐进分析CVE-2020-1066

*  HW前期之分析一款远控木马

* 熊猫烧香病毒逆向过程及其分析思路


好书推荐








公众号ID:ikanxue
官方微博:看雪安全
商务合作:wsc@kanxue.com



“阅读原文”一起来充电吧!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存