> 文章列表 > TryHackMe-Madeye‘s Castle(boot2root)

TryHackMe-Madeye‘s Castle(boot2root)

TryHackMe-Madeye‘s Castle(boot2root)

Madeye’s Castle

一个boot2root盒子,由Runcode.ninja团队在CuCTF中使用的盒子修改而来

祝你冲进麦德耶的城堡玩得开心!在这个房间里,你需要完全枚举系统,站稳脚跟,然后转向几个不同的用户。


端口扫描

循例nmap

TryHackMe-Madeye‘s Castle(boot2root)

SMB枚举

smbmap看一眼

TryHackMe-Madeye‘s Castle(boot2root)

smbclient进sambashare

TryHackMe-Madeye‘s Castle(boot2root)

spellnames可能是一些用户名

TryHackMe-Madeye‘s Castle(boot2root)

TryHackMe-Madeye‘s Castle(boot2root)

Web枚举

进80,一个默认页面

TryHackMe-Madeye‘s Castle(boot2root)

上gobuster

TryHackMe-Madeye‘s Castle(boot2root)

TryHackMe-Madeye‘s Castle(boot2root)

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

TryHackMe-Madeye‘s Castle(boot2root)

扫到个email/

TryHackMe-Madeye‘s Castle(boot2root)

TryHackMe-Madeye‘s Castle(boot2root)

这里披露了一个域名

hogwarts-castle.thm

根据刚刚页面提供的信息,需要将s改成z

hogwartz-castle.thm

将其添加进hosts

访问, 一个登录页面

TryHackMe-Madeye‘s Castle(boot2root)

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

TryHackMe-Madeye‘s Castle(boot2root)

爆表

TryHackMe-Madeye‘s Castle(boot2root)

爆字段

TryHackMe-Madeye‘s Castle(boot2root)

查看notes有一条有用的信息

TryHackMe-Madeye‘s Castle(boot2root)

我们知道了用户名,密码告诉我们的应该是hashcat的rule

我们需要通过hashcat的rule生成密码字典,在开头smb枚举的时候告诉似乎在告诉我们密码可能无法使用rockyou爆出来,并且同时给出了一个list

所以我们可以尝试使用best64对那个list生成新字典

TryHackMe-Madeye‘s Castle(boot2root)

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

TryHackMe-Madeye‘s Castle(boot2root)

秒出

TryHackMe-Madeye‘s Castle(boot2root)

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

TryHackMe-Madeye‘s Castle(boot2root)

横向移动

查看sudo -l

TryHackMe-Madeye‘s Castle(boot2root)

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

TryHackMe-Madeye‘s Castle(boot2root)

竟然是nano

TryHackMe-Madeye‘s Castle(boot2root)

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

TryHackMe-Madeye‘s Castle(boot2root)

成功移动到hermonine, user flag2

TryHackMe-Madeye‘s Castle(boot2root)

权限提升

查找suid

TryHackMe-Madeye‘s Castle(boot2root)

TryHackMe-Madeye‘s Castle(boot2root)

使用ltrace跟踪到调用srand和rand

TryHackMe-Madeye‘s Castle(boot2root)

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

TryHackMe-Madeye‘s Castle(boot2root)

利用这一点写一个bash一句话

echo 1 | /srv/time-turner/swagger | grep -E '[0-9]*' -o | /srv/time-turner/swagger

TryHackMe-Madeye‘s Castle(boot2root)

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

TryHackMe-Madeye‘s Castle(boot2root)

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

TryHackMe-Madeye‘s Castle(boot2root)

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

TryHackMe-Madeye‘s Castle(boot2root)
TryHackMe-Madeye‘s Castle(boot2root)

getroot