1. 理解UAC机制与提权基础在Windows系统中用户账户控制UAC就像一位严格的保安它会在你尝试执行重要操作时弹出确认窗口。想象一下当你安装新软件或修改系统设置时那个突然跳出来问是否允许此程序更改设备的提示框就是UAC在工作。这个机制从Windows Vista开始引入目的是防止恶意程序悄悄获取系统权限。作为渗透测试人员我们经常遇到这样的情况通过钓鱼邮件或漏洞利用获得了一个普通用户权限的会话但想要深入系统时却发现处处受限。这时候就需要进行提权操作。在CobaltStrike中常见的权限等级可以分为三种低权限基本无法进行任何系统操作中权限普通用户权限部分操作受限高权限管理员权限几乎可以执行所有操作通过命令whoami /groups可以查看当前用户的权限级别而net localgroup administrators则能列出系统中的所有管理员账户。理解这些基础概念是后续进行UAC绕过和提权操作的前提。2. Bypass UAC实战操作当获取到中等权限的会话后Bypass UAC就成了我们的首要目标。这个过程就像找到了保安检查流程中的漏洞可以偷偷溜进VIP区域。在CobaltStrike中bypassuac模块就是我们的万能钥匙。具体操作步骤如下首先确认当前权限在Beacon控制台输入shell whoami /groups查看返回信息中的Mandatory Label\Medium Mandatory Level字段确认是中等权限。右键点击会话选择执行→提权在弹出的窗口中选择SMB Beacon作为监听器。在Exploit选项中选择uac-token-duplication技术这是目前最稳定的UAC绕过方法之一。成功执行后你会获得一个新的Beacon会话这时再用whoami /groups检查应该能看到High Mandatory Level的标记。值得注意的是这种技术利用了Windows的令牌复制机制通过创建一个具有管理员权限的副本进程来实现提权而不会触发UAC提示。3. 利用CVE漏洞进行系统提权获得高权限后我们还需要进一步获取SYSTEM权限。这就好比从VIP升级到了后台工作人员可以接触到系统的核心部分。这里我们以经典的MS14-058漏洞为例演示如何通过CVE提权。首先需要准备提权脚本# 在CobaltStrike脚本控制台加载提权脚本 load /path/to/ms14-058_exploit.cna然后按照以下步骤操作确认目标系统存在漏洞通过shell systeminfo查看系统补丁情况确认未安装KB3000061补丁。设置SMB Beacon监听器这是为了接收提权后的会话。在已有管理员权限的Beacon中执行elevate ms14-058 smb命令。如果一切顺利你将获得一个SYSTEM权限的会话。这个漏洞利用了Windows内核模式驱动中的漏洞允许攻击者执行任意代码。在实际测试中我发现这个漏洞在Windows 7和Server 2008 R2系统上成功率最高但在较新的系统上可能需要寻找其他漏洞。4. PowerUp自动化权限提升PowerUp就像是一个系统弱点扫描仪它能自动找出系统中可能存在的提权路径。这个工具特别适合在复杂环境中快速定位突破口。使用PowerUp的基本流程如下# 首先导入PowerUp脚本 powershell-import /path/to/PowerUp.ps1 # 执行全面检查 powershell Invoke-AllChecks执行后会返回一系列检查结果重点关注以下几类服务漏洞未引用的服务路径、弱权限服务等注册表问题自动运行项、AlwaysInstallElevated等文件系统权限关键目录的写入权限例如如果发现某个服务配置不当可以使用以下命令利用powershell Install-ServiceBinary -ServiceName 易受攻击的服务名 -UserName backdoor -Password Pssw0rd在实际测试中我经常遇到PowerUp脚本无法导入的情况这通常是因为系统的执行策略限制。解决方法是在目标机器上以管理员身份运行Set-ExecutionPolicy RemoteSigned -Force5. 凭证与哈希获取技术获得SYSTEM权限后接下来的重点就是获取凭证信息。这相当于拿到了整个系统的钥匙串。CobaltStrike内置了多种凭证获取工具最强大的当属Mimikatz。常用的凭证获取方法包括直接获取哈希# 在Beacon中执行 hashdump这会提取本地账户的NTLM哈希适用于哈希传递攻击。使用Mimikatz获取明文密码mimikatz !sekurlsa::logonpasswords这个命令会尝试提取内存中的登录凭证包括明文密码。持久化凭证收集mimikatz !misc::memssp这个技巧会在系统注入恶意SSP记录所有后续登录的凭证到C:\Windows\system32\mimilsa.log。在我的实际测试中发现Windows 10 1809之后的版本对Mimikatz的限制越来越多。这时候可以尝试使用Beacon的logonpasswords命令它是CobaltStrike对Mimikatz的封装通常能绕过一些基础防护。6. 实战中的常见问题与解决在实际渗透测试中很少有一帆风顺的情况。下面分享几个我经常遇到的问题和解决方法问题1bypassuac执行后没有返回高权限会话检查目标系统版本Win10 1809之后部分UAC绕过技术失效尝试使用不同的Exploit选项如uac-eventvwr或uac-cmstplua问题2PowerUp检查没有返回有用信息确认脚本是否完整导入可以尝试分段执行检查检查当前权限某些检查需要SYSTEM权限手动检查常见提权路径如C:\ProgramData目录的写入权限问题3Mimikatz无法获取明文密码尝试使用!sekurlsa::logonpasswords替代标准模块检查是否启用了LSA保护可以通过注册表临时禁用考虑使用其他工具如LaZagne或SessionGopher记住每个系统环境都不同重要的是理解原理后灵活应变。我习惯在测试前先收集详细的系统信息包括OS版本、安装的补丁、安全软件等这样可以更有针对性地选择攻击方法。