简介
掉进兔子洞,进入仙境。
房间链接
https://tryhackme.com/room/wonderland
问题

挑战开始
首先还是扫了下端口,只开放了22和80

访问网站

没什么发现,开始扫描目录

在访问/r/目录时得到了一些提示

它让继续前进,尝试爆破子目录
找到一个子目录


继续前进,爆破子目录
找到一个子目录

继续前进,爆破子目录
找到一个子目录

继续前进,爆破子目录
找到一个子目录

继续前进,爆破子目录
终于到头了

这里提示要找线索,查看源代码,找到了一个凭证

尝试ssh

成功登陆
这里发现没有权限查看root的flag,需要提权

查看特权命令

这里发现一个py文件
查看了下py文件,发现它调用了random库
定位了下位置

但是我们的权限无法改写

查看下环境变量,发现它是从当前目录开始搜索的

在路径下生成一个random.py文件
填入
import os
os.system("/bin/bash")
指定rabbit执行后用户切换成了rabbit

在rabbit目录下发现一个二进制suid文件

下载到本地反编译看看


本地使用ida打开,f5转化为伪代码

这里可以看到它调用的date函数
那么我们可以更改环境变量
cd /tmp
vim date
chmod 777 /tmp/date
export PATH=/tmp:$PATH
cd /home/rabbit
./teaParty
date文件中填入
#!/bin/sh
bash -i
运行后会切换到hatter用户,并在用户目录下找到了该用户的密码

ssh登陆hatter用户
继续提权


这里看到perl存在suid权限
可以使用capabilities提权
查看了下提权方法

/usr/bin/perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'
成功提权,成功读取root flag

user flag


Comments NOTHING