什麼是UAC?
UAC是微軟為提高系統安全而在Windows Vista中引入的新技術,它要求使用者在執行可能會影響計算機執行的操作或執行更改影響其他使用者的設定的操作之前,提供許可權或管理員密碼。通過在這些操作啟動前對其進行驗證,UAC可以幫助防止惡意軟體和間諜軟體在未經許可的情況下在計算機上進行安裝或對計算機進行更改。
繞過UAC在滲透測試種有何作用?
在滲透測試中,一般我們要在目標機執行木馬程式時,為了防止目標使用者察覺,或者需要提權操作時可以進行繞過UAC的的限制來完成這些操作。
利用白名單程式來編寫程式來繞過UAC
在這裡我用到的程式是CompMgmtLauncher.exe,在windows/system32目錄,但步僅限於僅此程式能繞過UAC,各位師傅也可找其他白名單程式進行繞過。
這裡啟動CompMgmtLauncher.exe是不會彈UAC的,它的具體功能可以不用管,我們僅僅利用它繞過UAC而已。
啟動CompMgmtLauncher.exe實際上是通過登錄檔來啟動,我們可以利用登錄檔的資訊進行程式的編寫,這裡的登錄檔資訊在\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mscfile\shell\open\command裡面
也就是說,在這裡啟動的程式是不被UAC攔截的。我們可以修改想要執行的程式的路徑,進行繞過。
程式碼編寫
我們利用VS編寫程式來實現這一過程。
執行,可以實現
接下來我們嘗試是否可以上線CS,首先在CS上建立監聽:
生成exe木馬檔案
將生成的木馬上傳到目標機的C盤中
接著我們將程式碼中的執行檔案的路徑修改為木馬的路徑。
編譯成exe,在目標機中執行。
可以看到已經成功上線cs。