通過可寫文件獲取 Linux root 權限的 5 種方法

Linux系統中,全部都是以文件形式存在的,包括目錄、設備都是有權限的,共有讀、寫、可執行三種。管理員為文件設置好權限後,應該要考慮哪些Linux用戶會被允許和限制上述的三個權限。

通過可寫腳本進行root 提取的5種方法:

  1. 複製 /bin/sh 到 /tmp
  2. 設定 /bin/dash的SUID位
  3. 通過sudoer給登錄用戶完全的權限
  4. 設定/bin/cp的SUID位
  5. 逆向連接到惡意代碼

開啟攻擊機器,黑掉目標系統,然後進行權限提升。假設成功地通過ssh登錄到受害者的機器,並可以訪問非root的用戶終端。然後使用下面的命令,下面會舉例所有有寫權限的二進制文件。

通過可寫文件獲取 Linux root 權限的 5 種方法

可以看到一個/lib/log中保存的python文件,在路徑中我們看到了sanitizer.py 文件的權限為 777。

通過可寫文件獲取 Linux root 權限的 5 種方法

Admin要將下面的腳本加入,來清理/tmp中的垃圾文件。如果攻擊者能夠識別受害者機器中的這類情形,就可以通過下面的方式來提升root權限來破壞系統。

通過可寫文件獲取 Linux root 權限的 5 種方法

第一種方法

有許多的方法可以獲取root權限,本方法中,我們將/bin/sh複製到/tmp文件夾中,然後設置/tmp/sh的SUID。這種方式非常簡單,首先,通過nano編輯器打開文件,然後用rm -r /tmp/* 替換下面的命令:

通過可寫文件獲取 Linux root 權限的 5 種方法

在/tmp目錄創建一個有SUID權限的sh文件後,允許sh文件時會有root訪問權限。

通過可寫文件獲取 Linux root 權限的 5 種方法

可以通過下面的圖片進行確認:

通過可寫文件獲取 Linux root 權限的 5 種方法

第二種方法

同樣地,可以用rm -r /tmp/* 替換下面行的內容

通過可寫文件獲取 Linux root 權限的 5 種方法

在設置了/bin/dash的SUID權限後,運行後就可以獲取root權限

通過可寫文件獲取 Linux root 權限的 5 種方法

可以通過下面的圖進行確認:

通過可寫文件獲取 Linux root 權限的 5 種方法

第三種方法

通過可寫文件獲取 Linux root 權限的 5 種方法

通過netcat逆向了連接後,就可以獲取root權限。

可以通過下面的圖進行確認:

通過可寫文件獲取 Linux root 權限的 5 種方法

第4種方法

另一個方法是給登錄的用戶sudo權限。下面的圖中可以看出當前用戶wernerbrandes不能允許sudo命令。

通過可寫文件獲取 Linux root 權限的 5 種方法

同樣地,可以在下面替換rm -r /tmp/*

通過可寫文件獲取 Linux root 權限的 5 種方法

當輸入“sudo -l”命令時會發現,這是sudo用戶的一個成員。可以利用sudo bash來獲取root權限。

通過可寫文件獲取 Linux root 權限的 5 種方法

第5種方法

因為在linux類系統中,passwd文件起著很重要的作用。所以,如果攻擊者有機會修改passwd文件,那麼這將會成為一種動態的權限提升的方式。

同樣地,可以利用cat命令查看etc/passwd文件的內容。

UID:1000 & GID:1000 就是admin組隊成員。下面編輯一下nemo記錄來使其成為root組成員,選擇etc/passwd的整個內容並複製粘貼到空text文件中。

通過可寫文件獲取 Linux root 權限的 5 種方法

然後,在一個新的終端上生成一個含salt的密碼,然後複製。

通過可寫文件獲取 Linux root 權限的 5 種方法

然後粘貼之前複製的含salt的密碼在用戶nemo的記錄詞條的X位置處,並修改UID&GID為0:0。完成上面的步驟後,我們就可以將其保存為passwd。

通過可寫文件獲取 Linux root 權限的 5 種方法

利用可寫的腳本替換 “rm -r /tmp/*”

通過可寫文件獲取 Linux root 權限的 5 種方法

設置/bin/cp的SUID來複制文件。

通過可寫文件獲取 Linux root 權限的 5 種方法

將修改後的passwd文件下載受害者機器的/tmp文件夾中。用下面的命令檢查/bin/cp的SUID位是否開啟。

通過可寫文件獲取 Linux root 權限的 5 種方法

下面確認是否改變了passwd文件的內容:

通過可寫文件獲取 Linux root 權限的 5 種方法

可以看出passwd文件中的變化:

通過可寫文件獲取 Linux root 權限的 5 種方法

可以執行下面的命令來獲取root權限:

通過可寫文件獲取 Linux root 權限的 5 種方法

本文證明了攻擊者如何通過可寫文件進行linux系統權限提升。


分享到:


相關文章: