繞過AppLocker系列之CreateRestrictedToken的利用
大多數時候,繞過AppLocker都會利用可信的Microsoft二進位文件或者配置錯誤的策略進行代碼執行,這些方法都比較簡單。但是,我們還有一種通過利用架構設計的漏洞來繞過SPR或AppLocker。特別是在Windows 7和Windows 2008 Server環境中,可以濫用API函數(CreateRestrictedToken)來實現繞過。微軟後來發布了一個補丁來解決這個問題。
從命令提示符可以輕易的識別出是否缺少這個補丁:
wmic.exe qfe list | findstr.exe 2532445
AppLocker修補程序丟失
因為沒有輸出任何內容,所以這表示KB2532445補丁並沒有安裝。直接嘗試執行不受信任的二進位文件就會因為AppLocker的限制而運行失敗。
有一個由Michael Bailey開發的PowerShell 腳本,它通過使用SANDBOX_INERT標誌來利用API函數CreateRestrictedToken,以便可以允許執行二進位文件。由於該標誌禁用了所有規則集合的檢查,因此可以繞過AppLocker和軟體限制策略。這個漏洞最初是由Didier Stevens發現的,並且在他的博客中進行了完整的記錄。
AppLocker Bypass – CreateRestrictedToken
為什麼會發生這樣的情況呢?讓我們來看看 MSDN 是如何定義CreateRestrictedToken這個 API函數的。關於CreateRestrictedToken 函數的SANDBOX_INERT標誌,MSDN 有如下描述:
如果使用此值,系統將不會檢查AppLocker規則或應用軟體限制策略。對於AppLocker,此標誌將禁用所有這四個規則集的檢查:可執行文件,Windows Installer,腳本和DLL。
在安裝過程中創建必須運行提取的DLL的安裝程序時,請在SaferComputeTokenFromLevel函數中使用SAFER_TOKEN_MAKE_INERT標誌。
我寫了一個小的應用程序來進行測試:
HANDLE hToken;HANDLE hNewToken;PROCESS_INFORMATION sPI;STARTUPINFO sSI; if (OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &hToken)){ if (CreateRestrictedToken(hToken, SANDBOX_INERT, 0, NULL, 0, NULL, 0, NULL, &hNewToken)) { memset(&sSI, 0, sizeof(sSI)); sSI.cb = sizeof(sSI); if (CreateProcessAsUser(hNewToken, L"c:testDialog42.exe", NULL, NULL, NULL, TRUE, 0, NULL, NULL, &sSI, &sPI)) { puts("process created"); }}
這個程序會啟動另外一個程序——Dialog42.exe,我已經使用白名單配置了SRP,但是Dialog42.exe並不在白名單列表中:
但是,當我在我的應用程序中使用SANDBOX_INERT標誌啟動Dialog42.exe時,就可以正常運行。
參考
https://blog.didierstevens.com/2011/01/25/circumventing-srp-and-applocker-to-create-a-new-process-by-design/
https://support.microsoft.com/en-us/help/2532445/you-can-circumvent-applocker-rules-by-using-an-office-macro-on-a-compu
http://baileysoriginalirishtech.blogspot.co.uk/2015/06/applocker-schmapplocker.html
https://github.com/strictlymike/Invoke-SchmappLocker/blob/master/Invoke-SchmappLocker.ps1
點擊展開全文
※Fuzz 私有協議的經驗分享
※智慧城市真的安全嗎?看看這款APP的分析報告
※如何對有雙因子認證站點進行釣魚攻擊?
※BlackHat 2017熱點之DefPloreX-大規模網路犯罪取證的機器學習工具
TAG:嘶吼RoarTalk |
※powershell中使用ReflectivePEInjection繞過殺毒
※使用Burpsuite擴展Hackvertor繞過WAF並解密XOR
※CobaltStrike-用「混淆」繞過Windows防火牆
※思科Elastic Services Controller服務埠存在身份繞過漏洞,請儘快升級更新
※手把手教你使用PowerShell繞過AppLocker
※如何利用PowerShell診斷腳本執行命令並繞過AppLocker
※如何繞過csrf保護,並在burp suite中使用intruder?
※利用metasploit繞過UAC的5種方式
※繞過nftables/PacketFilter防火牆過濾規則傳輸ICMP/ICMPv6數據包的漏洞詳解(上)
※WhatsApp發現隱私漏洞,允許用戶繞過iOS端的Touch ID或Face ID
※XSS繞過filter高級技術 part1
※Cellebrite可繞過運行iOS 11設備的安全防護,包括當前的iPhone X
※劫持者可以繞過 Active Directory 控制機制
※Phantom-Evasion:反病毒軟體繞過測試工具
※Facebook、谷歌繞過APP Store收集用戶信息,蘋果竟放小扎一馬
※使用AutoHotkey和Excel中嵌入的惡意腳本來繞過檢測
※安全公司Certfa Lab指出,黑客可繞過雙重認證盜取Gmail或Yahoo賬戶
※Browlock flies使用完全混淆技術繞過檢測
※蘋果撤銷 Facebook 開發者資質,因繞過 App Store 收集用戶隱私
※ASWCrypter:該工具生成的Payload可以繞過目前所有的反病毒產品