Qt免杀样本分析
字数 1671 2025-08-29 22:41:32

Qt免杀样本分析教学文档

样本基本信息

  • SHA256: 9090807bfc569bc8dd42941841e296745e8eb18b208942b3c826b42b97ea67ff
  • 检测情况: 引擎0检出(免杀样本),但微步云沙箱行为分析判定为恶意
  • 样本类型: Qt框架编写的PE文件,采用白加黑技术

行为分析

进程行为

  1. 调用winver获取主机基本信息
  2. 调用taskmgr并以taskmgr身份再次调用自身(提权行为)

文件行为

  • 无文件写入
  • 原文件运行后自删除

注册表行为

  • 添加计划任务:
    • 启动权限:SYSTEM
    • 执行频率:每两小时一次

网络行为

  • 未检出明显网络行为

技术细节分析

主程序技术特点

  1. Qt框架:增加分析难度
  2. PoolParty timer模块
    • 利用内置计时器线程池任务执行shellcode
    • 项目地址:PoolParty

调试技巧

  1. API断点法:由于动态调试困难,建议在VirtualAlloc下断点
  2. 调用堆栈回溯:首次VirtualAlloc位置通常是第一个shellcode载入点

Shellcode分析

  1. 第一段shellcode

    • 创建内存并对数据进行魔改RC4解密
    • 密钥:12345
    • 解密结果:DLL文件
  2. 后续操作

    • 内存对齐并跳转入口段初始化
    • 进入第二个函数找到run函数并执行

DLL逻辑分析

  1. 权限判断

    • 获取主程序名称
    • 如果不是winlogon.exe则进入初始化流程
    • 如果是管理员权限进入sub_180004240,否则进入sub_180001000
  2. 非管理员运行

    • 拼接路径:C:\windows\system32\winver.exe
    • 生成类似UUID的值,利用RPC通信提权
    • 调用taskmgr.exe并使用CreateProcessAsUserW创建子线程
  3. 管理员运行

    • 复制两段代码:当前shellcode和RC4未解密的DLL数据
    • 遍历进程查找winlogon.exe获取进程ID
    • 将shellcode写入winlogon.exe进程
    • 利用ALPC(高级本地过程调用)完成权限维持
  4. winlogon.exe内运行

    • 再次魔改RC4解密,解密出IP地址(疑似C2)
    • 创建文件:C:\Program Files\Common Files\System\Overwolf.exe
    • 同目录下创建teamspeak_control.dllteamspeak_control.bin
    • 启动线程执行shellcode
  5. 计划任务创建

    • 解密获取计划任务COM组件的CLSID和riid
    • 初始化COM组件
    • 执行命令创建计划任务
    • 最后删除自身

白加黑技术分析

  1. DLL导出函数:所有导出函数内容设置为相同,调用任意一个即触发恶意行为
  2. 调试技巧:在DeleteFileW下断点回溯源头
  3. 执行流程
    • 读取同目录下的.bin文件
    • 解密shellcode并执行DLL中的逻辑

攻击流程总结

  1. 主程序(Qt)利用PoolParty timer创建并调用shellcode
  2. shellcode调用DLL的run函数
  3. run函数为DLL提权并重新加载
  4. 提权后将shellcode注入winlogon.exe
  5. winlogon.exe中:
    • 生成白加黑文件
    • 创建计划任务(每两小时执行一次)
  6. 白加黑文件重复上述流程,但无需再次提权(因计划任务以SYSTEM身份运行)

C2情报

  • 在X情报社区查询发现多个同源样本
  • 检出木马类型有助于初步研判建立框架

防御建议

  1. 监控异常进程行为,特别是winvertaskmgr的异常调用
  2. 关注计划任务的异常创建,特别是SYSTEM权限的高频任务
  3. 对Qt程序特别是使用PoolParty timer模块的保持警惕
  4. 监控winlogon.exe的异常内存写入
  5. 关注Overwolf.exeteamspeak_control.dll的组合出现
  6. 建立对RC4加密行为的检测机制
Qt免杀样本分析教学文档 样本基本信息 SHA256 : 9090807bfc569bc8dd42941841e296745e8eb18b208942b3c826b42b97ea67ff 检测情况 : 引擎0检出(免杀样本),但微步云沙箱行为分析判定为恶意 样本类型 : Qt框架编写的PE文件,采用白加黑技术 行为分析 进程行为 调用 winver 获取主机基本信息 调用 taskmgr 并以taskmgr身份再次调用自身(提权行为) 文件行为 无文件写入 原文件运行后自删除 注册表行为 添加计划任务: 启动权限:SYSTEM 执行频率:每两小时一次 网络行为 未检出明显网络行为 技术细节分析 主程序技术特点 Qt框架 :增加分析难度 PoolParty timer模块 : 利用内置计时器线程池任务执行shellcode 项目地址: PoolParty 调试技巧 API断点法 :由于动态调试困难,建议在 VirtualAlloc 下断点 调用堆栈回溯 :首次 VirtualAlloc 位置通常是第一个shellcode载入点 Shellcode分析 第一段shellcode : 创建内存并对数据进行魔改RC4解密 密钥: 12345 解密结果:DLL文件 后续操作 : 内存对齐并跳转入口段初始化 进入第二个函数找到run函数并执行 DLL逻辑分析 权限判断 : 获取主程序名称 如果不是 winlogon.exe 则进入初始化流程 如果是管理员权限进入 sub_180004240 ,否则进入 sub_180001000 非管理员运行 : 拼接路径: C:\windows\system32\winver.exe 生成类似UUID的值,利用RPC通信提权 调用 taskmgr.exe 并使用 CreateProcessAsUserW 创建子线程 管理员运行 : 复制两段代码:当前shellcode和RC4未解密的DLL数据 遍历进程查找 winlogon.exe 获取进程ID 将shellcode写入 winlogon.exe 进程 利用ALPC(高级本地过程调用)完成权限维持 winlogon.exe内运行 : 再次魔改RC4解密,解密出IP地址(疑似C2) 创建文件: C:\Program Files\Common Files\System\Overwolf.exe 同目录下创建 teamspeak_control.dll 和 teamspeak_control.bin 启动线程执行shellcode 计划任务创建 : 解密获取计划任务COM组件的CLSID和riid 初始化COM组件 执行命令创建计划任务 最后删除自身 白加黑技术分析 DLL导出函数 :所有导出函数内容设置为相同,调用任意一个即触发恶意行为 调试技巧 :在 DeleteFileW 下断点回溯源头 执行流程 : 读取同目录下的 .bin 文件 解密shellcode并执行DLL中的逻辑 攻击流程总结 主程序(Qt)利用PoolParty timer创建并调用shellcode shellcode调用DLL的run函数 run函数为DLL提权并重新加载 提权后将shellcode注入 winlogon.exe 在 winlogon.exe 中: 生成白加黑文件 创建计划任务(每两小时执行一次) 白加黑文件重复上述流程,但无需再次提权(因计划任务以SYSTEM身份运行) C2情报 在X情报社区查询发现多个同源样本 检出木马类型有助于初步研判建立框架 防御建议 监控异常进程行为,特别是 winver 和 taskmgr 的异常调用 关注计划任务的异常创建,特别是SYSTEM权限的高频任务 对Qt程序特别是使用PoolParty timer模块的保持警惕 监控 winlogon.exe 的异常内存写入 关注 Overwolf.exe 和 teamspeak_control.dll 的组合出现 建立对RC4加密行为的检测机制