文章总结: 本文档详细介绍了Windows平台权限维持技术,涵盖从标准用户到SYSTEM权限的多种持久化方法,包括注册表Run键、ActiveSetup、IFEO调试器劫持、Winlogon机制、服务创建、计划任务、WMI事件订阅、COM劫持和DLL旁加载等,并提供了C/Rust代码实现、清理命令和检测要点,适用于红队评估与防御研究。 综合评分: 89 文章分类: 红队,内网渗透,权限维持,渗透测试,恶意软件
权限维持skills分享 — win-persistence(windows 持久化隐藏)
原创
信益安研究院 信益安研究院
信益安信息安全研究院
2026年4月7日 17:56 湖北
目录结构
skills介绍:
示例:
生成三种不同技术的权限维持手法(都包含技术总结和使用说明):
#
#
第一种:
#
第二种:
#
第三种:
#
核心功能
定位:Windows 平台 C / Rust 进攻性权限维持完整知识库,覆盖从标准用户到 SYSTEM 的全权限等级,适用于授权红队评估与防御检测研究。
工作流程:
识别需求类型(权限 / 触发方式 / 隐蔽性) → 选择技术(参见技术索引) → 读取对应 references/ 文件 → 生成代码 → 提供清理命令
主要技术模块:
| 模块 | 技术 | MITRE ATT&CK | 权限 | 语言 |
| — | — | — | — | — |
| Registry Run / RunOnce | 将可执行路径写入 Run / RunOnce 键,用户登录时触发 | T1547.001 | HKCU(标准用户)/ HKLM(管理员) | C |
| Active Setup | 注册 HKLM StubPath 组件,每用户首次登录执行;可通过 Version 字段强制重触发 | T1547.014 | 管理员 | C |
| IFEO Debugger | 对目标 EXE 设置 Debugger 值,进程启动时先执行 Payload;可劫持无障碍工具实现预登录后门 | T1546.012 | 管理员 | C |
| Winlogon Shell / Userinit | 向 Shell / Userinit 值追加 Payload 路径,每次登录触发;必须追加而非覆盖 | T1547.004 | 管理员 | C |
| AppInit_DLLs | 将 DLL 注入所有加载 user32.dll 的 GUI 进程;现代 Windows 受 Secure Boot 限制,仅适用于遗留系统 | T1546.010 | 管理员 | C |
| Windows Service | 创建自启动或设备触发服务;支持普通自启、延迟自启、USB / 蓝牙 / 键盘等设备到达触发 | T1543.003 | 管理员 | C |
| Scheduled Task | 通过 Task Scheduler COM API 注册任务;支持 STARTUP / LOGON / LOCK / UNLOCK / DAILY 五种触发器;可隐藏于 Task Scheduler UI | T1053.005 | 管理员(DAILY 可标准用户) | Rust |
| WMI Event Subscription | 注册 __EventFilter + CommandLineEventConsumer + __FilterToConsumerBinding 三元组;支持启动 / 登录 / 进程 / 注册表 / 计数等触发;持久化存入 WMI Repository | T1546.003 | 管理员 | Rust |
| COM Hijacking | HKCU 优先于 HKLM 的 COM 查找顺序;无需管理员;通过 ForwardedFunctions.py 生成转发存根避免进程崩溃 | T1546.015 | 标准用户 | Rust + PS1 |
| DLL Sideloading / PATH 劫持 | 利用 DLL 搜索顺序或 PATH 目录顺序放置代理 DLL / 同名可执行文件;含 DWrite.dll 代理示例、FakePip 转发示例、ParseProcmonOutputForDllSideloading.py 自动化分析脚本 | T1574.001 / T1574.007 | 标准用户 | C + Python |
权限等级决策树:
需要什么权限?├── 标准用户(无 admin)│ ├── 隐蔽性优先 → COM 劫持(HKCU)│ ├── 文件系统可写 → DLL 旁加载 / PATH 劫持│ └── 定时触发 → 计划任务 DAILY(非管理员账户)└── 管理员 ├── 重启存活,无用户交互 → 服务(自启 / 延迟 / 设备触发) ├── 每次登录触发 → Run 键(HKLM)/ Active Setup / Winlogon ├── 目标进程启动触发 → IFEO / WMI process 订阅 ├── 高隐蔽性,难检测 → WMI 事件订阅 └── 遗留系统 → AppInit_DLLs(Secure Boot 关闭)
代码规范:
- C:MSVC 兼容,
windows.h/advapi32.lib/shlwapi.lib;统一使用goto _END_OF_FUNC清理模式;HKLM 写入前强制校验提权状态 - Rust:
windowscrate(版本 0.58)+ COM / WMI / TaskScheduler 接口;unsafe FFI 块 - 通用模式:
// 提权检测OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken);GetTokenInformation(hToken, TokenElevation, &Elevation, ...);// 注册表写入RegCreateKeyExW(hRoot, pszSubKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, &hKey, &dwDisposition);RegSetValueExW(hKey, pszValueName, 0, REG_SZ, (PBYTE)pszData, dwDataLength);RegCloseKey(hKey);
工具脚本:
| 脚本 | 功能 |
| — | — |
| ParseProcmonOutputForDllSideloading.py | 解析 Procmon CSV 输出,自动筛选”NAME NOT FOUND”的 DLL 加载记录,过滤出用户可写目录 |
| ForwardedFunctions.py | 解析目标 DLL 的导出表(pefile),生成 .def 转发文件或 Rust stub,防止宿主进程因缺失导出而崩溃 |
每个技术参考文件统一包含:
- Overview(MITRE ATT&CK / 权限 / 触发方式)
- 完整可编译代码实现
- 使用示例
- 清理命令(PowerShell / cmd)
- Detection Notes(Sysmon Event ID、Autoruns、EDR 检测点)
#
Skill 结构规律
win-persistence 遵循与其他 Windows 类 Skill 相同的目录约定:
<skill-name>/├── SKILL.md # YAML frontmatter + 技术索引 + 工作流 + 快速参考└── references/ # 每文件覆盖一个持久化子技术
SKILL.md YAML frontmatter 字段说明:
| 字段 | 值 / 说明 |
| — | — |
| name | win-persistence |
| description | 触发关键词列表,决定 Skill 何时被加载 |
| version | 1.0.0 |
| user-invocable | 未设置(默认 false,不可通过 /win-persistence 直接调用) |
触发关键词(摘自 description):persistence、权限维持、持久化、Run key、RunOnce、Active Setup、IFEO、Winlogon、Shell、Userinit、service persistence、scheduled task、WMI subscription、COM hijack、DLL sideload、AppInit_DLLs、Image File Execution Options、device trigger service
最后
🌟感谢您看到这里,您的支持与关注,是我们持续输出内容的最大动力
🌟欢迎加入我们的交流群
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:信益安信息安全研究院 信益安研究院 信益安研究院《权限维持skills分享 — win-persistence(windows 持久化隐藏)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论