標籤:

一次PwnLab挑戰的技術解析

這是一個boot2root挑戰,叫做Pwnlab。我門用vbox運行Pwnlab,並用nmap掃描了下,掃描結果如下:

我們可以看到開放了80埠,果不其然運行著一個web應用。

這個應用程序包含一個登陸頁面,主頁和上傳頁面。我嘗試瀏覽robots.txt文件,然而並不存在。所以我們使用dirb工具來枚舉存在的目錄。

我們打開那個config.php,頁面卻是一片空白。

對網站進行一陣掃描後,找到一個本地文件包含漏洞,通過php filter的方式加以利用。試著讀取index.php的源碼:php://filter/convert.base64-encode/resource=index。

我們可以看到頁面顯示了一段base64編碼後的文字,我們進行解碼看看是什麼內容。

同理,我們讀取config.php文件的內容。

解碼後發現資料庫的帳號密碼。

我們使用mysql客戶端進行連接。

找到用戶表,這個表裡面存放著用戶名和密碼。

密碼一看就是base64編碼後的。很容易解出來。

kent – JWzXuBJJNynmike – SIfdsTEn6Inkane – iSv5Ym2GRon

有了這些憑證之後我們成功登陸了網站,打開上傳頁面。

但是我們上傳php後門時失敗了,頁面提示了錯誤信息。(後綴不允許,請上傳圖片文件)

讓我們看看upload.php文件是怎麼寫的吧。

php://filter/convert.base64-encode/resource=uploadn

解密之後如下圖:

代碼中我們可以看到有一個白名單後綴數組,意味著它將只接受那些白名單的文件格式。另外一個功能是使用getimagesize函數有效地確認上傳文件是否是一個圖像。在這一點上,大部分的上傳方法將會失敗(還有其他的函數可以用來檢查上傳文件的圖像尺寸)。

唯一的方法是上傳一個真實的圖片通過這些驗證而不是繞過檢查。我們上傳一個有GIF頭的php反向shell圖片,後綴是gif。

圖片文件上傳上去了,但是當我們訪問之後,nc沒有接收到任何反向連接。(譯者:如果真收到了那就見鬼了)

此時我又重新讀了下index.php的源碼,發現include會包含$_COOKIE[『lang』]的值。這意味著我們可以設置一個cookie,lang的值為上傳後的圖片路徑。這樣index.php就會去包含這個圖片,執行其中的反向shell代碼。

Nc提示接收到一個連接。

將其轉換成互動式的shell,方便運行su。在終端中執行:

echo 「import pty; pty.spawn(『/bin/bash』)」> /tmp/asd.pynpython /tmp/asd.pyn

使用我們從資料庫中收集到的憑證。

居然登陸進去了,我們看看kane用戶目錄下面有什麼東西。有個msgmike文件,運行出錯。顯示嘗試用cat去讀取mike用戶目錄下的msg.txt文件失敗。

我們創建一個cat文件,並設置成可執行文件。

在執行cat命令之前先設置環境變數,執行命令:export PATH=.:$PATH,然後再執行./msgmike文件。

文件執行之後我們有了mike用戶的許可權。我們在mike的用戶目錄下面發現更多的可執行文件,其中一個叫做msg2root。執行msg2root之後,得到了一個root許可權的/bin/sh會話。

我們在root目錄下找到了flag.txt文件。

引用:hackers2devnull.blogspot.in

註:本文參考來源於infosecinstitute

推薦閱讀:

針對Android設備的開源手機銀行木馬BankBot / Mazain分析
畫線是預言的自我實現嗎?
技術分析的目的?
截止到2016年5月26號,對滬深兩市的大級別波浪應該怎麼劃分?
如何利用sdclt.exe繞過UAC?

TAG:技术分析 |