对PureRAT RAT滥用msbuild.exe进行逆向工程分析,提取C2基础设施、.NET规避API、文件系统操作以及VBScript持久化机制。
Process Hacker 内存分析显示,PureRAT 通过 msbuild.exe(一个合法的 Microsoft 构建工具)执行,并连接到多个 C2 服务器。
MSBuild.exe(PID 2056)。pure8s.ddnsfree.com52.241.248.38HKEY_CURRENT_USER\Software\95082F4ACEBFA802830...Erişim izinlerinize izin verilmeyen bir...(访问被拒绝错误消息)。msbuild.exe 是一个被滥用于执行的合法工具。
Process Hacker 视图显示 msbuild.exe 字符串,包含 C2 域名(pure8s.ddnsfree.com)和 IP(52.241.248.38)。
对 msbuild.exe 的 Process Hacker 内存分析显示,PureRAT 使用 .NET 操纵和规避 API 来避免检测。
DisableNativeImageLoad – 禁用本机映像加载(规避)。FlsSetValue / FlsGetValue – 纤程本地存储(反调试)。OpenProcessToken / GetTokenInformation – 令牌操纵(权限提升)。CreateBoundaryDescriptorW – 创建边界描述符(沙箱规避)。mscordacwks.dll – .NET 调试 DLL(潜在的调试规避)。AssemblyPath / BindingConfiguration – .NET 程序集加载。WerRegisterRuntimeExceptionModule – 错误报告操纵。AttachThreadAlwaysOn – 线程附加(注入)。AssemblyPath 和 BindingConfiguration 证实了 .NET 的使用。DisableNativeImageLoad 和 CreateBoundaryDescriptorW 有助于避免检测。OpenProcessToken 支持令牌操纵。FlsSetValue 和 AttachThreadAlwaysOn 使分析复杂化。
Process Hacker 视图显示 DisableNativeImageLoad、OpenProcessToken 及其他规避 API。
对保存的 DisableNativeImageLoad 代码进行 Binary Ninja 分析显示,PureRAT 使用 .NET 程序集操纵和基于 XML 的数据结构。
MicrodomImplementation – Microsoft XML DOM 实现。CreateMicrodomSource – 创建 XML DOM 源(配置)。DsiGBufferedStream – 用于数据处理的缓冲流。CRTIXMLDSIGBaseHasher – XML 数字签名哈希。CRTIXMLDSIGEnvelopedSignatureTransformer – XML 签名转换。AssemblyPath – .NET 程序集路径。BindingConfiguration – .NET 绑定配置。DsiGBufferedStream 处理大型数据流。DisableNativeImageLoad 阻止本机映像加载,使分析复杂化。
Binary Ninja 视图显示 MicrodomImplementation、DsiGBufferedStream 和 XML 签名 API。
本节继续上一节中对 DisableNativeImageLoad 代码的 Binary Ninja 分析。它揭示了 PureRAT 使用的文件系统操作和 CDF(组件定义文件)操纵。
DeleteFile、QueryAttributesFile、QueryDirectoryFile、WriteFile、ReadFile、CopyFile、CreateHardLinkOrCopyFile、CreateFile – 完整的文件系统控制。(ReferenceIdentityList != 0) || (CurrentPosition == 0) – 验证 CDF 引用。(NewCdf->Flags & ~((0x00000001) | (0x00000002))) == 0 – 检查 CDF 标志。CreateFile(da={da}, oa={oa}, fa={fa}, sa={sa}, cd={cd}, co={co}):(st={st}.h={h}) – 动态构造文件路径。
Binary Ninja 视图显示文件操作、CDF 验证和动态路径构造。
对 msbuild.exe 的 Process Hacker 内存分析显示,PureRAT 使用 .NET Remoting 和代理 API 进行进程间通信和代码注入。
GetServerDomainIdForProxy – 检索代理的服务器域 ID。RegisterAssembly – 注册 .NET 程序集。CreateProxyForDomain – 为域创建代理。MarshalToBuffer / UnmarshalFromBuffer – 序列化/反序列化数据。GetLocalSignature – 检索本地签名。ThrowException – 抛出异常(错误处理)。UnsafeCast / UnsafeEnumCast – 不安全类型转换(规避)。ExecuteBackoutCodeHelper – 执行回退代码。GetServerDomainIdForProxy 证实了 Remoting 的使用。CreateProxyForDomain 支持 IPC。MarshalToBuffer 和 UnmarshalFromBuffer 处理数据。UnsafeCast 和 UnsafeEnumCast 有助于绕过类型安全。
Process Hacker 视图显示 GetServerDomainIdForProxy、RegisterAssembly 及其他 Remoting API。
本节继续上一节中对 GetServerDomainIdForProxy 代码的 Binary Ninja 分析。它揭示了 PureRAT 使用的 HTTP 通信、COM(组件对象模型)使用和隔离文件系统操作。
Content-Type: %s Content-Length: %d Accept: %s – 用于 C2 通信。CoTaskMemAlloc 和 IsolationImplementation::Com – 为 COM 对象分配内存。*ppClsid = (CLSID *)... – 分配 COM 类标识符。IsolatedFilesystemObject 和 RtlIsIsolatedFilesystemObjectHandleValid – 验证隔离文件系统句柄。
Binary Ninja 视图显示 HTTP 头、COM 内存分配、CLSID 分配和隔离文件系统 API。
本次分析发现了 PureRAT,一个复杂的无文件 RAT,通过 msbuild.exe 执行并使用高级 .NET 规避技术。
msbuild.exe 在内存中运行。pure8s.ddnsfree.com 和 52.241.248.38。DisableNativeImageLoad 和 OpenProcessToken。DeleteFile、WriteFile、ReadFile、CopyFile、CreateFile)。HKEY_CURRENT_USER\Software\95082F4ACEBFA802830...)。pure8s.ddnsfree.com 和 IP 52.241.248.38。msbuild.exe 执行异常命令。DisableNativeImageLoad 和 OpenProcessToken 调用。msbuild.exe 的文件操作。分析的 PureRAT 样本可在 MalwareBazaar 上获取,供希望自行分析的人员使用:
🔗 PureRAT Sample on MalwareBazaar
使用的工具: Process Hacker、Binary Ninja、x64dbg