Windows渗透测试:权限提升前的关键信息收集指南
1. Windows权限提升前的信息收集基础
在渗透测试和红队评估中,Windows权限提升往往是最关键的突破点之一。但很多新手会犯一个致命错误——拿到初始shell就急着提权。我见过太多人直接运行各种提权脚本,结果触发AV被踢出系统。正确的做法应该是先全面收集目标主机信息,就像外科医生动手术前要先看CT片一样。
1.1 为什么信息收集如此重要
去年我在做某次企业内网评估时,通过钓鱼拿到了一台Win10主机的普通用户权限。当时我犯懒直接运行了PowerUp.ps1,结果触发了EDR。后来复盘发现,其实那台机器安装了未打补丁的旧版打印机服务,完全可以通过CVE-2021-1675优雅提权。这个教训让我明白:提权不是碰运气,而是基于情报的精准打击。
完整的主机信息收集能帮你:
- 识别易受攻击的服务/驱动版本
- 发现错误配置的权限设置
- 定位敏感凭证和配置文件
- 避开杀软/EDR的监控点
1.2 OSCP考试中的特殊要求
在OSCP考试环境中,信息收集阶段有几个特别需要注意的点:
- 禁止使用自动化扫描工具(如Metasploit的post模块)
- 需要详细记录每条命令的输出
- 必须明确标注哪些信息可能用于提权
- 对敏感文件的操作需要特别谨慎(别把目标机搞崩了)
重要提示:考试时建议专门建立信息收集笔记,按"系统配置-用户权限-网络服务-安全防护"分类记录,这对后续提权路径选择至关重要。
2. 基础信息收集实战指南
2.1 系统基础信息采集
拿到cmd或powershell后,我通常会按这个顺序收集信息:
# 系统版本和架构 systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Type" # 更详细的版本信息(适用于Win10/WinServer2016+) [System.Environment]::OSVersion.Version避坑经验:在Win7及以下系统,systeminfo可能会卡住。这时可以用:
wmic os get caption,version,osarchitecture /value补丁信息是提权的黄金数据:
# 快速查看已安装补丁 wmic qfe get Caption,Description,HotFixID,InstalledOn # 导出为CSV便于分析 wmic qfe list full /format:csv > patches.csv2.2 用户和权限枚举
# 当前用户权限 whoami /all # 本地用户组 net localgroup # 特别注意特权组 net localgroup administrators高阶技巧:检查隐藏的本地用户:
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList"2.3 网络配置和服务发现
# 活动网络连接 netstat -ano # ARP缓存 arp -a # 防火墙规则 netsh advfirewall firewall show rule name=all服务枚举的几种姿势:
# 基础服务列表 net start # 带权限的服务(关键!) sc query state=all # 更详细的配置 wmic service get name,displayname,pathname,startmode,state3. 深度信息收集技术
3.1 文件系统敏感位置检查
这些路径经常藏有惊喜:
# 查找配置文件 dir /s /b C:\*.config # 检查共享目录 net share # 回收站内容(经常被忽略) dir C:\$Recycle.Bin /A实用脚本:快速检查可写目录:
Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.Attributes -match 'Directory' -and (Test-Path -Path "$($_.FullName)\test.txt" -ErrorAction SilentlyContinue) } | Select-Object FullName3.2 注册表关键项检查
注册表是Windows的宝藏地图:
# 自动登录凭证 reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" # 最近使用的文件 reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs # 安装的软件列表 reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall3.3 计划任务和启动项
# 计划任务 schtasks /query /fo LIST /v # 启动程序 wmic startup get caption,command # 更直观的查看方式 msconfig.exe4. 安全防护检测与规避
4.1 杀毒软件识别
# 通过进程识别 tasklist /svc | findstr /i "avira|avg|avast|defender|sophos|symantec|mcafee" # 通过服务识别 net start | findstr /i "antivirus|firewall|endpoint"实战技巧:如果发现Defender,先检查实时防护状态:
Get-MpComputerStatus | select RealTimeProtectionEnabled4.2 日志与监控规避
在敏感操作前,建议先清理日志:
# 查看日志配置 wevtutil enum-logs # 清除指定日志 wevtutil cl Security注意:在考试环境中,清除日志可能违反规则,建议先查看考试要求。
5. 信息整理与分析框架
收集完数据后,我习惯用这个框架分析:
系统漏洞维度
- 未打补丁的Windows版本
- 存在漏洞的第三方软件
配置错误维度
- 弱服务权限
- 可写路径
- 存储的凭证
权限继承维度
- 组策略设置
- 令牌权限
- 计划任务上下文
案例分享:有次在某金融机构内网发现:
- 服务器安装了未更新的Oracle数据库
- 同时存在可写的服务路径
- 通过上传plsql触发DLL劫持成功提权
这种多维度交叉分析往往能发现意想不到的提权路径。建议把收集的信息整理成类似下表:
| 信息类型 | 具体内容 | 潜在利用方式 | 风险等级 |
|---|---|---|---|
| 系统版本 | Windows Server 2012 R2 | 检查MS14-068 | 高 |
| 安装软件 | Java 8u121 | 可尝试反序列化 | 中 |
| 服务权限 | "SomeService"以SYSTEM运行且可写路径 | DLL劫持 | 极高 |
最后提醒:信息收集不是一次性工作。在尝试提权失败后,要回到信息收集阶段寻找新线索。我通常会在桌面上保留一个不断更新的checklist.txt,记录已尝试和待尝试的提权路径。