打靶记录(十二)之THMWonderland
端口扫描
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 |
然后执行
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 |
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还是收货挺大的一个靶机