Linux

了解 sudo 和可能的漏洞利用

  • November 9, 2018

我正在做一些筆測試,並遵循一些指南來了解交易工具。我按照這裡的指南進行操作,除了最後一頁外,我了解所有內容。

我需要以下幫助理解sudo -l。我知道它詳細說明了目前使用者可以做什麼。但是,下面的輸出是什麼意思?

在此處輸入圖像描述

那麼下面的命令(不包括觸摸)呢?這讓我有點困惑,因為在執行該命令(利用?)之後,我能夠獲得 root 權限。

在此處輸入圖像描述

據我了解,該行是說以root身份執行命令或提升為root,壓縮名為exploit的文件,並將其放入tmp/exploit。我相信我錯了,但這就是我對那條線的理解停止的地方。

我對如何使用該命令獲得 root 以及該行在做什麼感到困惑。

對於您的第一個問題,指示的輸出行告訴您允許您以 root 使用者身份執行/bin/tar/usr/bin/zip通過sudo,甚至不需要提供zico密碼。

zip對於您的第二個問題,我們從的手冊頁中得到答案:

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

因此,由於您有特權以ziproot 使用者身份通過執行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。

引用自:https://unix.stackexchange.com/questions/480651