如何以管理員身份繞過AppLocker
我認為,如果你是啟用了AppLocker(“應用程式控制策略”,是Windows 7系統中新增加的一項安全功能)的主機上的管理員,那麼目前有兩種不同技術可以用來繞過AppLocker。其中,使用GUI的第一種技術在我原先發布的一條推文中曾簡單討論過。
這篇文章的目標是詳細討論這個曾經提到的技術,同時也為你提供另一種以前沒有人提到過的繞過技術。
需要注意的是,在這些繞過技術示例中,集中定義的AppLocker可執行如下規則(預設規則,沒有管理規則)。
其餘的規則,則使用預設的AppLocker規則定義(* under Windows 以及 * under ProgramFiles)。
使用GUI方式新增自定義規則
如果你是主機上的本地管理員,則你可以順利地新增自定義規則,基本不會遇到什麼困難。有兩種方法可以做到這一點,其中GUI是在主機上啟動gpedit.msc並新增它們,就像在此 GIF 中所示的那樣。
利用該方法,你要做的就是在該主機上本地新增AppLocker規則。當AppLocker應用規則時,它會將中央組策略中定義的規則與主機上本地策略中定義的規則結合起來。不過,這種結合的效果並不理想,所以我建議你可以考慮一下新增 此項 來刪除任何新增的本地規則。
在不使用GUI的方式下,新增自定義的規則
現在要介紹的這種方法非常隱蔽,由於使用GUI方式並不是唯一一種選擇,特別是當你使用shell時。所以這裡我將介紹另一種方法:當AppLocker(應用程式標識服務)處理組策略時,它將“AppLocker規則”檔案放在c:\windows\system32\ AppLocker中。當你執行檔案時,AppLocker將使用這些檔案來確定是否應該阻止這些檔案。
另一種方法是在c:\windows\system32\ AppLocker中操作AppLocker放在磁碟上的檔案。為了做到這一點,我們首先需要生成一個萬用字元規則,稍後我們將把它植入我們要進行攻擊的裝置中,這個 GIF 就顯示了整個過程。
所以我要做的基本上只是在一臺獨立的Windows 10企業計算機上預先建立一個規則檔案,如果你不想自己生成規則檔案,可以在 這裡 下載。
現在,我們就得到了規則檔案,讓我們繼續將其移植到受保護的客戶端上(記住,你需要是管理員)。為此,你還需要重新啟動客戶端。目前,我還沒有找到一種神奇的服務,可以讓它在不啟動的情況下停止並開始工作。你需要做的就是複製Exe.AppLocker檔案並替換 c:\windows\system32\applocker 中的檔案,然後重新啟動,這個 GIF 就顯示了整個過程。
對於攻擊者來說,這樣做的好處是它不會出現在客戶端的GUI中,所以你必須手動檢查c:\windows\system32\applocker下的檔案來找到它。
一旦執行GPUpdate/Force或者有人更改了中央組策略(新增或刪除AppLocker規則),你所放置的檔案就會被替換。
在我寫完這篇部落格後,我還意識到你也可以刪除規則檔案,從而達到相同的效果,但是如果你是覆蓋規則檔案而不是刪除規則檔案,則可能會更難檢測到。
如果你需要在每次更新組策略時都重新應用組策略,那麼你可以看看這篇關於如何停止這種行為的 部落格文章 。
如何監測這種繞過行為
如果你監測c:\windows\system32\applocker下檔案的更改,可以檢測到這一情況。據我所知,只有在組策略集中更改或使用gpedit新增自己的本地規則時,才會更新這些檔案。另外,這些檔案上的時間戳也應該相同。如果有變化,它可能表明有人在那裡放置了一個檔案來繞過AppLocker。另一個跡象是,這些檔案有一部分會被刪除。