VulnHub——Kioptrix Level 4

目錄

簡介

環境配置

信息收集

數據庫文件

漏洞發現

SQL注入漏洞

漏洞利用

獲得webshell

獲得普通用戶shell

受限shell逃逸

權限提升

總結


簡介

該靶機較前面三個麻煩些, 需要新建虛擬機,將虛擬磁盤導入。但總的來說依舊很簡單,通過SQL注入漏洞可以直接獲得webshell,也可以利用獲取到的用戶名和密碼獲得普通用戶shell,然後通過root用戶和空口令登錄mysql,利用UDF提升到root權限。

環境配置

從官網下載壓縮文件,解壓後發現只有vmdk文件(虛擬磁盤文件),沒有vmdx文件,因此需要新建虛擬機,選擇自定義模式,安裝來源選擇“稍後安裝”,然後在客戶機操作系統選擇“其他”,如圖:

然後選擇位置爲解壓後放置vmdk文件的文件夾,名稱自定義,如圖:

出現提示後點“繼續”,設置內存爲512M,如圖:

然後一路默認,在選擇磁盤處選擇“使用現有虛擬磁盤”,然後選擇vmdk文件,如圖:

出現提示後選擇“保持現有格式”即可。

信息收集

探測目標主機IP地址,如圖:

然後使用nmap快速掃描目標主機,發現開啓22、80、139和445端口,OpenSSH版本爲4.7p1,Apache版本爲2.2.8,PHP版本爲5.2.4-2,Samba版本爲3.0.28a,操作系統大概率爲Ubuntu,內核版本爲2.6.X,如圖:

然後訪問80端口Web服務,發現是一個登錄頁面,如圖:

嘗試常見弱口令無果。

數據庫文件

然後掃描網站目錄,發現數據庫文件database.sql,如圖:

使用Google搜索Samba 3.0.28a已知漏洞,發現一些拒絕服務的漏洞。

漏洞發現

使用Nikto掃描Web服務漏洞,

使用searchsploit搜索Samba漏洞利用程序,如圖:

SQL注入漏洞

查看數據庫文件,如圖:

手工測試登錄頁密碼框發現存在SQL注入,且暴露了網站物理路徑,如圖:

在測試弱口令之後用sqlmap檢測漏洞,同樣發現SQL注入漏洞,如圖:

漏洞利用

利用SQL注入獲取members表下的用戶名和密碼,如圖:

使用密碼登錄網站,如圖:

查看當前數據庫用戶發現是root用戶,然後使用--passwords選項獲取數據庫用戶名和密碼,發現root用戶使用空密碼,如圖:

獲得webshell

通過--os-shell選項直接獲得webshell,如圖:

獲得普通用戶shell

此外嘗試使用獲得的用戶名和密碼通過ssh進行登錄也成功獲得普通用戶shell,如圖:

發現兩個用戶都是一樣的結果,權限都非常低。只能執行幾個命令,如圖:

受限shell逃逸

看着像lshell,但是不確定,總之是受限制的shell。然後搜索受限shell逃逸方法,發現可以利用echo命令進行逃逸:Spawning A TTY Shell-逃逸Linux各種Shell來執行命令

執行echo os.system("/bin/bash")後成功逃逸出當前受限Shell,如圖:

權限提升

查看內核版本,如圖:

顯然可以使用髒牛提權,嘗試上傳文件發現無法外連80端口,但是可以外連443端口,且該shell無法執行二進制文件,不存在gcc,因此無法通過內核提權。查看/etc/passwd文件發現john和robert用戶默認使用kshell,如圖:

另外還存在一個普通用戶loneferret用戶。查看開啓的端口發現有3306,如圖:

很自然想到的MySQL UDF提權,從前面SQL注入中獲取到的信息發現數據庫版本是5.0.12,但是在上傳動態鏈接庫後導出時出錯。然而,在查看mysql數據庫時很幸運發現已經存在func表,且表中含有執行命令的函數,如圖:

嘗試執行id命令,但返回信息爲NULL,如圖:

開啓443端口監聽,嘗試使用函數執行命令訪問443端口,如圖:

說明命令執行成功。然後使用msfvenom生成反彈shell 的程序,上傳到目標主機並執行,成功獲取root權限。

總結

對該靶機來說,獲得webshell和普通shell非常簡單,提權時需要注意查看mysql數據庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章