# Bypass McAfee Application Control——Code Execution
0x00 前言
=======
* * *
应用白名单(Application Whitelisting)是用来防止未认证程序运行的一个计算机管理实践。它的目的是保护计算机和网络不受应用伤害。 McAfee Application Control作为其中比较有代表性的产品,使用动态的信任模型,避免了单调的人工更新许可清单工作。由于企业会面临来自网络的大量未知软件,因此这款可以集中管理的解决方案有助于及时控制系统安全策略,满足企业的运营需求。
那么,我们就试试看,究竟能不能绕过最新版的McAfee Application Control 6.2.0(截至投稿日期)

0x01 简介
=======
* * *

McAfee Application Control对常见文件类型如exe、dll、bat作了限制,白名单外的这些文件均无法运行。所以这次的目标就是绕过限制来执行文件。
0x02 配置McAfee Application Control
=================================
* * *
操作系统:`win7x86`
### 1.下载McAfee Application Control
到[http://www.mcafee.com/us/products/application-control.aspx](http://www.mcafee.com/us/products/application-control.aspx)填写信息并安装
### 2.配置流程图

### 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
“`
如图

**3.重启服务Application Control service**
执行
“`
net stop scsrvc
net start scsrvc
“`
### 4.Create the whitelist
**1.创建白名单规则**
执行
“`
sadmin solidify
“`
需要等待很长一段时间,为当前系统中的所有文件创建规则,如果未添加许可证,该功能无法使用
**2.查看白名单状态**
执行
“`
sadmin status
“`
确保状态为Solidified
如图

### 5.Place Application Control in Enabled mode
**1.开启程序控制,禁止白名单以外的程序运行**
执行
“`
sadmin enable
“`
如图

重启系统,重启服务,执行
“`
net stop scsrvc
net start scsrvc
“`
**2.查看状态**
执行
“`
sadmin status
“`
确保McAfee Solidifier状态为Enabled
重启后如图

**3.测试**
新建一些测试文件
执行
“`
sadmin list-unsolidified
“`
查看白名单以外的程序
如图

执行
“`
sadmin scripts list
“`
查看禁止执行的文件类型
如图

分别执行exe、bat、dll,均被限制,如图


0x03 代码执行漏洞
===========
* * *
### 1.难题
无法执行自己的程序
### 2.分析
根据白名单系统的特点,绕过的思路如下:
1. 找到系统中的特定白名单程序
利用该程序执行代码
编写代码使其执行我们自己的程序
2. 找到系统中未被拦截的特定程序
利用该程序执行代码
编写代码使其执行我们自己的程序
0x04 绕过方法
=========
* * *
最终我们还是做到了:D
### 1.执行vbs
利用hta文件
> Tips:
>
> hta是HTML Applications的缩写,是利用HTML和Dynamic HTML(DHTML)开发应用程序
利用如下代码即可通过hta执行vbs
“`
“`
如图

然而并不完美,hta的界面会默认显示,所以我们需要进一步修改来隐藏hta的主界面
加入属性指定hta执行后最小化显示,完整的代码如下
“`
“`
保存为vbs.hta,执行如图

### 2.执行jscript
jscript未被McAfee Application Control限制,因此可以被利用
如下代码保存为calc.js
“`
var objShell = new ActiveXObject(“WScript.shell”);
objShell.run(‘calc.exe’);
“`
执行成功,如图

### 3.执行powershell
如果可以执行powershell代码,还担心绕不过McAfee Application Control吗?
当然,默认是肯定无法执行的,如图

**方法1:**
将ps1文件内容保存为script.txt,然后进入Powershell环境执行如下代码:
“`
Get-Content script.txt | iex
“`
但是如果txt中含有函数,会产生如下错误,需要更改脚本内容,错误如图

**方法2:**
利用hta可以执行vbs,再用vbs执行Powershell
使用如下代码并保存为vbs+ps.hta
“`
“`
执行后先调用vbs脚本,再执行Powershell命令
**方法3:**
利用快捷方式执行Powershell
右键新建一个快捷方式,填入如下代码,并保存为ps.lnk
“`
powershell -nop -windows hidden -E YwBhAGwAYwAuAGUAeABlAA==
“`
如图

运行快捷方式后执行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/](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的所有内容
如图

**方法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
“`
如图

**方法5:**
如果系统支持.net4.0,可以利用regsvcs
参考地址:
[https://gist.github.com/subTee/fb09ef511e592e6f7993](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的所有内容
如图

### 3、加载dll
利用Powershell
在之前的文章对通过Powershell执行exe有过详细介绍,对其中的ps1文件细节作简单修改保存为3-CodeExecution-dll.ps1
进入Powershell环境,然后在里面执行3-CodeExecution-dll.ps1的所有内容
如图

### 4、注入meterpreter
利用Powershell
在之前的文章对通过Powershell执行exe有过详细介绍,对其中的ps1文件细节作简单修改保存为4-Process Injection-Meterpreter.ps1
进入Powershell环境,然后在里面执行4-Process Injection-Meterpreter.ps1的所有内容
如图

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](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](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](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](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](http://subt0x10.blogspot.hk/2015/11/all-natural-organic-free-range.html)
5. [http://blog.didierstevens.com/2009/05/06/shellcode-2-vbscript/](http://blog.didierstevens.com/2009/05/06/shellcode-2-vbscript/)
6. [http://subt0x10.blogspot.hk/2015/08/application-whitelisting-bypasses-101.html](http://subt0x10.blogspot.hk/2015/08/application-whitelisting-bypasses-101.html)
7. [https://gist.github.com/subTee/a06d4ae23e2517566c52](https://gist.github.com/subTee/a06d4ae23e2517566c52)
8. [https://gist.github.com/subTee/fb09ef511e592e6f7993](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](https://social.technet.microsoft.com/Forums/scriptcenter/en-US/08cce717-38d0-4def-a5bf-e5b4a846a597/run-powershell-from-hta)
* * *
本文由三好学生原创并首发于乌云drops,转载请注明













请登录后查看评论内容