前言:都寫出來記錄下吧
當系統管理員配置Windows服務時,他們必須指定要執行的命令,或者運行可執行文件的路徑。
當Windows服務運行時,會發生以下兩種情況之一。
第一種:如果給出了可執行文件,並且引用了完整路徑,則系統會按字面解釋它並執行。
第二種:如果服務的二進制路徑未包含在引號中,則操作系統將會執行找到的空格分隔的服務路徑的第一個實例。
不帶引號的服務路徑查看方法:
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
例如這個服務的可執行路徑為:C:\Program Files (x86)\Sangfor\SSL\Promote\SangforPromoteService.exe
那么服務啟動的時候運行的可執行文件就會有如下幾種:
C:\Program.exe
C:\Program Files (x86)\Sangfor\SSL\Promote\SangforPromoteService.exe
我們第一個實驗:調用system函數進行執行分別來標識system("whoami >> whoami.exe")
然后我們可以嘗試運行C:\Program Files (x86)\Sangfor\SSL\Promote\SangforPromoteService.exe
發現C:\
會多出whoami.exetxt的文件
第二個實驗:我們將Program Files
當作一個完整的路徑,那么也就是用雙引號進行包裹
運行C:\"Program Files" (x86)\Sangfor\SSL\Promote\SangforPromoteService.exe
運行C:\Program Files.exe
總結:
1、在msf中exploit/windows/local/trusted_service_path
,這個模塊也可以進行相應的利用,但是如果要更加隱蔽的話,大家還是參考上面的wmic的命令吧!
2、比較雞肋,因為大家都知道C:\
目錄默認是不讓寫的,但是大家可以去了解下什么叫Weak File Permissions
,能幫助到你進行深一步的提權!
3、對於路徑配置的提權,我們所需要的權限只需要能寫!
參考文章:https://tulpa-security.com/2016/10/20/unquoted-service-paths/