對於某些滲透測試項目,在利用和展示漏洞影響方面獲得Web shell 可能就足夠了。 在其他一些情況下,我們可能需要進行提權,做進一步的內網滲透。

在關於權限提升的第一個案例中,我們將利用上一節中的方法,我們上傳反向shell到我們的攻擊機器,並執行。然後使用Kali Linux中包含的工具獲取服務器上的管理權限

實驗兩種方案,利用Shellshock執行命令以及使用Metasploit創建和捕獲反向shell。

實驗開始

我們在受感染的服務器上運行了一個meterpreter shell - 更具體地說,是具有IP 192.168.56.12的beebox。 讓我們從找到升級權限的方法開始:

1.KaliLinux包含一個名爲unix-privesc-check的工具; 它會檢查系統是否存在可能允許我們升級權限的配置漏洞。 從meterpretershell,我們可以使用upload命令將其上傳到服務器。 在您的meterpreter會話中,發出upload / usr / bin /unix-privesc-check / tmp /命令。

2.上傳文件後,打開系統shell(使用meterpreter中的shell命令)並使用/ tmp / unix-privesc-checkstandard運行腳本。 以下屏幕截圖顯示了該過程:

3.該腳本將顯示一長串結果,但我們對開頭顯示WARNING的那個感興趣。 在下面的屏幕截圖中,我們可以看到有一個腳本(/etc/init.d/bwapp_movie_search)在啓動時由root運行,每個人都可以寫入它(設置了World write):

4.我們將使用該文件使root用戶在啓動時執行命令。 我們將創建一個具有管理權限的用戶,以便我們可以通過SSH連接隨時到服務器。爲此,我們需要檢查系統中存在的組,以便我們瞭解哪些組具有特權訪問權限。 在系統shell中,運行cat / etc / group | sort -u命令。 您將看到有一些有趣的名稱,例如adm,admin和root。

5.由於我們沒有完整的shell,我們無法打開文本編輯器將命令添加到目標文件中,因此我們需要使用echo將它們逐行附加到文件中:

6.要驗證命令是否已正確引入,請使用tail。 它將顯示文件的最後幾行:tail /etc/init.d/bwapp_movie_search在屏幕截圖中,我們可以看到它應該是什麼樣子:

7.由於此服務器是我們測試實驗室的一部分,我們可以重新啓動它。在實際情況中,攻擊者可能會嘗試攻擊以使服務器重新啓動,或者DoS會強制管理員重新啓動它。

8.重新啓動服務器後,在Kali Linux中使用ssh登錄[email protected],然後使用在步驟5中設置的密碼。如果詢問是否接受主機證書,請鍵入yes並按Enter鍵。

9.如果一切正常,您將能夠登錄。以下屏幕截圖顯示用戶具有對所有命令的root訪問權限,因爲它們屬於組admin(sudo -l)並且可以模擬root用戶(sudo su):

在本文中,我們使用現有的meterpretershell將腳本上載到受感染的服務器。 unix-privesc-check是一個shell腳本,它自動查找系統中的某些配置,特徵和參數,這些配置,特性和參數可能允許受限用戶訪問未授權的資源,例如屬於其他用戶或程序的文件。在更高權限配置文件下運行。 我們使用標準參數運行unix-privesc-check,它只進行一組基本測試; 還有一個詳細的選項,需要更長的時間,但也會進行更深入的分析,並可以給我們更多的升級備選方案。

在分析了unix-privesc-check的結果後,我們決定修改在啓動時以高權限運行的腳本,並向其添加兩個命令。第一個是創建屬於admin,adm和root組的用戶,另一個是爲這樣的用戶設置密碼。 要將這些命令添加到文件中,我們使用了echo命令和輸出重定向操作符(>),因爲我們的有限shell不允許我們打開文本編輯器並直接編輯該文件。然後我們重新啓動了虛擬機。

當機器重新啓動時,我們使用我們設置的用戶通過SSH連接到它,並驗證它是否具有root權限。 刪除我們添加到/etc/init.d/bwapp_movie_search腳本中的行也是一個好主意,以避免觸發進一步的警報。

另請參閱

我們決定使用在啓動時使用root權限執行的文件的修改作爲獲取管理訪問權限的方式。還有其他選項可能不需要攻擊者等待服務器重新啓動,儘管更改啓動腳本可能是一種保留持久訪問的方法,特別是如果這些更改是在腳本中的模糊功能中完成的,這些功能很少被 管理員和開發者。嘗試升級基於Unix的系統中的權限時要查找的其他常見方面如下:

SUID位:當在程序或腳本的屬性中設置此位時,此類程序將在所有者用戶的權限下執行,而不是在執行它的用戶的權限下執行。例如,如果可執行文件屬於root用戶(所有者是我們對文件執行ls -l時顯示的名字)並且由用戶www-data執行,則系統會將該程序視爲由root執行。 因此,如果我們找到這樣的文件並設法更改它打開或使用的文件,我們就可以獲得root執行權。

PATH和其他環境變量:當程序調用其他程序或讀取系統文件時,需要在系統中指定它們的名稱和位置;有時這些程序只指定名稱和相對路徑。而且,操作系統有一些優先級標準,關於在未指定絕對路徑時首先查看的位置 - 例如,首先查看當前文件夾,程序位置或PATH環境變量中指定的位置。這兩個條件爲攻擊者添加惡意文件打開了大門,該惡意文件的名稱與特權程序所需的名稱相同,位於將要查看的位置由操作系統在文件的實際位置之前,強制易受攻擊的程序處理攻擊者文件的內容而不是合法的文件。

對已知漏洞的利用:在實際組織中,基於Unix的系統通常是最不經常修補和更新的。這爲攻擊者和滲透測試人員提供了尋找公開可用漏洞的機會,這些攻擊將使他們能夠利用過時軟件中存在的漏洞。

喜歡就支持一下老哥吧~

---------------------------------------------

相關文章