Windows 权限提升指南
字数 517 2025-08-29 08:32:09

Windows权限提升指南

介绍

特权提升的核心在于正确的系统枚举。本指南提供了Windows系统权限提升的全面枚举方法,涵盖CMD和PowerShell两种方式。通过系统化的检查点,帮助渗透测试人员快速识别潜在的提权路径。

操作系统信息枚举

系统基本信息

systeminfo
wmic qfe
Get-ComputerInfo | select Windows*
Get-HotFix | sort InstalledOn -Descending | ft HotFixID,InstalledOn,InstalledBy

环境变量

set
Get-ChildItem Env: | ft Key,Value

网络驱动器

net use
wmic logicaldisk get caption,description,providername
Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ft Name,Root

用户和权限枚举

当前用户

whoami
echo %USERNAME%
$env:UserName

用户权限

whoami /priv

系统用户

net users
dir /b /ad "C:\Users\"
dir /b /ad "C:\Documents and Settings\"  # XP及以下
Get-LocalUser | ft Name,Enabled,LastLogon
Get-ChildItem C:\Users -Force | select Name

登录会话

qwinsta

用户组

net localgroup
Get-LocalGroup | ft Name

管理员组成员

net localgroup Administrators
Get-LocalGroupMember Administrators | ft Name, PrincipalSource

自动登录凭证

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul | findstr "DefaultUserName DefaultDomainName DefaultPassword"
Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon' | select "Default*"

存储的凭证

cmdkey /list

SAM和SYSTEM文件位置

%SYSTEMROOT%\repair\SAM
%SYSTEMROOT%\System32\config\RegBack\SAM
%SYSTEMROOT%\System32\config\RegBack\SAM
%SYSTEMROOT%\repair\system
%SYSTEMROOT%\System32\config\SYSTEM
%SYSTEMROOT%\System32\config\SYSTEM

程序、进程和服务枚举

已安装软件

dir /a "C:\Program Files"
dir /a "C:\Program Files (x86)"
reg query HKEY_LOCAL_MACHINE\SOFTWARE
Get-ChildItem 'C:\Program Files', 'C:\Program Files (x86)' | ft Parent,Name,LastWriteTime
Get-ChildItem -path Registry::HKEY_LOCAL_MACHINE\SOFTWARE | ft Name

程序文件夹权限检查

icacls "C:\Program Files\*" 2>nul | findstr "(F)" | findstr "Everyone"
icacls "C:\Program Files (x86)\*" 2>nul | findstr "(F)" | findstr "Everyone"
icacls "C:\Program Files\*" 2>nul | findstr "(F)" | findstr "BUILTIN\Users"
icacls "C:\Program Files (x86)\*" 2>nul | findstr "(F)" | findstr "BUILTIN\Users"
Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Acl $_ -EA SilentlyContinue | Where {($_.Access|select -ExpandProperty IdentityReference) -match 'Everyone'} } catch {}}
Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Acl $_ -EA SilentlyContinue | Where {($_.Access|select -ExpandProperty IdentityReference) -match 'BUILTIN\Users'} } catch {}}

可写文件夹检查

accesschk.exe -qwsu "Everyone" *
accesschk.exe -qwsu "Authenticated Users" *
accesschk.exe -qwsu "Users" *

进程和服务

tasklist /svc
tasklist /v
net start
sc query
Get-WmiObject -Query "Select * from Win32_Process" | where {$_.Name -notlike "svchost*"} | Select Name, Handle, @{Label="Owner";Expression={$_.GetOwner().User}} | ft -AutoSize

服务权限检查

accesschk.exe -uwcqv "Everyone" *
accesschk.exe -uwcqv "Authenticated Users" *
accesschk.exe -uwcqv "Users" *

服务路径检查

wmic service get name,displayname,pathname,startmode 2>nul |findstr /i "Auto" 2>nul |findstr /i /v "C:\Windows\\" 2>nul |findstr /i /v """
gwmi -class Win32_Service -Property Name, DisplayName, PathName, StartMode | Where {$_.StartMode -eq "Auto" -and $_.PathName -notlike "C:\Windows*" -and $_.PathName -notlike '"*'} | select PathName,DisplayName,Name

计划任务

schtasks /query /fo LIST 2>nul | findstr TaskName
dir C:\windows\tasks
Get-ScheduledTask | where {$_.TaskPath -notlike "\Microsoft*"} | ft TaskName,TaskPath,State

启动项

wmic startup get caption,command
reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run
reg query HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
dir "C:\Documents and Settings\All Users\Start Menu\Programs\Startup"
dir "C:\Documents and Settings\%username%\Start Menu\Programs\Startup"
Get-CimInstance Win32_StartupCommand | select Name, command, Location, User | fl
Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run'
Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce'
Get-ItemProperty -Path 'Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run'
Get-ItemProperty -Path 'Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce'
Get-ChildItem "C:\Users\All Users\Start Menu\Programs\Startup"
Get-ChildItem "C:\Users\$env:USERNAME\Start Menu\Programs\Startup"

AlwaysInstallElevated检查

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

网络配置枚举

网络信息

ipconfig /all
route print
arp -a
netstat -ano
Get-NetIPConfiguration | ft InterfaceAlias,InterfaceDescription,IPv4Address
Get-DnsClientServerAddress -AddressFamily IPv4 | ft
Get-NetRoute -AddressFamily IPv4 | ft DestinationPrefix,NextHop,RouteMetric,ifIndex
Get-NetNeighbor -AddressFamily IPv4 | ft ifIndex,IPAddress,LinkLayerAddress,State

Hosts文件

C:\WINDOWS\System32\drivers\etc\hosts

防火墙配置

netsh firewall show state
netsh firewall show config
netsh advfirewall firewall show rule name=all
netsh advfirewall export "firewall.txt"

SNMP配置

reg query HKLM\SYSTEM\CurrentControlSet\Services\SNMP /s
Get-ChildItem -path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP -Recurse

敏感信息搜索

注册表中的密码

reg query HKCU /f password /t REG_SZ /s
reg query HKLM /f password /t REG_SZ /s

IIS配置

dir /a C:\inetpub\
dir /s web.config
C:\Windows\System32\inetsrv\config\applicationHost.config
Get-Childitem -Path C:\inetpub\ -Include web.config -File -Recurse -ErrorAction SilentlyContinue

IIS日志

C:\inetpub\logs\LogFiles\W3SVC1\u_ex[YYMMDD].log
C:\inetpub\logs\LogFiles\W3SVC2\u_ex[YYMMDD].log
C:\inetpub\logs\LogFiles\FTPSVC1\u_ex[YYMMDD].log
C:\inetpub\logs\LogFiles\FTPSVC2\u_ex[YYMMDD].log

Web服务器配置

dir /s php.ini httpd.conf httpd-xampp.conf my.ini my.cnf
Get-Childitem -Path C:\ -Include php.ini,httpd.conf,httpd-xampp.conf,my.ini,my.cnf -File -Recurse -ErrorAction SilentlyContinue

日志文件

dir /s access.log error.log
Get-Childitem -Path C:\ -Include access.log,error.log -File -Recurse -ErrorAction SilentlyContinue

敏感文件搜索

dir /s *pass* == *vnc* == *.config* 2>nul
findstr /si password *.xml *.ini *.txt *.config 2>nul
Get-Childitem -Path C:\Users\ -Include *password*,*vnc*,*.config -File -Recurse -ErrorAction SilentlyContinue
Get-ChildItem C:\* -include *.xml,*.ini,*.txt,*.config -Recurse -ErrorAction SilentlyContinue | Select-String -Pattern "password"

总结

本指南提供了Windows系统权限提升的全面枚举方法,通过系统化的检查点,渗透测试人员可以快速识别潜在的提权路径。关键点包括:

  1. 系统信息和补丁状态检查
  2. 用户和权限枚举
  3. 程序和服务配置检查
  4. 网络配置分析
  5. 敏感信息搜索

通过全面执行这些检查,可以大大提高发现权限提升漏洞的机会。

Windows权限提升指南 介绍 特权提升的核心在于正确的系统枚举。本指南提供了Windows系统权限提升的全面枚举方法,涵盖CMD和PowerShell两种方式。通过系统化的检查点,帮助渗透测试人员快速识别潜在的提权路径。 操作系统信息枚举 系统基本信息 环境变量 网络驱动器 用户和权限枚举 当前用户 用户权限 系统用户 登录会话 用户组 管理员组成员 自动登录凭证 存储的凭证 SAM和SYSTEM文件位置 程序、进程和服务枚举 已安装软件 程序文件夹权限检查 可写文件夹检查 进程和服务 服务权限检查 服务路径检查 计划任务 启动项 AlwaysInstallElevated检查 网络配置枚举 网络信息 Hosts文件 防火墙配置 SNMP配置 敏感信息搜索 注册表中的密码 IIS配置 IIS日志 Web服务器配置 日志文件 敏感文件搜索 总结 本指南提供了Windows系统权限提升的全面枚举方法,通过系统化的检查点,渗透测试人员可以快速识别潜在的提权路径。关键点包括: 系统信息和补丁状态检查 用户和权限枚举 程序和服务配置检查 网络配置分析 敏感信息搜索 通过全面执行这些检查,可以大大提高发现权限提升漏洞的机会。