Vulnhub-JARBAS
Vulnhub-JARBAS
xxshh0x00 Introduction
这个靶场的考察点主要是 Jenkins 的漏洞利用和 crontab 计划任务提权。打靶思路见下图。
0x01 端口扫描
首先对所有端口进行 TCP 扫描:
|
接下来对这个四个端口进行详细信息扫描:
|
对这四个端口的探索及利用排个优先级:80>8080>22>3306。
0x02 Web渗透
浏览器访问 http://192.168.46.140 :
探索了一下,没发现什么可以利用的点,接下来目录爆破:
|
没有爆破到任何信息:
那么限制扩展名试试?根据 Wappalyzer 的分析结果得知后端语言是 PHP,那我们限制扩展名是 php 和 html 试试:
|
这次爆出有用信息了:
访问 http://192.168.46.140/access.html :
利用 hash-identifier
识别一下这是什么加密方式:
找一个 MD5 解密网站,解密结果是:
|
一看就是账号密码,ssh 登录试试。
很遗憾失败了。
接下来探索 8080 端口,访问 http://192.168.46.140:8080 :
正好是个登录界面,用第三个账号密码登录成功了:
0x03 Jenkins漏洞利用
看大佬视频才知道 Jenkins 是一个比较出名的工具,用于持续集成(CI)和持续交付(CD),简化软件开发中的构建、测试和部署过程。
既然如此,用 searchsploit
搜索相关的漏洞及其利用
有这么多公开漏洞,一个一个试不太现实。红队笔记说他对 Jenkins 非常熟悉,因此对漏洞触发的点也非常清楚。我们直接跟着他的思路走,下次再遇到 Jenkins ,直接尝试这个 EXP ,如果不行再尝试其它漏洞。
新建个项目,项目类型选择第一个:
Build 这栏执行命令的选项。前面信息收集是,我们已经知道了目标主机是 Linux 操作系统,所以选择第二个 Execute shell
。
然后就可以执行反弹 shell 了,本机开启一个 888 监听端口:
|
生成个命令,复制到输入框里:
save,然后点击 Build Now:
最后发现错误原因是上面生成的命令中 /888
前面多了个空格,输入正确命令
|
执行反弹 shell 成功:
当前 shell 不是一个完全交互式的 shell,我们尝试用之前学到的命令升级一下,python 命令成功了:
|
0x04 提权
查看相关信息:
查看 /etc/passwd
:
可以看到 root 和 eder 是可以使用 bash 的,当前用户不可以使用 bash。
接下来看/etc/shadow
:
很遗憾,没有权限。
那么就得想其它办法提权了。之前写过一篇权限提升的博客,这里用到的是 Cron 计划任务。
查看当前服务器的定时任务:
|
每 5 分钟就会以 root 权限运行 /etc/script/CleaningScript.sh:
查看一下这个文件有没有写权限:
太好了,有写权限,那么我们就可以写入反弹 shell 命令,获取 root 身份的 shell 了。
本机再开启一个 1234 监听端口,当前 shell 输入以下命令:
|
最多等待 5 分钟,就能成功提权:
获取 flag:
0x05 Conclusion
这个靶场总体来说不算难,不但巩固了以前学过的知识,也给了我一些启发。比如目录爆破的时候,不带参数扫描不出来结果,如果卡在这里就完全走不下去了。因此以后在做目录爆破的时候,如果一次扫不出结果,可以限定后缀名,或者使用其它工具试试。整个打靶过程,还是比较考验知识储备的,比如我之前根本没听说过 Jenkins ,不过以后再遇到就有思路了。