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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Rusty-Stealer-Keylogger-Screen-Streaming-Service-Persistence-Defender-Evasion-Analysis — 逆向工程 Rusty Stealer:一款基于 Rust 的 RAT,具备高级键盘记录、实时屏幕串流和激进的防御规避能力(终止 Windows Defender 并劫持服务)以维持持久化。 | Kitploit
工具/GitHubGitHub/kaandemir993/rusty-stealer-keylogger-screen-streaming-service-persistence-defender-evasion-analysis
防御工具持久化机制逆向工程恶意软件分析数字取证命令与控制二进制分析威胁情报论文与研究

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHubkaandemir993/rusty-stealer-keylogger-screen-streaming-service-persistence-defender-evasion-analysis

Rusty-Stealer-Keylogger-Screen-Streaming-Service-Persistence-Defender-Evasion-Analysis

逆向工程 Rusty Stealer:一款基于 Rust 的 RAT,具备高级键盘记录、实时屏幕串流和激进的防御规避能力(终止 Windows Defender 并劫持服务)以维持持久化。

查看仓库
91天前尚未审核

1. Rusty Stealer – 键盘记录例程与输入捕获

在 Ghidra 中对 Rusty Stealer 样本的初步逆向工程揭示了一个用 Rust 编译的专用键盘记录模块。反编译视图清楚地显示,该恶意软件通过解析键码并将其映射到特定操作来挂钩用户输入。这证实了该窃取程序会主动记录击键,以收集凭据、聊天记录和敏感用户数据。

关键观察:

键盘记录逻辑(伪 C 视图):FUN_140020ffe(&Var29, pHVar44, "key_press", 9) – 动态解析 "key_press" 事件字符串。 针对特定按键的条件检查:"Enter"、"Escape"、"Esc"、"Tab"、"Backspace"、"Back"。 *HKEY__ pHVar37 = ... – 注册表句柄解析(可能读取键盘布局或持久化配置) 汇编视图(反汇编):LEA R8, [local_4a8] / MOV qword ptr [R8], RAX – 将按键事件结构加载到内存中。 CALL FUN_140020ffe – 主按键处理函数。 JZ LAB_14000f309 – 基于键码的条件跳转(检查特定按键)。

为何重要:

主动击键捕获:对 "Enter"、"Tab"、"Backspace" 等的显式检查证明该恶意软件会记录每一次击键,包括特殊按键,以重建密码和消息。 注册表交互:HKEY__ 句柄表明键盘记录器可能正在读取系统配置或将其日志存储在注册表中。 凭据收集:将 "key_press" 事件与窗口标题一起记录(在后续阶段可见)使攻击者能够将击键映射到特定应用程序(例如浏览器、银行应用)。

视觉参考:

rusty_ghidra

2. Rusty Stealer – 屏幕流传输与远程桌面功能

Rusty Stealer 的第二个 Ghidra 反编译视图揭示了一项使其超越标准信息窃取程序、进入 RAT(远程访问木马)领域的能力。该恶意软件包含屏幕捕获和实时流传输的例程,使攻击者除了窃取文件和击键外,还能实时目视监控受害者的桌面。

关键观察:

屏幕捕获逻辑:FUN_140020ffe(..., "screen_stream", 0xd) – 显式初始化屏幕流传输模块。 FUN_14000d9eb7("fps", 3, ...) – 为实时流设置帧率(FPS),可能是为了平衡 CPU 使用率和视频质量。 FUN_14000c87a(..., "done", 4) / FUN_14000c87a(..., "streaming", 9) – 启动/停止流传输操作的状态标记。 内存与缓冲区管理:if (uVar69 < 5) { uVar47 = uVar69; } – 屏幕帧的内部缓冲逻辑。 汇编引用(交叉引用):LEA R8, [s_screen_stream_14001592a] – 将 "screen_stream" 字符串加载到内存中以进行比较。 CALL FUN_140020ffe – 流传输逻辑的主处理函数。

为何重要:

实时监视:"screen_stream" 和 "fps" 字符串证明该恶意软件可以实时流传输受害者的屏幕。这是成熟 RAT(如 njRAT 或 Quasar)的标志性特征,而不仅仅是简单的窃取程序。 数据外泄(视觉):键盘记录器抓取文本,而屏幕流传输则以视觉方式捕获银行会话、加密钱包和私人消息——完全绕过加密。 资源优化:设置特定 FPS(例如 3 FPS)意味着该恶意软件被设计为在后台静默运行,不会因高 CPU 使用率而惊动用户。

视觉参考:

rusty_ghidra_screen

3. Rusty Stealer – 流劫持与 Windows Defender 被终止

Rusty Stealer 的第三个反编译视图暴露了极具侵略性的防御规避和会话劫持例程。该恶意软件包含用于终止 Windows Defender 以及劫持活动网络/流传输会话(可能是为了拦截流量或破坏安全监控)的特定功能。这证实了 Rusty Stealer 的设计目的不仅是窃取数据,还包括主动致盲安全工具。

关键观察:

Windows Defender 被终止:FUN_140020ffe(..., "kill_defender", 0xd) – 动态解析字符串以终止 Defender 进程。 FUN_14001add55() – 很可能是强制停止 Defender 服务或进程的执行例程。 流劫持:FUN_140020ffe(..., "hijack_stream", 0xc) – 解析用于劫持活动流(网络流量或屏幕共享)的逻辑。 内存操作与执行:MOVUPS xmmword ptr [R12] / MOVUPS xmmword ptr [RDX + local_550] – 用于快速内存复制的 SIMD 指令(很可能是在准备 shellcode 或流缓冲区)。 CALL FUN_14000d55() – 执行劫持或终止例程。

为何重要:

致盲 Defender:kill_defender 证明该窃密程序主动针对 Windows 内置安全机制。若成功,它将禁用实时保护,使恶意软件的其余部分(键盘记录器、屏幕流传输器)能够不受干扰地运行。 会话劫持:hijack_stream 表明该恶意软件能够拦截或接管活动的网络流。这可用于窃取实时会话 Cookie、拦截银行交易或破坏远程管理工具。 设计上的规避:error_pinned 的存在表明该恶意软件预见到了关键进程无法被终止的防御情形。它很可能会重试或切换技术手段。

视觉参考:

rusty_ghidra_defender

4. Rusty Stealer – 系统剖析与受害者侦察

Rusty Stealer 的第四个反编译视图揭示了其系统侦察模块。在窃取数据或外传文件之前,该恶意软件会收集有关受害者机器的详细信息,包括主机名、用户名、操作系统版本以及本地/外部 IP 地址。这些剖析数据很可能被发送至 C2 服务器,用于对受害者进行分类并定制下一阶段的攻击。

关键观察:

系统剖析字符串:

"hostname" – 获取受害者的计算机名。 "username" – 获取已登录的用户账户。 "os_ver" – 捕获确切的 Windows 版本和内部版本号。 "local_ip" – 识别受害者的内部网络 IP 地址。 "external_ip" – 解析公网 IP 地址(很可能通过外部 API)。 "stream_id" – 为屏幕流传输会话生成唯一标识符。

反编译逻辑:

FUN_1400084d2(uStack_570, "hostname", 8, ...) – 将主机名存入结构体。

FUN_1400084d2(uStack_570, "username", 8, ...) – 存储用户名。

FUN_1400084d2(uStack_570, "os_ver", 6, ...) – 存储操作系统版本。

FUN_1400084d2(uStack_570, "local_ip", 8, ...) / "external_ip" – 存储网络标识符。

内存结构:HKEY__ *local_588 / CONCAT71(local_588, 0x7f, 1) – 与注册表相关的指针处理(很可能是在读取系统标识符)。 FUN_140010ce1(..., local_3e8, ...) – 剖析数据的最终组装。

为何重要:

受害者分类:收集 os_ver 和 external_ip 使攻击者能够筛选受害者(例如,针对特定国家、企业网络或易受特定漏洞利用的 Windows 版本)。 地理位置与追踪:external_ip 字段使攻击者能够对受害者进行地理定位并确定其 ISP。 会话管理:stream_id 将剖析数据与活动的屏幕流传输会话关联起来,确保攻击者知道他们正在查看哪名受害者。

视觉参考:

rusty_ghidra_system

5. Rusty Stealer – 服务操纵与持久化机制

Rusty Stealer 的第五个反编译视图揭示了其通过与 Windows 服务控制管理器(ADVAPI32.dll)直接交互实现的持久化机制。通过利用 OpenServiceW 和 ControlService 等 API,该恶意软件试图修改、停止或重新配置系统服务,以确保其在重启后仍能存活并逃避清除。

关键观察:

服务控制 API:

ADVAPI32.DLL:OpenServiceW – 打开一个现有服务以修改其配置。

ADVAPI32.DLL:ControlService – 向服务发送控制代码(例如,使用 SERVICE_CONTROL_STOP 禁用 AV/EDR 服务,或使用 SERVICE_CONTROL_CONTINUE 启动其自身的服务)。

ADVAPI32.DLL:CloseServiceHandle – 清理句柄以规避检测。

反编译逻辑:

LPSERVICE_STATUS 结构体的使用 – 表明恶意软件在尝试修改服务之前会先查询该服务的当前状态。

FUN_14011c1ab – 包装函数,负责准备服务句柄并调用服务控制 API。

if (cVar3 != '\0') – 检查服务是否成功打开;如果未成功,则可能回退到其他持久化方法。

服务枚举:循环 while ((int)(longlong)...) 遍历服务,很可能是在枚举服务以寻找目标(例如,禁用 Windows Defender 或创建恶意服务)。

为何重要:

强制持久化:通过创建或修改服务,Rusty Stealer 确保其在每次启动时以 SYSTEM 权限自动运行,使其极难被手动移除。 防御规避(终止服务):带有停止代码的 ControlService 常被用于在窃密程序执行其载荷之前禁用 Windows Defender、EDR 代理和备份服务。 权限提升:与服务交互需要提升的权限。这些 API 的存在表明该恶意软件要么以管理员身份运行,要么利用漏洞获取 SYSTEM 访问权限。 隐蔽执行:服务在后台(会话 0)运行,这意味着用户永远不会看到窗口,也不会在任务管理器中看到可疑进程。

可视化参考:

rusty_ghidra_service

结论:

通过 Ghidra 对 Rusty Stealer 的静态分析表明,该恶意软件并非简单的数据窃取程序,而是一个用 Rust 编译的、完全武器化的远程访问木马(RAT)。通过分析反编译逻辑和汇编代码,我们梳理出了完整的攻击生命周期:从系统侦察和凭据窃取,到主动防御规避和持久化远程控制。

关键观察:

高级键盘记录:专用例程主动拦截用户输入(key_press、Enter、Tab),捕获凭据和聊天内容。 实时屏幕流传输:screen_stream 和 FPS 配置的存在表明其具备实时流式传输受害者桌面的能力,可作为监控工具使用。 激进的防御规避:该恶意软件包含显式函数(kill_defender)以终止 Windows Defender,同时使用服务操作 API(OpenServiceW、ControlService)禁用安全服务并建立 SYSTEM 级持久化。 会话劫持:hijack_stream 例程表明其具备拦截活动网络或应用程序流的能力,可能窃取实时会话。 系统画像:它广泛收集受害者遥测数据(hostname、username、os_ver、local_ip、external_ip),以定制攻击并对目标进行地理定位。

总体评估:

Rusty Stealer 是一个功能强大的、基于 Rust 的 RAT,它将信息窃取程序的数据窃取能力与传统 RAT 的实时监控和持久化能力相结合。其对 Rust 的使用使其具有高性能,并且更难用传统工具进行分析。通过主动终止安全服务并建立深度持久化,它对个人用户和企业环境都构成了严重威胁。

所分析的 NWH Stealer 样本可在 MalwareBazaar 上获取,供希望自行分析的人员使用:

MalwareBazaar 上的 Rusty Stealer 样本

使用的工具: "Ghidra"

下载工具