我正在进行一些笔测试并遵循一些指南来了解该行业的工具。我跟着导游这里除了最后一页我都明白了。
我需要sudo -l
以下帮助理解。我知道它详细说明了当前用户可以做什么。但是,下面的输出是什么意思呢?
那么下面的命令(不包括触摸)怎么样?这让我有点困惑,因为运行该命令(利用?)后,我能够获得 root 权限。
根据我的理解,该行是说以 root 身份运行命令或提升到 root,压缩名为exploit的文件,并将其放置在 tmp/exploit 中。我相信我错了,但这就是我对这条线的理解的终点。
我对如何使用该命令获得 root 权限以及该行正在做什么感到困惑。
答案1
对于您的第一个问题,指定的输出行告诉您您可以以 root 用户身份运行/bin/tar
和/usr/bin/zip
via 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。