HackTheBox - Schooled
本文最后更新于:2022年6月6日 晚上
0x01 信息收集
使用nmap进行扫描,老样子还是只开了ssh和http的端口:
访问IP地址,将得到的域名添加进Host,扫了扫目录,依旧没有什么发现:
然后从子域名入手,使用ffuf
FUZZ了一下,能够找到两个子域名,将其丢进host文件里绑定IP。
题外话:用BURP试了一下测不出来,不知道为什么burp会受host文件的影响,看来Repeater不能用来做这种测试。
0x02 Webshell
登录moodle.schooled.htb
的站点,注册用户能够看到上传文件的点,试了下,Getshell未果。
然后翻了翻课程,发现一些有意思的东西。全部就只有这个Math课程可以点进去,然后有个老师说会查看各个学生的Profile:
谷歌刚好能够搜到一个CVE-2020-25627,这是一个XSS的CVE。照着Poc插打Cookie的Payload,如下:
1 |
|
等待三五分钟后能够拿到老师的Cookie:
HTB所有涉及靶机连接攻击机的行为都应该在Kali上进行,Windows容易出Bug….
拿到Cookie后替换即可:
谷歌上还有moodle的CVE-2020-14321漏洞,可以用于提权,原理是老师enroll时没有作权限校验导致垂直越权,可以直接提权到manager。
使用了现成的exp脚本 https://github.com/lanzt/CVE-2020-14321
如果想手工的话,参考 https://www.youtube.com/watch?v=BkEInFI4oIU
exp只是跑了个whoami
命令,我们需要一个反弹的shell。于是乎从exp中提取出恶意的plugin,加入反弹shell的php代码,然后重新打包,上传到网站上安装。
之后访问 http://moodle.schooled.htb/moodle/blocks/rce/lang/en/revserse_shell.php 即可拿到shell。
0x03 UserShell
然而这只是一个普通的www权限的shell,我们需要提权才能做更多的事。
查找后发现网站放在/usr/local/www
目录下:
继续翻,能够看到 /usr/local/www/apache24/data/moodle
下有个config.php
,能够拿到数据库配置。
有个admin账号,破一下哈希能够拿到密码:
登录之,拿到一个普通账户的ssh:
0x04 RootShell
看看sudo能够发现pkg
命令被设置了suid位
1 |
|
看看咋提权:
这里只是敲了个id命令,我们需要一个root的shell,那就需要一点改造。
试了试反弹shell,显示啥 bad fd number,反正不能直接写命令进去
那就用文件吧,将payload保存到test.sh
里
1 |
|
然后再打包,上传,安装,即可拿到root的shell:
0x05 Summary
这是一个Medium难度的Linux靶机,主要考察内容如下:
- 子域名收集
- 历史CVE利用
- hashcat爆破密码
- pkg命令提权