端口扫描

Web

先扫一下目录

让我们keep going

在/r的基础下再扫

然后一直扫之后

来到了/r/a/b/b/i/t目录,在这基础上也扫不出目录了

Getshell

右键查看源代码,难绷的是直接给了ssh的用户密码

alice:HowDothTheLittleCrocodileImproveHisShiningTail

然后直接就登陆了,啊这

看一下,发现还有其他几个看起来比较重要的用户

alice的家目录里有一个不可以访问的root.txt和一个python脚本,这个脚本的作用只是将这首诗随机选10行输出出来,大概没什么用,不得不说这个房间的氛围感拉满233

sudo -l 发现alice能以rabbit的身份执行这个Python脚本

没啥思路,看了下WP,用的是python的库劫持,新知识点。因为所执行的Python脚本导入了random的库,实际上也就是导入了random.py这个文件,而且python的一个特性是寻找最近的文件,也就是说我们在/home/alice这个目录下建一个名叫“random.py”的文件也就是最近的文件了,会执行它,random.py的内容是

import os
os.system("/bin/bash")

然后执行

sudo -u rabbit /usr/bin/python3.6 /home/alice/walrus_and_the_carpenter.py

发现我们变成了rabbit用户

到了rabbit的家目录,发现是一个叫teaParty的二进制文件,可以发现还有设置SUID位

执行的内容是说疯帽子马上来了,在一个时间之前,之前的/etc/passwd里面确实有一个hatter用户

为了更了解这个二进制文件干了什么,我拿出了封尘已久的打CTF时用过的ida,然后用仅有的一点点(几乎没有)逆向知识看了下这个文件

除了输出一些文本之外,就是调用了/bin中的echo和date命令,那么也可以通过更改环境变量的方式劫持命令

那我就在/tmp目录写一个date的二进制文件,里面输入

#!/bin/bash
/bin/bash
chmod +x date

然后执行

export PATH=/tmp:$PATH

能看到/tmp目录在/usr/bin之前,也就是说寻找”date”这个命令会优先在/tmp中寻找

一开始我建立的是”echo”,不知道为什么不行。。。

然后./teaParty运行,发现我们变成了hatter

在hatter的家目录发现了password

WhyIsARavenLikeAWritingDesk?

应该是他的密码

我们试试ssh登录hatter,成功登录

提权

然后就是提权的事,传个linpeas

记得chmod +x linpeas.sh

发现有capabilities

只需执行

perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'

发现我们成了root

然后/home/alice/root.txt

thm{Twinkle, twinkle, little bat! How I wonder what you’re at!}

user.txt在/root中,也是抽象

thm{“Curiouser and curiouser!”}

碎碎念

氛围感很强的一个靶机,还不错。不过有点脑洞的,尤其是web目录那里,有点CTF味还挺有趣。然后学到了python的库劫持和环境变量的二进制命令劫持,然后难得见到capabilities的提权,稍微复习了一下233还是收货挺大的一个靶机