【AI逆向】APT组织“蔓灵花”某恶意样本分析报告
恶意样本AI分析报告一、基本信息项目内容SHA256a850a903b74c1d3d21c41e03761e8e64b43962269e7649940b10368a005bce20MD5c0a438d69ae731ad705c46ac5209c8cc架构32位 Windows PE基址0x400000映像大小0x35000节区.text(rx),.idata®,.rdata®,.data(rw)函数总数618含 502 个未命名函数编译环境MSVC (VCRUNTIME140, MSVCP140)二、C2 通信配置项目值C2 域名pololiberty.comC2 端口56218(0xDB9A)通信协议HTTP/1.1命令获取HTTP GET 请求数据上传HTTP POST (multipart/form-databoundary:----BoostAsioBoundary)重连机制连接失败每 5 秒重试异步框架Boost.Asio Windows IOCP (CreateIoCompletionPort)单实例保护mutex 机制C2 域名pololiberty.com存储在.rdata段0x425d6c由sub_401020在初始化时写入全局变量dword_4307BC最终通过getaddrinfo进行 DNS 解析。端口56218在WinMain (0x40F900)硬编码。三、核心功能模块3.1 系统信息收集 (sub_40A120)GetUserNameW→ 获取当前用户名GetComputerNameW→ 获取计算机名GetModuleFileNameW→ 获取自身执行路径将收集的信息拼接后发送给 C23.2 磁盘/文件系统枚举 (sub_40B570/sub_40C190/sub_40C980)GetLogicalDrives→ 枚举所有逻辑驱动器GetDriveTypeW→ 检测驱动器类型GetVolumeInformationW→ 获取卷信息GetDiskFreeSpaceExW→ 获取磁盘剩余空间FindFirstFileW/FindNextFileW→ 递归遍历目录文件列表使用FOLNM和SZ标签标记3.3 进程管理 (sub_40CC30)CreateProcessW→ 创建新进程OpenProcessTerminateProcess→ 终止指定进程支持按 PID 操作3.4 文件操作 (sub_40CC30)_wremove→ 删除文件_wrename→ 重命名/移动文件fread/fwrite→ 文件读写文件上传通过 HTTP POST multipart/form-data3.5 屏幕截图 (sub_40B0E0→sub_406040)GetDC→ 获取桌面 DCEnumDisplaySettingsA→ 获取屏幕分辨率CreateCompatibleDC/CreateCompatibleBitmap→ 创建内存位图BitBlt/StretchBlt→ 屏幕内容拷贝GdiplusStartup→ 初始化 GDIGdipCreateBitmapFromHBITMAP→ HBITMAP 转 GDI BitmapGdipSaveImageToStream→ 编码为 JPEG/PNG 写入流CreateStreamOnHGlobal→ 创建内存流截图保存路径:C:\users\public\pictures\ss.jpg四、关键函数映射地址函数名功能0x40F7A0WinMain主循环初始化并连接 C20x404100sub_404100初始化 IOCP ASIO 框架0x4032D0sub_4032D0创建 Win IOCP 对象0x40A120sub_40A120收集系统信息0x40A040sub_40A040建立连接并进入命令循环0x40A9E0sub_40A9E0连接服务器含 resolveconnect0x40EF20sub_40EF20命令分发入口0x40F000sub_40F000数据接收处理0x40CC30sub_40CC30命令执行核心switch-case 风格0x406760sub_406760构建 HTTP GET 请求0x4086F0sub_4086F0构建 HTTP POST multipart 上传0x412F90sub_412F90TCP 连接 DNS 解析0x413730sub_413730getaddrinfo封装DNS 解析0x40B0E0sub_40B0E0屏幕截图主函数0x406040sub_406040GDI 位图编码0x40B570sub_40B570磁盘驱动器枚举0x40C190sub_40C190文件目录递归遍历0x40ABC0sub_40ABC0文件搜索枚举五、执行流程Mermaid 图start (0x41FC06)__scrt_common_main_sehWinMain (0x40F7A0)sub_401020: 将 pololiberty.com 写入全局变量sub_404100: 初始化 IOCP ASIO[循环]sub_415A10: 设置 UnknownUser / UnknownHostNamesub_41AB50 sub_405A40: 配置 strand executorsub_419510: 初始化 tcp::resolversub_40A040: 执行连接sub_40A120: 收集系统信息sub_40A9E0: DNS解析 TCP连接sub_40EF20: 命令分发sub_40F000: 数据接收 → sub_40CC30: 命令执行命令处理分支sub_406760: HTTP GET (取命令)sub_4086F0: HTTP POST (上传文件)sub_40B570: 磁盘枚举sub_40C190/40C980: 文件枚举sub_40B0E0: 屏幕截图CreateProcessW / OpenProcess / TerminateProcess连接失败 → Sleep 5秒 → 重试六、威胁评估维度评级说明危害等级高具备完整 RAT 能力隐蔽性中使用合法 Boost.Asio 框架HTTP 流量混合在正常流量中功能完整度高文件管理、进程控制、屏幕监控、系统侦查反分析低未使用混淆、加密字符串、反调试或 hash-based API 解析API 解析方式直接导入无 ROR/ROL 指令无 GetProcAddress/LoadLibrary 调用

相关新闻