






基本信息






UserFeedback 是带有有效签名的文件,图标为驱动人生软件图标,其中 5.TXT 和 78.exe 可疑,这与前两次分析分析大致相似,在后续分析中也验证了行为一致。
注:5.TXT 为第一阶段载荷,包含加载器和 shellcode,78.exe 为密钥,黑文件为 libcurl.dll,具体可参阅前两次分析文章。



第二阶段载荷



目标存活,将接收到的第二阶段载荷分批复制到新分配的内存当中

将首地址作为线程函数,最后创建线程触发执行

开始执行时遍历 PEB 模块链表,获取 kernel32.dll 地址

函数名都是放在栈中,获取 LoadLibraryA 和 GetProcAddress 地址,通过它们再进一步获取各模块相应函数

手动实现了一个 PE 加载器

整个大致过程:
加载器启动
获取 API 表
加载 PE 数据
调用指定导出函数
清理

第二阶段载荷在偏移 0x2804 处是一段 PE 数据

这段 PE 数据是个 32 位加了 UPX 壳的 DLL 文件

经脱壳后,查看导出表,只有一个名为 run 的导出函数

后面就是加载此 DLL,执行 run 导出函数

run 函数开始执行时先根据偏移从自身获取对应数据







sub_10008880


















import structimport zlibwith open("packet.bin", "rb") as f:data = f.read()payload = bytearray(data[8:])vals = [0x20001,0x40003,0x60005,0x80007,0x90009,0x70008,0x50006,0x30004,0x10002,0x10000,0x30002,0x50004,0x70006,0x90008,0xB000A,0xD000C,0xF000E,0x110010,0x130012,0x120013,0x100011,0x160015,0x180017,0x1A0019,0x1C001B,0x1D001D,0x1B001C,0x19001A]raw = b''.join(struct.pack("<I", x) for x in vals)key = [raw[i * 2] for i in range(56)]for i in range(len(payload) // 3):payload[i] ^= key[i % 56]decompress_data = zlib.decompress(payload)with open("output", "wb") as f:f.write(decompress_data[2:])


打开后是正在分析调试的图,数据已经发送到 C2 了
对接收数据进行解密解压操作









sub_1000B240












如果是 win7 以下,sub_100078A0 目的是创建线程,共创建 4 个线程,线程函数执行
sub_10009E20
sub_10009F10
sub_1000A030
sub_1000A2F0
sub_10009E20
创建一个隐藏的消息窗口,窗口过程专门处理 WM_CREATE 消息,以 -wait 方式启动服务

sub_10009F10
获取当前登录用户名及 SID

sub_1000A030
定期调用 SetProcessWorkingSetSize 来减少进程的内存占用

sub_1000A2F0
用于会话管理和进程守护,即使终止用户进程,服务也会立即创建;即使禁用了服务,用户进程也会重新启动服务







总 结



经分析,该样本系伪装成驱动人生安装程序的恶意软件,采用 Setup Factory 5.0 打包,延续了此前白鲨倒计时及伪装钉钉下载器样本的白加黑加载手法。本次分析成功获取了第二阶段载荷,该载荷内置手动实现的 PE 加载器,用于动态加载并执行加密的 DLL 模块。核心模块 run 导出函数负责收集主机信息,包括操作系统版本、硬件配置、网络连接、IM 软件及杀毒软件运行状态等,经异或加密及压缩后回传至 C2 地址。同时,样本通过注册系统服务及进程守护机制实现持久化,支持下发包括屏幕截图在内的多种功能插件。综合其加载方式、通信协议及插件化架构,该木马具备 GodRAT 特征,关联组织疑似为银狐。
综合对比三次分析 (伪装百度网盘、伪装钉钉下载器、伪装驱动人生),它们共同特征:
打包与伪装手法一致:均使用 Setup Factory 系列版本 (5.0/9.0) 打包;均伪装成知名软件安装包 (百度网盘、钉钉、驱动人生);安装包体积异常偏大
白加黑加载模式:均利用带有有效签名的白文件作为启动入口
多层加密与载荷隐藏:均包含伪装成非 PE 格式的数据文件 (png.png、1.exe/2.exe、5.TXT/78.exe);解密后的载荷均在内存中动态分配执行,避免落地
C2 通信机制相同:首次连接均发送探测字符串 "ABCDE"
差异点



IoCs



哈希
b6290316c488a05c284ed7084e9edb4b
C2
110.40.135[.]215
夜雨聆风
