當前位置:
首頁 > 新聞 > Linux內核exp提權實戰

Linux內核exp提權實戰

獲取root許可權是Linux漏洞利用的終極目標。跟Windows中的System用戶一樣,root用戶擁有對操作系統的所有管理許可權。在滲透中,有時候成功利用某些漏洞只會獲取一個低許可權用戶,所以需要使用提權技巧,提升到許可權更高的root用戶,完全控制整個系統。

第一步 信息收集&搜索exp

在上一篇文章中,我們使用metasploit利用shellshock漏洞獲取到了靶機上的一個低許可權的shell。

而我們的終極目標是root許可權,所以我們需要提權,打破低許可權shell的限制。

上一篇文章鏈接: http://www.4hou.com/vulnerable/12984.html

我們將使用一個內核exp提權到root用戶,首先我們搜集靶機的基本信息。由於我們已經獲取到了一個shell,我們可以執行uname –a 命令來查看內核版本,也可以使用lsb_release –a命令來查看當前系統發行版的具體版本號,如下圖:

現在我們就要查找可以利用的exp了。我們剛才執行的命令顯示運行的系統是Ubuntu8.0.4,內核版本是2.6.24。

kali本身自帶了一個本地版本的Exploit-DB庫,包含了各種各樣的exp和代碼等。

我們可以使用非常有用的SearchSploit工具來訪問這個exp庫,只要在終端中輸入searchsploit即可運行,如圖:

由於我們是要找提權exp,所以我們搜索privilege,然後使用grep命令來縮小查找範圍,加上-i 參數忽略大小寫。對於本文這個例子,我們使用8572.c這個exp,利用了UDEV設備管理器的一個漏洞,允許通過未經驗證的Netlink消息來執行代碼。複製exp位置,然後使用locate命令來查找完整的路徑,也就是/usr/share/exploitdb/exploits/linux/local/8572.c.

如圖所示:

這個exp是用C語言寫的(擴展名是.c),但是我們不用擔心源代碼問題,只要我們進行編譯後它就可以運行。

現在我們可以查看文件,並且查看關於exp的詳細信息,還有開發者的注釋。

第二步 把exp上傳到靶機中

要利用這個exp,需要把它上傳到靶機中。最簡單的方法就是在本地kali中搭建Apache伺服器,把exp放在本地伺服器上,然後從靶機連接到這個伺服器並下載exp。不過,在這之前,我們要進行一些準備步驟。

首先,我們要確保伺服器啟動並且運行在kali中,這個只要在終端中執行一條命令即可,service apache2 restart。然後我們在伺服器文件目錄下建立exp所在位置的符號鏈接,這樣exp才可以下載,執行以下命令來建立符號鏈接:

這個exp要在靶機的/tmp目錄下運行,所以,我們首先要創建一個將要執行的文件。在kali上,使用nano /var/www/html/run命令來創建一個文件並輸入下面幾行內容:

當這個文件執行時,它會使用netcat去連接kali的4321埠並生成一個shell。執行的時候敲 Ctrl-X, Y, 和回車進行保存。

現在我們準備好要上傳exp到靶機了。回到我們的低許可權shell,切換到/tmp目錄下,使用wget命令連接到kali中運行的伺服器,然後將文件上傳到靶機上,如圖:

第三步 編譯&執行

現在exp文件已經成功上傳到靶機上了,我們下一步就是執行該exp。由於exp文件是用C編寫的,我們需要把它編譯成可執行文件。這裡我們不會探討編譯語言的細節,我們只需要把源碼編譯可執行文件,能夠運行即可,在Linux系統中,只要使用gcc命令即可,使用-o參數來指定輸出文件的名字:

如果出現沒有找到ld(動態鏈接器)的情況,我們需要使用-B參數來指定鏈接器的位置,在這個例子中,位置是/usr/bin,現在的命令如下:

最後,我們可以使用ls命令來查看下可執行文件是否已經成功編譯,如圖所示:

在8572.c文件的文檔中,它說我們要找到Netlink套接字的PID,這個PID通常比UDEVD的PID小1。我們使用 cat /proc/net/netlink命令來查看PID,唯一的非0的PID就是我們想要的數字。我們可以驗證這個PID是正確的,使用 ps aux | grep udev來查看UDEVD的PID,它應該比剛才的數字大1,如圖所示:

接下來,我們需要在kali中設置監聽器,當腳本執行時我們就能獲取到shell了。在kali上執行 nc –lvp 4321命令來監聽入站連接。

現在我們的監聽器是開著的,我們終於可以進行漏洞利用了。記住,要把Netlink的PID作為參數傳遞過去,也就是2459。在低許可權shell中執行下面的命令:

片刻之後,我們的Netcat監聽器就獲取到了一個新的連接會話,我們輸入id和whoami命令來查看下用戶信息,可以看到我們已經獲取到root許可權的用戶了,如圖:

現在伺服器已經完全在我們的控制之下,我們可以做任何事情了。

下一步 破解密碼hash

本教程中,我們學會了如何使用Linux內核exp來進行本地提權並且獲取到了root許可權,控制了伺服器。下一篇文章,我們會講解定位密碼hash位置並講解幾個工具來進行破解它們。

敬請期待!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

NodeJS反序列化漏洞利用getshell
供應鏈攻擊可能將成為未來三年內最大的網路威脅之一

TAG:嘶吼RoarTalk |