ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Windows渗透测试:主机信息收集与权限提升实战

Windows渗透测试:主机信息收集与权限提升实战

1. Windows主机信息收集在渗透测试中的核心价值

在OSCP认证考试和实际渗透测试中,Windows主机信息收集是权限提升的关键前置步骤。不同于上篇讨论的基础命令使用,下篇我们将深入解析如何通过系统信息、网络配置、用户权限、服务状态等维度构建完整的攻击面画像。

我参与过数十次企业内网渗透测试,发现90%的权限提升机会都隐藏在看似普通的主机信息中。比如某个被遗忘的第三方服务端口、过时的补丁版本或是配置错误的计划任务,这些都需要通过系统化的信息收集才能发现。

2. 系统级信息深度采集技术

2.1 操作系统与环境信息

获取完整的系统信息不应仅限于systeminfo命令。我习惯使用组合命令:

wmic os get caption,version,osarchitecture,serialnumber /value wmic qfe list full /format:list

这组命令能获取更精确的系统版本和补丁信息。特别注意KB编号,与公开漏洞库对比可快速发现可利用漏洞。

实战经验:在域环境中,systeminfo /s computername /u domain\user /p password可远程获取信息,但要注意可能触发日志记录。

2.2 用户与权限拓扑分析

常规的whoami /all只能显示当前会话权限。我推荐以下进阶方法:

net user %username% /domain net localgroup administrators wmic useraccount list full

这些命令可以列出:

  • 当前用户在域中的详细属性
  • 本地管理员组成员
  • 所有用户账户的SID和安全描述符

在最近一次红队行动中,我们通过分析net group "Domain Admins" /domain的输出,发现了一个配置错误的服务账户,最终实现了域渗透。

3. 网络与服务枚举技术

3.1 网络配置与连接分析

ipconfig /all是基础,但真正的价值在于:

netsh interface ipv4 show interfaces netsh advfirewall firewall show rule name=all arp -a

这些命令可以获取:

  • 精确的网络接口指标
  • 防火墙规则明细
  • ARP缓存表

特别注意防火墙规则中的允许条目,它们往往指向内部关键系统。我曾通过一条放行445端口的规则找到了未打补丁的文件服务器。

3.2 服务与进程深度检测

任务管理器只能看到表象,专业渗透测试人员会使用:

sc queryex type=service state=all wmic service get name,displayname,pathname,startmode tasklist /svc /fo list

重点关注:

  • 以SYSTEM权限运行的服务
  • 可执行文件路径包含空格或引号的服务
  • 第三方服务(如备份软件、监控工具)

在某个客户现场,我们发现某财务软件的更新服务配置了弱权限,通过DLL劫持实现了权限提升。

4. 自动化信息收集框架实践

4.1 使用PowerShell脚本整合收集

这是我常用的信息收集脚本框架:

function Get-SystemInfo { $os = Get-WmiObject Win32_OperatingSystem $bios = Get-WmiObject Win32_BIOS return @{ OSVersion = $os.Version InstallDate = $os.InstallDate BIOSSerial = $bios.SerialNumber } }

该脚本可扩展收集:

  • 已安装软件列表(Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*
  • 共享文件夹(Get-SmbShare
  • 计划任务(Get-ScheduledTask

4.2 规避检测的隐蔽收集技术

在较新的Windows版本中,需要绕过AMSI和日志记录:

[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)

配合内存加载技术可以避免写入磁盘。在最近的测试中,我们使用CLR加载方式成功绕过了某EDR产品的检测。

5. 信息分析与漏洞映射

5.1 构建本地漏洞数据库

收集到的信息需要与以下漏洞库交叉比对:

  • Windows Bulletins (MSRC)
  • Exploit-DB
  • CVE Details 我通常使用以下命令快速检查:
wmic qfe | findstr /C:"KBXXXXXXX"

将结果与已知漏洞KB编号匹配。

5.2 权限提升路径决策树

根据收集结果,我的决策流程是:

  1. 检查补丁级别 → 寻找缺失的本地提权补丁
  2. 分析服务配置 → 寻找可写路径或弱权限服务
  3. 审查安装软件 → 寻找存在漏洞的第三方应用
  4. 检查计划任务 → 寻找可劫持的定时执行项

在最近一次测试中,通过分析schtasks /query /fo list /v输出,发现了一个以SYSTEM权限运行的批处理脚本,最终通过竞争条件实现了提权。

6. 高级信息收集技术

6.1 注册表深度挖掘

注册表包含大量系统配置信息:

reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

特别注意:

  • 自动启动项(Run/RunOnce)
  • LSA秘密(需SYSTEM权限)
  • 凭据管理器条目

6.2 内存取证技术

使用PowerShell可以提取有价值的内存信息:

Get-WmiObject Win32_Process | Select-Object Name,ProcessId,ParentProcessId,CommandLine

这有助于发现:

  • 隐藏进程
  • 异常命令行参数
  • 进程注入痕迹

7. 防御对抗与日志清理

7.1 识别监控措施

检查安全产品和服务:

sc query windefend net start | findstr /i "defender"

以及日志配置:

wevtutil gl security

7.2 隐蔽信息收集策略

推荐使用合法管理工具作为载体:

  • 使用PsExec执行命令
  • 通过WMI远程调用
  • 借助计划任务定时执行

在某个高度监控的环境中,我们通过schtasks /create创建了一个伪装成系统维护的任务,成功避开了SIEM检测。

8. 实战案例:从信息收集到权限提升

在某次授权测试中,我们通过以下步骤实现了域管理员权限获取:

  1. 初始信息收集发现:

    • 系统版本:Windows Server 2012 R2
    • 缺失补丁:KB3197873
    • 异常服务:BackupManager服务以SYSTEM运行
  2. 进一步分析发现:

    sc qc BackupManager

    显示服务二进制路径为"C:\Program Files (x86)\Backup\service.exe" -debug

  3. 利用路径空格和-debug参数,通过DLL劫持获得SYSTEM权限shell

  4. 在内存中发现管理员凭据,最终接管域控制器

这个案例展示了系统化信息收集如何为后续攻击提供关键切入点。每个看似无关的信息片段都可能成为突破口。

返回列表