TryHackMe-Madeye‘s Castle(boot2root)

Madeye’s Castle
一个boot2root盒子,由Runcode.ninja团队在CuCTF中使用的盒子修改而来
祝你冲进麦德耶的城堡玩得开心!在这个房间里,你需要完全枚举系统,站稳脚跟,然后转向几个不同的用户。
端口扫描
循例nmap

SMB枚举
smbmap看一眼

smbclient进sambashare

spellnames可能是一些用户名


Web枚举
进80,一个默认页面

上gobuster


无法查看目录,继续扫一下

扫到个email/


这里披露了一个域名
hogwarts-castle.thm
根据刚刚页面提供的信息,需要将s改成z
hogwartz-castle.thm
将其添加进hosts
访问, 一个登录页面

这里存在sql注入, 不过是sqlite

爆表

爆字段

查看notes有一条有用的信息

我们知道了用户名,密码告诉我们的应该是hashcat的rule
我们需要通过hashcat的rule生成密码字典,在开头smb枚举的时候告诉似乎在告诉我们密码可能无法使用rockyou爆出来,并且同时给出了一个list
所以我们可以尝试使用best64对那个list生成新字典

这里选择直接离线爆从数据库得到的密码hash再直接登录ssh,因为在线爆ssh太慢了

秒出

使用这组凭据登录ssh,得到flag1

横向移动
查看sudo -l

跟过去,执行/usr/bin/pico

竟然是nano

sudo进到nano,然后ctrl^R + ctrl^x, 输入以下命令并回车

成功移动到hermonine, user flag2

权限提升
查找suid


使用ltrace跟踪到调用srand和rand

这里又有个问题,一旦我们快速运行程序,它所使用的种子将不会改变,即得出一个一样的随机数

利用这一点写一个bash一句话
echo 1 | /srv/time-turner/swagger | grep -E '[0-9]*' -o | /srv/time-turner/swagger

使用strings查看的时候发现调用了uname

那好办了,这还是suid,我们还是使用老方法,直接改环境变量调用恶意uname

利用刚刚的方法绕过随机数判断


getroot
