XWorm木马学习
近期静态代码逆向分析了一款流传极广的商业化.NET远控木马XWorm V6,学习XWorm完整架构、7 大核心模块、通信加密、窃密、持久化、对抗沙箱 / 杀毒全套能力,记录逆向分析思路与恶意技术点。
一、样本基础信息与整体架构设计
基础特征
- 开发语言:
C#``.NET Framework,可加壳混淆,静态识别难度高 - 家族归属:
XWorm V6商业远控RAT,黑产付费生成器产出,配套完整插件拓展体系 - 核心设计思路:分层模块化解耦,每个模块职责独立;全链路流量加密;注册表二进制持久化;内置完整反杀毒、自毁、无文件加载对抗手段
七大核心模块总览
程序整体拆分为 7 个独立类,执行流程遵循「入口初始化→通信建立→指令调度→插件拓展→窃密采集→底层工具支撑」逻辑:
ProgramEntry:程序入口、反沙箱初始化NetworkService:C2 TCP 长连接、心跳、主机信息采集上报CommandRouter:核心指令分发器,24 类远程攻击指令调度AppUpdater:杀毒对抗、木马更新、自销毁清理痕迹Plugin:插件内存加载引擎,进程注入、UAC 绕过拓展InputTracker:全局键盘钩子窃密模块Helper+EncryptionService:底层工具库、AES 加密、GZip 压缩、注册表 / 硬件指纹工具
二、分模块逆向学习:功能、代码逻辑、恶意原理
模块 1:ProgramEntry 程序入口(反分析前置层)
程序执行第一入口,所有对抗沙箱、环境校验逻辑集中在此,规避自动化沙箱快速检测。
核心逻辑:
- 全局异常捕获:注册全局异常处理器,程序崩溃不会弹出报错窗口,避免暴露异常特征;
- 随机延时休眠:读取配置最小 / 最大延时区间,随机等待一段时间再执行核心逻辑,对抗沙箱短时间行为检测;
- 配置解密校验:内置 C2 地址、密钥等硬编码配置,运行时动态解密,静态直接读代码无法提取控制地址;
- 单实例互斥体校验:调用 Helper 创建系统互斥体,重复运行直接退出,防止多进程暴露;
- 阻止系统休眠:调用 Windows API
SetThreadExecutionState,持续保持主机唤醒,保证木马 24 小时后台在线。
模块 2:AppUpdater 安全对抗 + 自销毁模块
该模块是XWorm标志性高危对抗功能,主动削弱终端防护、实现无痕清除。

两大核心能力:
- 批量清除主流杀毒软件流量管控策略
静默调用隐藏窗口 PowerShell,批量删除 360、火绒、Windows Defender、卡巴斯基、趋势科技的 NetQoS 流量策略,破坏安全软件流量审计、行为监控能力,让木马加密 C2 流量无法被识别。 - 木马远程更新 + 一键自毁清理
- 更新功能:接收 C2 下发 Base64 二进制载荷,生成 6 位随机字符命名临时文件替换本体;
- 自毁机制:远程触发
uninstall指令时,在系统临时目录生成隐藏 BAT 脚本,脚本自动删除木马本体、临时载荷,进程退出后无任何残留文件,实现 “查杀无尸”。
模块 3:CommandRouter 指令调度中枢(24 类攻击指令合集)
木马核心控制分发单元,接收 C2 加密数据包,解密、校验参数后分发对应攻击逻辑,所有远程操作均由该类调度,内置参数校验机制,非法指令会向 C2 上报错误日志。

将24条指令按攻击用途分为6大类,
(1)网络心跳与主机识别
pong:响应服务器心跳包,维持 TCP 长连接保活;Xchat:上报硬件 HWID 唯一标识,区分每一台被控主机。
(2)整机远程系统控制
rec:重启木马程序;CLOSE:断开 C2 连接并退出进程;uninstall:调用 AppUpdater 完成卸载、自删、清理注册表插件;PCShutdown/PCRestart/PCLogoff:调用系统 shutdown 命令,强制关机 / 重启 / 注销用户;RunShell:无窗口静默执行 CMD、PowerShell 任意系统命令。
(3)恶意载荷下发与隐蔽执行(免杀核心)

update:远程下发新版本程序,替换木马本体完成更新;DW:接收 Base64 二进制落地随机临时文件执行;LN:启用 TLS1.2 协议,从远程 URL 下载文件本地运行;FM:无文件攻击核心,直接内存加载.NET 程序集,不落地磁盘,绕过文件静态查杀。
(4)网络劫持与隐蔽访问
Urlopen:默认浏览器打开指定钓鱼 URL;Urlhide:后台静默发起 HTTP 请求,无窗口,用于点击欺诈、内网探测;Hosts/Shosts:读取 / 覆写系统C:\Windows\System32\drivers\etc\hosts,篡改域名解析劫持流量
(5)持久化插件管理(长效驻留)
savePlugin:将插件 Base64 数据加密存入注册表持久化;plugin:读取注册表二进制插件,内存加载运行;RemovePlugins:清空注册表全部驻留插件,清理后门痕迹。
(6)实时监控、截屏、日志窃取
StartReport/StopReport:独立后台线程每秒遍历窗口标题,匹配银行、支付、加密货币等关键词,触发后主动上报;$Cap:全屏截图,压缩为 256×156 低色深 JPG 缩略图,Base64 加密上传 C2,降低流量体积;OfflineGet:读取本地键盘记录缓存日志,批量回传服务器。
模块 4:Plugin 插件动态加载引擎(拓展攻击能力)
XWorm 本体仅保留基础远控能力,高风险攻击全部通过插件动态加载,降低主程序静态特征。通过反射加载内存程序集,内置 7 类插件标准接口:
Run:插件基础入口,传入 C2 地址、加密密钥、设备 ID;RunRecovery:带状态恢复加载插件;RunOptions:读取插件内置配置;injRun:进程注入,将恶意代码注入系统可信进程隐藏;UACFunc:Windows 账户控制权限绕过,获取管理员权限;ENC/DEC:建立 / 关闭独立加密通信隧道,隔离流量特征。
模块 5:InputTracker 全局键盘记录窃密模块
信息泄露核心模块,基于 Windows 底层低级键盘钩子实现全系统按键捕获,无窗口后台静默运行。

核心窃取逻辑:
- 安装全局键盘钩子,捕获所有软件窗口下全部按键;
- 区分大小写、回车、Ctrl/Shift/Alt、Tab 等功能键,完整还原输入内容;
- 每次按键同步采集当前前台窗口标题、进程名,区分网银、聊天、支付软件场景;
- 本地持久化缓存日志,网络恢复后批量上传至黑客服务器。
模块 6:NetworkService C2 通信核心



木马数据收发中枢,TCP 异步长连接,负责和黑客控制服务器交互、主机资产全量采集上报。
- 高容错连接机制:内置多组 C2 域名 / IP 池,随机轮询连接,断线自动释放资源、重试重连;
- 周期性心跳保活:每 10~15 秒发送 PING 包,携带当前前台窗口、用户空闲时长,服务器返回 pong 维持会话;
- 上线全维度资产侦查
通过 WMI、系统 API 自动采集主机信息,首次上线完整上报:- 硬件:CPU 型号、显卡、内存大小、硬盘序列号;
- 网络:公网出口 IP(调用亚马逊、ipify 接口获取);
- 安全环境:查询本地已安装杀毒软件清单;
- 系统权限:操作系统版本、登录用户名、是否管理员、摄像头、USB 设备状态;
- 数据包封装规范:统一「4 字节长度头 + AES 加密载荷」结构,异步收发,防止粘包、丢包
模块 7:Helper + EncryptionService 底层工具支撑库
全木马通用工具类,提供加密、压缩、注册表、硬件指纹、进程管理全套基础能力,是所有模块的底层依赖。
- 通信加密体系

图15:AES解密实现

- 加密:AES-CBC 模式,MD5 派生密钥,数据包携带 16 字节 IV 向量;
- 压缩:GZip 压缩上下行载荷,减小流量体积,隐藏特征;
- 数据包格式:长度头 + 压缩二进制 + AES 加密。
硬件设备指纹(HWID)
读取硬盘序列号、网卡 MAC 地址拼接生成 20 位唯一设备 ID,黑客用于批量管理上万台被控主机,区分不同受害者。
图17:HWID硬件指纹生成代码 注册表长效持久化
存储路径:HKEY_CURRENT_USER\Software\[设备HWID],以 REG_BINARY 二进制格式存储插件、恶意配置,重启后木马读取注册表自动加载后门,区别于易查杀的启动项。进程与环境辅助工具
- 互斥体单实例控制:防止多开暴露;
- 用户空闲时长检测:等待无人操作时执行截屏、键盘记录等高敏感操作;
- 随机 6 位小写字符串生成:用于临时恶意文件命名,规避静态特征;
- 摄像头检测:调用 avicap32.dll 接口识别摄像头硬件,为偷拍插件提供前置判断
三、攻击链
阶段一:隐秘进驻与初始化对抗 (ProgramEntry + Helper)
• 反沙箱/反分析:启动时执行随机延时(分三段休眠,消耗CPU时间模拟正常负载),并执行随机无害系统操作(如获取磁盘空间)以干扰行为分析。全局异常捕获确保任何崩溃都不会弹窗暴露。
• 环境占领:通过 SetThreadExecutionState API 阻止系统休眠,保证后门7x24小时在线。同时立即启动互斥体检查,防止多开暴露。
• 配置自解密:C2地址、密钥等敏感配置均以密文硬编码,运行时动态解密加载至 Settings,避免静态分析直接提取。
阶段二:C2会话建立与主机信息采集 (NetworkService + Helper)
• 弹性连接:内置多组C2域名/IP,随机轮询。使用 异步TCP长连接,具备资源清理和自动重连机制,确保连接鲁棒性。
• 首次“挂号”:木马上线后,立即构造一个包含全面资产信息的注册包。内容不仅包括常规的CPU、GPU、内存、系统版本、用户名、权限、公网出口IP,更关键的是:
o HWID指纹:基于硬盘序列号、MAC地址等生成的20位唯一硬件ID,用于区分、标识和管理每台受害主机。
o 安全环境侦查:通过WMI查询 AntiVirusProduct,获取已安装的杀毒软件列表。这为攻击者后续决定是否下发针对性的免杀插件或规避动作提供了关键决策依据。
o 外设检测:检查摄像头和USB设备状态,标记高价值目标(如存在摄像头可用于偷拍)。
• 心跳维持与监控:周期性发送心跳包,并捎带上报用户空闲时间与当前活动窗口标题,让攻击者掌握操作时机,选择在用户不活动时执行敏感操作。
阶段三:指令调度与功能适变 (CommandRouter + Plugin + AppUpdater) 这是木马的大脑,CommandRouter.Read() 解密后根据指令码分发。其功能并非孤立,而是体现攻击者的战术意图:
- 侦察与信息窃取(战术:Discovery, Collection)
o $Cap:智能屏幕截图。并非原样上传,而是生成256x156缩略图,并转为低色彩深度(16bppRgb555),极大压缩体积,便于低频宽网络下快速窥屏。
o StartReport:精准钓鱼监控。攻击者下发关键词列表(如“银行”、“支付”、“Coinbase”),木马会开启后台线程,每秒扫描当前活动窗口标题。一旦命中,立即触发警报上报。这是从被动日志到主动猎取的升华,专门用于捕获用户进行敏感操作的瞬间。
o OfflineGet:离线日志回传。木马本地记录的所有操作日志(包括键盘记录)均可离线存储,等待攻击者读取,防止因网络中断丢失数据。 - 载荷投递与代码执行(战术:Execution, Defense Evasion)
o FM(无文件攻击):CommandRouter 接收Base64压缩的 .NET 程序集,直接调用 Plugin 引擎的 Memory() 方法,通过 Assembly.Load 在内存中反射加载并执行,全程无文件落地。这是该木马对抗文件查杀的核心手段。
o DW / LN:常规落地执行。为兼容非 .NET 载荷,支持将数据写入随机命名的临时文件执行,或直接使用 WebClient 从指定URL下载执行。
o update / rec / uninstall:自身生命周期管理。攻击者可随时下发新版木马完成无缝更替;或在意图撤离时,远程触发其自毁机制。 - 持久化与扩展(战术:Persistence, Lateral Movement)
o savePlugin / plugin:插件化持久化。攻击者可将自定义的 .NET 程序集(DLL)通过Base64下发,并以二进制形式存入注册表。Plugin引擎的Run, injRun, UACFunc等方法为插件提供了丰富的运行环境:标准执行、注入到指定进程、绕过UAC执行。
o Hosts / Shosts:域名劫持。可直接读取或覆写系统Hosts文件,用于劫持特定域名解析,实现隐蔽的网络钓鱼或阻止安全软件更新。
o Urlhide:隐蔽层网络请求。通过后台发起HTTP请求,可无痕访问C2指定的恶意URL,用于发起DDoS攻击、点击欺诈或代理渗透。
阶段四:痕迹清理与对抗强化 (AppUpdater + Helper)
• 主动防御削减:AppUpdater.UNS() 在执行更新或卸载时,会主动通过PowerShell命令删除360、卡巴斯基、Defender、火绒、趋势科技等安全软件的 QoS流量调度策略。其目的是破坏这些软件对流量行为的监控和限制能力,为木马的流量通讯“疏通道路”。
• 彻底自毁:自毁逻辑生成一个隐藏批处理脚本,在进程退出后,由该脚本删除木马本体及临时文件,实现“查杀无尸”。
四、XWorm 核心对抗技术学习总结
- 主动破坏终端防护:PowerShell 静默删除主流杀毒流量 QoS 策略,削弱流量监控能力;
- 无文件落地规避查杀:FM 指令内存加载.NET 程序集,全程不写入磁盘,绕过静态文件查杀;
- 全流量加密隐匿:AES+GZip 封装 C2 通信,流量无明文指令,流量审计难以识别;
- 注册表隐形持久化:二进制存储插件,区别于常规启动项,不易被基线巡检发现;
- 全流程隐蔽运行:CMD、PowerShell、网络请求、截屏、键盘记录全部隐藏窗口,用户无感知;
- 沙箱 / 人工分析对抗:启动随机延时、全局异常静默捕获、单实例互斥体;
- 入侵痕迹一键清除:自删 BAT 脚本删除本体、临时文件、注册表持久项,无残留;
- 进程注入拓展隐藏:插件 injRun 接口将恶意代码注入系统进程,规避进程特征检测。
