银狐样本母体加载过程详细分析
2024-7-26 09:51:53 Author: mp.weixin.qq.com(查看原文) 阅读量:4 收藏

前言概述

原文首发出处:

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数据的请求过程,中间有很多相关的反调试,以及反分析的手段。

威胁情报

总结结尾

去年使用“银狐”黑客远控工具的黑产团伙非常活跃,今年这些黑产团伙仍然非常活跃,而且仍然在不断的更新自己的攻击样本,采用各种免杀方式,逃避安全厂商的检测,免杀对抗手法一直在升级。


文章来源: https://mp.weixin.qq.com/s?__biz=MzA4ODEyODA3MQ==&mid=2247488588&idx=1&sn=cc0f10f378cb7363c8e62785db6537aa&chksm=902fbb64a7583272a6ff4b070ac77c70e4dbeb0244619404ce25d30c0bb7d4f4e4666565d4f4&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh