Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Overlord-RAT-Reverse-Engineering-a-Go-Based-RAT-Injection-Keylogging-C2-Exfiltration-Analysis — Overlord RAT 的完整静态与内存分析:Go 代理架构、HTTP/2 + WebSocket C2、反射式 DLL 注入、浏览器键盘记录以及 IOC。一次动手实践的恶意软件逆向工程演练。 | Kitploit
工具/GitHubGitHub/kaandemir993/overlord-rat-reverse-engineering-a-go-based-rat-injection-keylogging-c2-exfiltration-analysis
危害指标 (IOC) 管理动态分析 (沙盒)逆向工程数据泄露恶意软件分析数字取证命令与控制威胁情报论文与研究

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHubkaandemir993/overlord-rat-reverse-engineering-a-go-based-rat-injection-keylogging-c2-exfiltration-analysis

Overlord-RAT-Reverse-Engineering-a-Go-Based-RAT-Injection-Keylogging-C2-Exfiltration-Analysis

Overlord RAT 的完整静态与内存分析:Go 代理架构、HTTP/2 + WebSocket C2、反射式 DLL 注入、浏览器键盘记录以及 IOC。一次动手实践的恶意软件逆向工程演练。

查看仓库
91449天前尚未审核

1. HTTP/2 C2 通道与加密屏幕捕获

Process Hacker 对 Overlord RAT(PID 7488)的内存字符串扫描揭示了大量在运行时解析的 Windows API 调用和内部字符串。其中,http2dialCall 作为一个基于 HTTP/2 的回调例程尤为突出,用于建立 C2 通信。加密、输入捕获和图形相关 API 的存在表明这是一个功能完备的 RAT,具备键盘记录、屏幕捕获和加密 C2 能力。

关键观察:

http2dialCall – HTTP/2 回调函数;用于通过 HTTP/2(端口 443)打开 C2 通道,与合法 HTTPS 流量混为一体。 http2clientConnPool – HTTP/2 C2 会话的连接池;实现与 C2 服务器的持久化、多路复用通信。 maxIdleConnsPerHost / GetEvictionPriority / SetEvictionPriority – 连接生命周期管理,保持空闲 C2 通道存活同时规避超时。 CreateCryptoSession /GetEncryptionBltKey – 基于 DirectX/GPU 的加密会话创建;用于加密屏幕捕获或 GPU 加速操作。 capture._Ctype_int / capture.monCapture / capture.scaledPart / capture.mfActivate – 屏幕捕获和桌面监控例程。 GetInputCurrentType / GetImmediateContext – 输入和渲染上下文获取;支持键盘记录和屏幕抓取。 CreateTrueColorCondition – 用于屏幕捕获操作的显示条件设置。

为何重要:

HTTP/2 C2:使用 http2dialCall 和 http2clientConnPool 表明该 RAT 通过 HTTP/2 通信,比明文 HTTP 更难检测,且能与现代 Web 流量混为一体。 加密数据外泄:CreateCryptoSession 和 GetEncryptionBltKey 表明存在加密数据传输,很可能是窃取的文件或屏幕截图。 完整 RAT 能力:屏幕捕获(capture.)+ 输入捕获(GetInputCurrentType)= 键盘记录和远程监视。 就地取材风格:API 字符串的运行时解析(混淆存储)是一种常见的规避技术,用于对抗静态字符串分析。 持久化与规避:连接池管理(maxIdleConnsPerHost、GetEvictionPriority)保持 C2 通道稳定同时避免被检测。

视觉参考:

OverlordRat Process hacker strings

2.WebSocket C2 回退与键盘记录能力

对同一 Overlord RAT 进程的第二次字符串扫描揭示了另一组与输入捕获、WebSocket C2 以及内存/反射操作相关的字符串。与第一组聚焦于 HTTP/2 和屏幕捕获不同,这组字符串指向键盘记录、持久化 WebSocket 通信和内存中执行技术。

关键观察:

capture.rawWin – 原始窗口捕获例程;用于对活动窗口进行截图。 captureKeyStrokes – 直接的键盘记录函数;捕获受害机器上输入的每一次击键。 map[uintptr]bool – 运行时映射结构;可能用于跟踪被挂钩的 API 或捕获的句柄。 websocket.noCopy / websocket.header / websocket.opcode – WebSocket 实现字符串;表明该 RAT 使用 WebSocket 作为辅助 C2 通道(除 HTTP/2 之外)。 writeFramePayload/ readCloseFrameErr / setCloseErrLocked – WebSocket 帧处理;确认存在基于 WebSocket 的活跃 C2 通信。 reflectlite.Type / abi.UncommonType/ abi.PCLnTabMagic – Go 运行时反射/ABI 字符串;表明该载荷是基于 Go 的二进制文件,使用了反射。 msgpack.isZeroer / msgpack.field – MessagePack 序列化;用于高效打包/解包 C2 消息。 sync.poolDequeue / poolLocalInternal – Go sync 池管理;用于高性能内存复用。

为何重要:

双 C2 通道:HTTP/2(http2dialCall)+ WebSocket(websocket.)= 冗余 C2,当一个通道被封锁时可自动故障转移。 键盘记录能力:captureKeyStrokes 确认该 RAT 执行主动击键捕获——凭据、聊天记录和密码均面临风险。 基于 Go 的载荷:reflectlite、abi.PCLnTabMagic 和 msgpack 字符串表明这是一个 Go 编译的 RAT,更难逆向,且通常能绕过 AV 特征码。 MessagePack 序列化:msgpack. 表明使用紧凑的二进制 C2 消息传递,减少网络足迹并规避 DPI。 内存中反射:*reflectlite.Type 和 *abi.UncommonType 用于动态函数解析——一种常见的规避技术,避免静态导入。 隐蔽 WebSocket C2:端口 443 上的 WebSocket 流量与合法 Web 应用混为一体,使网络监控检测更加困难。

视觉参考:

OverlordRat Process hacker strings

3.Binary Ninja – 键盘记录模块与代理命令字符串

将转储的二进制文件 connectstart.bin(从 Overlord RAT 进程的 Process Hacker 内存字符串中提取)加载到 Binary Ninja 进行静态分析。字符串视图揭示了一个嵌入在载荷中的结构完整的键盘记录模块,以及清晰的代理命令命名空间(overlord-client/cmd/agent/keylogger.*)。这确认了 Overlord RAT 附带模块化代理架构,其中键盘记录器是一个通过 C2 命令控制的专用子系统。

关键观察:

模块路径:overlord-client/cmd/agent/keylogger.* – 键盘记录代理的清晰 Go 包命名空间。 (Keylogger).Start/ .Stop – 根据 C2 命令启动和停止键盘记录器。 (Keylogger).IsRunning – 检查键盘记录器是否已处于活动状态。 (Keylogger).captureLoop – 持续捕获击键的主循环。 (*Keylogger).logKey – 原始击键捕获函数。 (Keylogger).getWindowTitle – 获取活动窗口标题(每次击键的上下文)。 (Keylogger).flushBuffer / .flushLoop / .FlushNow – 定期将捕获的击键刷新到磁盘或 C2。 (Keylogger).ListFiles / .ReadFile / .DeleteFile / .ClearAll (Keylogger).rotateFile / .cleanupOldLogs – 日志轮转和清理以避免被检测。

为何重要:

模块化代理架构:overlord-client/cmd/agent/ 路径显示了一个清晰、模块化的 Go 代理——每项能力(键盘记录、屏幕捕获、shell 等)都是一个独立的命令模块。 主动键盘记录:captureLoop、logKey 和 getWindowTitle 确认了带窗口上下文的实时击键捕获(用户名、密码、聊天记录)。 反取证:rotateFile、cleanupOldLogs 和 DeleteFile 防止日志堆积并减少取证痕迹。 通过 ROT13 规避:rot13 字符串表明捕获的数据在存储/外泄前被混淆,以对抗基于字符串的检测。 权限门控:NeedsPermissionGate / RequestPermission 表明该 RAT 在激活键盘记录器之前会验证环境条件(UAC、管理员权限)。 命令驱动行为:Start/Stop/IsRunning 证明键盘记录器由 C2 远程切换——而非自动运行,这减少了检测足迹。

视觉参考:

OverlordRat Binary Ninja keylogger

4.Binary Ninja – 浏览器注入与进程操纵模块

在 Binary Ninja 中对同一 connectstart.bin 转储的第二次字符串视图揭示了 Overlord RAT 的浏览器注入子系统。包路径 overlord-client/cmd/agent/capture.* 包含用于启用调试权限、监控崩溃、注入浏览器以及管理浏览器进程的函数。这确认了 Overlord RAT 不仅进行键盘记录——它还主动将代码注入已安装的浏览器,以拦截凭据、会话和 Web 流量。

关键观察:

模块路径:overlord-client/cmd/agent/capture.* – 专用的捕获/注入代理。 capture.enableDebugPrivilege – 启用 SeDebugPrivilege 以访问并注入其他进程。 syscall.(LazyDLL).NewProc – 动态解析 Windows API(LazyDLL)以规避静态导入。 capture.StartbackstageBrowserInjected – 将 RAT 注入浏览器进程的主例程。 StartbackstageBrowserInjected.func1 … func24 – 支持注入链的多个辅助函数(24+)。 capture.CheckInstalledBrowsers – 枚举已安装的浏览器(Chrome、Edge、Firefox、Brave 等)。 capture.findBrowserExe – 定位浏览器可执行文件路径。

为何重要:

浏览器凭据窃取:StartbackstageBrowserInjected 证明该 RAT 注入浏览器以窃取保存的密码、Cookie 和活动会话。 SeDebugPrivilege 滥用:enableDebugPrivilege 是一种经典技术,用于获取对其他进程的 PROCESS_ALL_ACCESS 以进行注入。 动态 API 解析:LazyDLL.NewProc 在运行时解析 Windows API 调用,击败基于静态导入的检测。 广泛的浏览器覆盖:CheckInstalledBrowsers + findBrowserExe 表明支持多种浏览器,而不仅限于一种。 强制重新注入:isProcessRunning + killProcess 表明该 RAT 可以在浏览器重启时终止并重新注入。 稳定性与防崩溃:monitorProcessCrash 和 describeExitCode 确保被注入的浏览器不会频繁崩溃(否则会引起怀疑)。

视觉参考:

OverlordRat Browserinject

5.Binary Ninja – 进程注入与反射式 DLL 加载

在 Binary Ninja 中对 connectstart.bin 的进一步字符串视图暴露了 Overlord RAT 的注入引擎。overlord-client/cmd/agent/capture.* 包包含一个完整的进程注入工具包:挂起进程创建、环境块欺骗、反射式 DLL 注入和浏览器 API 补丁。本节证明该 RAT 不仅是键盘记录器——它是一个功能完备的代码注入框架。

关键观察:

capture.createSuspendedProcessOnDesktop – 以挂起状态创建目标进程以供注入。 capture.buildEnvironmentBlock / .readRawEnvironmentBlock / .appendEnvironmentOverrides – 构造虚假环境块以误导 EDR 工具。 capture.environmentBlockEntries / capture.isRDIEnvironmentEntry – 检查环境中是否存在反射式 DLL 注入(RDI)标记。 capture.injectIntoProcess – 主注入调度器。 capture.stageInjectionDLL – 为注入准备载荷 DLL。 capture.loadLibraryInject – 经典的基于 LoadLibrary 的注入。 capture.reflectiveInject / .findReflectiveLoaderOffset / .isBackstageLoaderExport – 反射式 DLL 注入,完全从内存加载载荷(无磁盘痕迹)。

为何重要:

反射式 DLL 注入:reflectiveInject + findReflectiveLoaderOffset 意味着载荷从不接触磁盘——一种强大的反取证技术。 环境块欺骗:buildEnvironmentBlock 和 appendEnvironmentOverrides 用于对 EDR 遥测隐藏被注入的进程。 直接系统调用:callSyscallN 通过直接调用内核系统调用来绕过用户态 API 钩子(EDR/AV)。 浏览器特定挂钩:patchOperaAsync 和 patchGetCursorInfo 表明对浏览器内部进行针对性操纵以静默窃取数据。 UI 自动化滥用:iuiAutomation. 用于直接读取浏览器 UI 元素(地址栏、密码字段、自动填充)。 挂起进程技巧:以挂起状态创建目标进程可防止浏览器在注入前初始化安全检查。

视觉参考:

OverlordRat injection

结论

对 Overlord RAT 样本的分析揭示了一个功能完备的、基于 Go 的远程访问木马,采用模块化代理架构和高级规避技术构建。在五个分析阶段——内存字符串检查、二进制静态分析和注入引擎审查——中,该 RAT 展示了远超简单键盘记录器的能力。

关键要点:

下载工具