☰
Viper Windows 注册表 Run 键持久化:原理、配置与实战指南
2026/10/15 15:56:53 网站建设 项目流程
  • 文档
  • 教程
  • 网络安全

【免费下载链接】Viper

Adversary simulation and Red teaming platform with AI

项目地址:https://gitcode.com/gh_mirrors/vip/Viper
点击查看免费下载

导读

本文围绕 Viper 红队平台中的 Windows 注册表 Run 键持久化模块展开,介绍其将木马文件路径写入HKLM\...\Run与HKCU\...\Run两个启动键以实现系统重启后自动运行的完整原理、注意事项与操作流程。读完本文,你将掌握在 Viper 中从生成监听、获取 Session、生成免杀载荷到执行注册表 Run 键持久化的全链路操作方法,并能与 Winlogon Helper DLL、计划任务等同一技术家族的持久化模块进行横向对比与取舍。

一、模块概述:利用 Windows 启动键实现持久化

Persistence_RegistryRunKeys_Windows是 Viper 提供的 Windows 持久化模块之一,其核心做法非常直接:把木马文件路径写入注册表 Run 键值,使目标主机在启动或用户登录时自动运行该载荷,从而在系统重启后重新夺回控制权(模块文档)。

模块写入的注册表位置有两处:

注册表键完整路径生效范围写入前提
HKLM Run 键HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run所有用户登录时执行需要管理员权限
HKCU Run 键HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run仅当前用户登录时执行相对宽松

这两处是 Windows 操作系统原生支持的"启动文件夹"机制:系统登录阶段会枚举上述键下的所有字符串值,逐一作为程序路径启动对应进程。因此只要把载荷的绝对路径写进去,目标机每次启动/登录都会自动拉起木马进程。从 MITRE ATT&CK 的视角看,该手法对应T1547.001(Registry Run Keys / Startup Folder),属于标准的"启动项持久化"技术,Viper 的功能模块体系正是按 ATT&CK 各阶段组织而成的(见 README_ZH.md)。

从文档对两个键的并列列出可以推断:模块会优先尝试 HKLM 键(面向全用户、效果更稳定),无法取得管理员权限时则可退而使用 HKCU 键(模块文档)。

二、注意事项:了解"不免杀"的边界

模块文档明确给出唯一一条注意事项——不免杀(模块文档)。

这句话的含义需要结合 Viper 的整体工作流来理解:

  1. 注册表写键动作本身很常见:安全软件(EDR/杀软)普遍会监控 Run 键这类"自动运行启动项"的写入行为,任何进程向CurrentVersion\Run写入新值都可能触发告警或拦截。
  2. 载荷落盘会暴露:要写入路径,载荷文件必须真实存在于目标磁盘上,这本身就比纯内存执行更容易被查杀。
  3. 免杀载荷需要另行生成:实际操作中,Viper 推荐先"使用监听配置生成免杀载荷",再把免杀后的载荷上传目标(SharpHide 变体文档),以降低载荷本身被杀的风险。

因此在实战中,该模块更适合与免杀载荷生成流程配合使用,而不是单独依赖它完成全部规避工作。

三、操作方法:从监听生成到模块执行

原文档将操作步骤指引至 Winlogon Helper DLL 持久化,两者在 Viper 中的操作骨架完全一致。结合该文档与 SharpHide 变体文档,完整操作流程如下:

第 1 步:生成监听

在 Viper 中先创建/配置一个监听器(Listener),后续生成载荷与恢复 Session 都以它为锚点。监听参数(如回连地址、端口、协议)会在模块运行成功后用于自动生成"缓存监听",便于服务器重启后恢复。

第 2 步:获取 Session

获取一枚目标主机的 Session。若计划写入 HKLM Run 键,Session 必须具备管理员权限——这是决定能否写入全用户启动键的关键前提。

第 3 步:使用监听配置生成免杀载荷

在"载荷生成"环节,选择刚配置的监听,生成免杀后的可执行文件。这一步针对上文"不免杀"的注意事项做前置补偿,降低载荷落盘后被查杀的概率。

第 4 步:将生成的载荷上传到目标

把免杀载荷通过 Viper 的文件管理/上传能力传送到目标主机的指定目录,例如C:\ProgramData\XXX这类常见目录,并记下其在目标机上的绝对路径。

第 5 步:填写模块参数并运行

进入Persistence_RegistryRunKeys_Windows(或其 C# 变体)模块的参数界面,可执行文件目录参数填写刚上传的免杀载荷路径(SharpHide 变体文档):

运行模块后,Viper 会向目标注册表 Run 键写入该路径:

第 6 步:验证持久化效果

依据 Winlogon Helper DLL 持久化 的操作经验,运行成功后应关注两点:

  • 缓存监听:模块成功后 Viper 会根据填写的监听参数自动生成一个虚拟监听,方便服务器重启后恢复连接;
  • 重启验证:目标机重启后,任意用户登录都会执行启动键中的程序,并重新生成 Session,从而完成持久化闭环。

四、C# 变体:Persistence_RegistryRunKeys_SharpHide

除原生模块外,仓库还提供了同一技术的 C# 变体模块 Persistence_RegistryRunKeys_SharpHide。二者的目标是相同的——把载荷目录写入注册表 Run 键值——区别在于实现路径:

  • 原生模块:直接通过 Windows API / 命令方式写 Run 键;
  • SharpHide 变体:通过内存执行 SharpHide 的方式将载荷目录写入注册表 Run 键(SharpHide 变体文档)。

SharpHide 本身是一个开源的注册表项持久化小工具,其特点是"不在磁盘落地"即可完成写键操作——Viper 将其以内存加载(Assembly 方式)运行,避免在目标机上留下独立的工具文件,是对"不免杀"注意事项的一种缓解思路。操作流程与上文一致:生成监听 → 获取 Session → 生成免杀载荷并上传 → 填写可执行文件目录参数 → 运行模块(SharpHide 变体文档)。

五、同一技术家族的横向对比:何时选 Run 键

Viper 的持久化模块族中,Run 键并非唯一选择,仓库中与之同级的模块包括:

模块持久化位置/方式权限要求文档备注
RegistryRunKeysHKLM\...\Run/HKCU\...\Run写载荷路径HKLM 需管理员不免杀
Winlogon Helper DLLHKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon需要管理员权限不免杀
计划任务(ScheduledTask)通过 Windows API 写入计划任务—大部分情况免杀,推荐的持久化方法(Persistence_ScheduledTask_Windows)
自守护(Guard)上传带守护功能的加载器,Session 崩溃 10 秒后自动重启—用于防止初始权限丢失(Persistence_Guard_Windows)
账户操纵通过 Windows API 增加本地/域账户取决于目标用户组权限属于账号层面的持久化(Persistence_AccountManipulation_Windows)

从文档口径看,若追求免杀稳定性,计划任务持久化 是官方标注的推荐方案;而 Run 键的优势在于实现最简单、兼容性最好(任何 Windows 都原生支持),适合在允许一定暴露风险、或已具备免杀载荷的场景下快速建立重启持久化。

六、从防御视角理解与排查该技术

理解对手的持久化手法,同样也是在帮助防守方建立检测与排查能力。针对注册表 Run 键持久化,防御侧的核心排查思路包括:

  1. 检查启动项:重点审查HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run与HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run下的可疑字符串值,注意指向非常规目录(如C:\ProgramData\下随机命名目录)的路径;
  2. 监控写键行为:EDR/主防应监控对CurrentVersion\Run键的写入事件,尤其是由非安装器进程发起的写入;
  3. 清理方式:定位到可疑值后,删除对应注册表值并删除指向的载荷文件即可解除持久化,随后重启确认无自恢复行为。

需要再次强调:该模块"不免杀"的定位决定了它主要用于验证持久化流程本身,任何攻防演练都应严格限定在授权范围内。

七、深入阅读

  • 模块主文档:Persistence_RegistryRunKeys_Windows.md
  • C# 变体与完整带图操作:Persistence_RegistryRunKeys_SharpHide.md
  • 被引用为操作模板的同族模块:Persistence_WinlogonHelperDLL_Windows.md
  • 官方推荐的持久化方案:Persistence_ScheduledTask_Windows.md
  • 平台整体能力介绍:README_ZH.md
  • 文档
  • 教程
  • 网络安全

【免费下载链接】Viper

Adversary simulation and Red teaming platform with AI

项目地址:https://gitcode.com/gh_mirrors/vip/Viper
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询