一、前置基础:注册表架构理解
想要吃透服务路径劫持与映像劫持两类经典Windows劫持手法,必先掌握系统注册表核心架构,所有劫持、提权、后门持久化攻击,本质都是通过篡改注册表指定路径下的键值规则实现。
Windows注册表是系统层级的核心配置数据库,统一存放硬件驱动、系统服务、软件程序、用户权限、运行规则等全部底层配置,分为五大根项,日常渗透与系统运维最常用仅有三类。
-
HKEY_LOCAL_MACHINE(HKLM 本机全局配置) 全系统所有用户共用配置,权限等级最高,修改后对整台设备生效,两类劫持攻击全部依托此根项完成,普通用户仅拥有读取权限,部分子项开放低权限写入权限,也是漏洞利用的核心突破口。
-
HKEY_CURRENT_USER(HKCU 当前用户配置) 仅对当前登录用户生效,存放桌面布局、软件偏好、个人登录记录等个性化设置,权限较低,无法实现系统级提权。
-
HKEY_CLASSES_ROOT 主要负责文件关联、程序打开方式绑定,多用于软件关联劫持,渗透中使用频率较低。
重点分支路径
1. 系统服务专属注册表分支
路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
这是Windows所有系统服务、第三方服务的专属配置仓库,系统开机启动、手动运行服务时,都会优先读取该目录下的配置参数。 每一个独立服务都会在此目录生成同名子项,子项内存储服务运行全套规则,其中两个键值为渗透核心:
- ImagePath:服务启动执行程序的完整路径,对应命令
sc qc查询结果中的二进制路径; - ObjectName:服务运行依托的权限账户,默认主流服务均以LocalSystem系统最高权限运行。 服务路径劫持提权,就是篡改该分支下的ImagePath启动路径实现权限提升。
2. 程序调试规则专属分支
路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
该分支为Windows原生程序调试功能预留目录,系统原生用途是为指定程序绑定调试工具,无任何服务相关配置,仅针对桌面exe可执行程序生效。 攻击者在此目录新建程序同名子项,写入Debugger调试器键值,即可篡改程序启动逻辑,实现打开正常程序、运行恶意程序的效果,也就是映像劫持IFEO,该目录默认开放普通用户写入权限,利用门槛极低。
简单总结:注册表是Windows系统的规则手册,服务劫持改动系统服务规则,映像劫持改动软件启动规则,理清两大分支架构,就能彻底分清两种劫持手法的底层区别。
二、服务路径劫持提权
1. 核心原理
利用第三方服务/自建服务注册表权限配置不当,普通用户拥有修改服务配置权限,直接篡改服务配置里的ImagePath启动路径,将原本正常启动的程序,替换为恶意后门、反弹Shell程序。
重启服务后,恶意程序会继承服务本身SYSTEM最高权限运行,直接完成本地权限提升。
2. 操作注册表位置
HKLM\SYSTEM\CurrentControlSet\Services\目标服务名
仅修改此路径下配置,和程序本身无关。
3. 利用必备条件
- 当前低权限用户,对目标服务注册表项拥有写入修改权限
- 目标服务运行账户为
LocalSystem(SYSTEM权限) - 可手动重启服务,或等待系统重启触发执行
4. 实战利用流程
- 权限探测:使用accesschk扫描可写入权限服务
accesschk.exe /accepteula -k "HKLM\SYSTEM\CurrentControlSet\Services" -w -s
- 上传恶意程序(反弹shell、cmd后门)至目标机器
- 篡改服务ImagePath启动路径
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\服务名" -Name ImagePath -Value "恶意程序完整路径"
- 重启服务触发执行
sc stop 服务名 && sc start 服务名
- 成功获取SYSTEM最高权限,完成提权
5. 特点总结
- 核心用途:本地低权限→SYSTEM高权限提权
- 权限上限高,渗透提权首选手法
- 依靠服务重启触发,隐蔽性中等
- 只会影响指定Windows服务,不劫持普通桌面程序
三、映像劫持 IFEO(Image File Execution Options)
1. 核心原理
这是Windows系统自带的程序调试机制,原本作用是给指定程序绑定调试器。 攻击者滥用该机制,在系统注册表中添加规则:只要系统启动指定exe程序,强制优先启动攻击者设定的恶意程序。 简单直白:打开A程序,实际运行B恶意程序。
2. 操作注册表位置
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\目标程序名.exe
和系统服务毫无关系,专门针对桌面应用、系统程序。
3. 核心修改键值
新建项后创建字符串值Debugger,数值填写恶意程序路径。
4. 利用必备条件
- 当前用户拥有IFEO注册表目录写入权限(Windows默认普通用户即可写入)
- 知晓目标常用启动程序(记事本notepad.exe、浏览器、任务管理器等)
- 等待用户主动启动被劫持程序,自动触发后门
5. 经典实战利用
劫持记事本,打开记事本自动弹出CMD:
- 定位注册表IFEO路径
- 新建项命名
notepad.exe - 新建字符串值
Debugger,数值填入cmd.exe - 用户双击打开记事本,直接弹出命令行
6. 特点总结
- 核心用途:后门持久化、程序劫持、绕过安全软件
- 无法直接提权,触发后权限=当前登录用户权限
- 触发简单,用户日常打开软件即可运行后门
- 不依赖服务、无需重启系统,驻留实用性极强
四、两大劫持手法对比
| 对比项 | 服务路径劫持提权 | 映像劫持IFEO |
|---|---|---|
| 操作注册表路径 | Services服务配置目录 | IFEO程序调试目录 |
| 修改核心字段 | ImagePath启动路径 | Debugger调试器路径 |
| 核心作用 | 本地权限提升拿SYSTEM权限 | 后门持久化、程序劫持 |
| 权限效果 | 直接获取系统最高权限 | 仅继承当前用户权限,不能提权 |
| 触发方式 | 重启服务/重启电脑 | 用户手动启动被劫持EXE程序 |
| 权限门槛 | 需要服务注册表写入权限 | 普通用户默认即可写入 |
| 渗透定位 | 内网提权首选 | 持久化留后门首选 |
| 影响对象 | Windows系统/第三方服务 | 任意桌面exe应用程序 |
五、实战使用场景区分
- 拿到服务器普通用户权限,想提升至高权限管理员 → 优先使用服务路径劫持提权
- 已经拿到权限,想长期留后门、悄悄驻留,不被轻易发现 → 优先使用映像劫持IFEO
- 攻防排查思路
- 查提权痕迹:批量检测Services下异常ImagePath路径
- 查后门痕迹:直接查看IFEO目录下异常Debugger劫持项
六、总结
- 服务路径劫持:改系统服务的启动命令,借服务最高权限上位,主打提权;
- 映像劫持:改软件打开规则,偷梁换柱运行后门,主打留后门持久化; 二者底层都是篡改Windows注册表实现,但作用、权限、用途完全不同,也是Windows渗透体系里最经典的两大劫持技术。
原文 https://blog.csdn.net/2301_79518550/article/details/161160238