安全分析与研究
专注于全球恶意软件的分析与研究
前言概述
原文首发出处:
https://xz.aliyun.com/t/15255
先知社区 作者:熊猫正正
近日笔者发现一例红队的样本,使用了一些有趣的手法,同时最后使用了一个开源的C2工具,对该样本进行了详细分析,分享出来供大家参考学习。
详细分析
1.样本解压缩之后是一个LNK快捷方式,如下所示:
2.LNK快捷方式调用命令行等信息,如下所示:
3.运行之后相关进程信息,如下所示:
4.会读取快捷方式文件的内容,并异或解密之后,在指定生成恶意模块,同时拷贝相应的程序到指定目录,最后在指定目录生成的文件,如下所示:
5.解密出恶意模块内容,如下所示:
6.启动%temp%目录下生成的PDF欺骗受害者,同时调用WerFault.exe程序,使用白+黑加载恶意模块,如下所示:
7.获取相关函数地址,如下所示:
8.修改进程代码的属性,如下所示:
9.修改进程代码,如下所示:
10.将恶意模块指定的代码地址写入到进程代码,如下所示:
11.修改完成之后,如下所示:
12.修改后的入口代码,跳转到恶意模块的指定代码处执行,如下所示:
13.执行到恶意模块指定的代码处,如下所示:
14.获取相关函数地址,如下所示:
15.创建两个线程并执行,然后退出程序,如下所示:
16.读取%temp目录下的faultrep.dll文件的相关内容到内存,如下所示:
17.读取faultrep.dll文件固定位置中保存的文件目录路径到内存,如下所示:
18.读取faultrep.dll文件固定位置中保存的欺骗PDF文件名到内存,如下所示:
19.不同的变种的欺骗PDF的文件名不一样,如下所示:
20.通过ShellExecuteEx函数打开欺骗PDF文档,如下所示:
21.获取主机用户名,与相关的用户名字符串进行比较反虚拟机,如下所示:
22.比较主机名反虚拟机,如下所示:
23.获取主机内存以及系统信息反虚拟机,如下所示:
24.枚举主机显示监视器反虚拟机,如下所示:
25.获取系统启动时间,磁盘空间以及检取系统中存在的波形输出设备的数量和获取系统分辨率反虚拟机,如下所示:
26.通过时间间隔反虚拟机,如下所示:
27.判断网络连接状态,如下所示:
28.在%temp%目录下生成log.txt,写入load4字符串到log.txt文件当中,如下所示:
29.通过对比文件名来反调试反沙箱,如下所示:
30.读取faultrep.dll文件固定位置的文件名信息,如下所示:
31.读取faultrep.dll文件固定位置的下载URL信息,如下所示:
32.从远程服务器hxxps://chemdl.gangtao.live/down_xia.php下载文件到%temp目录下的rname.dat,如下所示:
33.下载的rname.dat文件内容是加密的,如下所示:
34.分配相应的内存,读取rname.dat加密文件的内容到内存当中,如下所示:
35.异或解密加密算法,解密算法,如下所示:
36.解密出来的PayLoad,如下所示:
37.PayLoad的导出函数,如下所示:
通过分析发现最后的PayLoad应该是使用了一个开源的C2工具,开源代码的地址:hxxps://github.com/n1nj4sec/pupy
威胁情报
总结结尾
每年演练都会有很多新的红队样本出现,里面包含各种各样的安全技术,是一个不错的学习机会,对一些有意思的对抗样本都可以深入分析和研究。