使用Powershell Bypass UAC
0x00 簡介
UAC(User Account Control,用戶帳戶控制)是微軟為提高系統安全而在Windows Vista中引入的新技術,它要求用戶在執行可能會影響計算機運行的操作或執行更改影響其他用戶的設置的操作之前,提供許可權或管理員?密碼。也就是說一旦用戶允許啟動的應用程序通過UAC驗證,那麼這個程序也就有了管理員許可權。許多情況下,我們獲取了反彈的shell但是由於UAC這個煩人的東西並不能獲取最高的許可權,今天主要介紹使用powershell來bypass uac從而獲取更高的許可權。
0x01 Bypass UAC
通常繞過UAC的方法如下:
step1: 複製DLL文件到C:WindowsSystem32sysprep目錄,DLL的名字取決於操作系統版本,比如Windows7為CRYPTBASE.dll,Windows8為shcore.dll。
step2:從上面的目錄執行Sysprep.exe。他將載入上面的DLL,完成許可權的提升。
具體dll名及利用exe如下表:
總結了一下突破Windows UAC的方式主要有以下幾種:
1、使用IFileOperation COM介面;
2、使用Wusa.exe的extract選項;
3、遠程注入SHELLCODE 到傀儡進程;
4、DLL劫持,劫持系統的DLL文件;
5、直接提權過UAC;
6、MS15-076(感覺上也可以用到) POC。
部分方式需要我們將DLL文件拷貝到相應的目錄,這裡拿Sysprep來做測試,要往這個目錄拷貝文件需要管理員的許可權,直接copy是不可以的,本文介紹的腳本使用了第二種方式,下面是一個測試。
使用copy:
使用Wusa.exe:
可以看到使用wusa成功拷貝。
0x02 Invoke-PsUACme
Invoke-PsUACme 是nishang的一個腳本,該腳本使用了列表中的幾個方式來進行bypass UAC,目前支持Win7 ,Win8,由於Win10的wusa extract選項不在受支持,所以此腳本並不適用於Win10。
該腳本的所使用的DLL來自於開源項目UACME。nishang作者對代碼進行了一下簡單地修改,這裡就不詳細說了。
這裡介紹一下腳本的使用,載入腳本:
查看說明:
主要參數說明:Payload為自定義要執行的程序;method為bypass的方式,包括Sysprep,OOBE,ActionQueue等幾種;Verbose顯示程序運行過程;CustomDLL64,CustomDLL32可以指定自定義DLL。
執行:
執行某個自定義程序需要在payload出填寫絕對路徑。
自定義DLL:
0x03 能做什麼
1)通過bypass UAC我們可以通過普通的cmd抓到管理員密碼。
普通cmd運行在線抓明文:
bypass UAC以後:
2.讓meterpreter獲得更高的許可權。
生成payload:
將輸出文件保存為psh.ps1
msf開啟監聽:
普通cmd執行:
bypass UAC 以後執行:
0x04 Win10 Bypass UAC
我修改了一個使用遠程注入方式Bypass UAC的powersell腳本以支持Win10,腳本地址:戳我
使用方式與nishang不同,並沒有回顯,使用win10進行測試:
除了上面的腳本,UACME也很好的支持win10,使用方式為:
0x05 小結
繞過UAC能獲取更高的許可權,你還發愁抓密碼么?
文章出處:Evi1cg"s blog
你可能喜歡
※針對某mysql批量提權工具的後門分析
※Drupal遠程代碼執行漏洞分析
TAG:黑白之道 |