前言概述
原文首发出处:
https://xz.aliyun.com/t/14998
先知社区 作者:熊猫正正
近日有朋友通过微信找到我,让我帮忙看一个银狐黑产团伙的样本,如下所示:
笔者针对这个银狐母体样本进行了详细分析,因为后面的加密数据已经失效,主要将整个母体的加载过程分享出来,供一些初入逆向的朋友学习参考。
详细分析
1.首先我们从样本start函数开始,如下所示:
2.跳转到恶意代码处,如下所示:
3.此处有延时执行,如下所示:
4.往下执行跳转到恶意代码,如下所示:
5.分配内存空间,然后将恶意ShellCode代码拷贝到该内存空间,并跳转到ShellCode代码执行,如下所示:
6.动态调试将恶意ShellCode代码拷贝到分配的内存空间,如下所示:
7.然后跳转执行到ShellCode代码,如下所示:
8.进入ShellCode代码,如下所示:
9.ShellCode代码会有一个解密操作,解密后面加密的恶意代码,如下所示:
10.上面就是朋友所说的ShellCode代码解密处,往后面继续执行直到解密出后面的代码,如下所示:
11.往下单步执行跳转到ShellCode核心代码处,如下所示:
12.ShellCode核心代码,如下所示:
13.调用pid.DllGetClassObject判断值是否为0x80040111,如果不等于0x80040111,则直接退出程序,如下所示:
14.此处又有一个延时操作,如下所示:
15.获取当时进程,然后调用kernel32.VirtualAllocExNuma是否成功,不成功则直接退出程序,如下所示:
16.遍历查找相关进程信息以及进程SID信息,是否符合条件,如果不符合,则退出程序,如下所示:
17.获取计算机名,然后使用这个计算机名创建互斥变量,判断程序是否已经运行,如果运行了,则直接退出程序,如下所示:
18.判断进程Token信息是否为管理员权限等,如果不符合条件,则使用参数,调用程序,如下所示:
19.获取c:\\xxxx.ini文件的属性,如果成功,则直接退出程序,如下所示:
20.通过时间间隔来返调试,如果发现程序在被调试,则直接退出程序,如下所示:
21.通过RDTSC指令来反调试,如下所示:
22.通过遍历360进程相关信息以及360程序窗口信息,如果发现360相关信息,则弹出错误对话框,并退出程序,如下所示:
23.遍历系统进程查找相关安全检测工具进程,如下所示:
24.如果发现上面的进程信息,则把恶意程序相关的目录添加到非检测目录下,如下所示:
25.后面就是从远程服务器端下载相关的数据,然后解密等操作,如下所示:
26.将加密的远程URL链接信息进行解密,如下所示:
27.解密远程URL函数,如下所示:
28.解密之后的远程URL信息,如下所示:
29.然后通过HTTP函数,向远程服务器请求相关数据,如下所示:
30.最后将请求的数据解密,解密函数,如下所示:
由于请求的URL数据已经失效,拿不到后面的加密数据了,主要分析了前面的母体加载远程URL数据的请求过程,中间有很多相关的反调试,以及反分析的手段。
威胁情报
总结结尾
去年使用“银狐”黑客远控工具的黑产团伙非常活跃,今年这些黑产团伙仍然非常活跃,而且仍然在不断的更新自己的攻击样本,采用各种免杀方式,逃避安全厂商的检测,免杀对抗手法一直在升级。