Bypass McAfee Application ControlWrite&Read Protection

  • A+
所属分类:安全文章
摘要

上篇我们成功在McAfee Application Control保护的系统上实现了代码执行,而McAfee Application Control的其他保护功能同样很强大,其中对文件读写操作的拦截很有特色,这一次我们接着试试能不能绕过:D

0x00 前言


上篇我们成功在McAfee Application Control保护的系统上实现了代码执行,而McAfee Application Control的其他保护功能同样很强大,其中对文件读写操作的拦截很有特色,这一次我们接着试试能不能绕过:D

Bypass McAfee Application ControlWrite&Read Protection

0x01 简介


当McAfee Application Control开启了文件写入保护和读取保护,可以阻止任何对受保护文件的修改,具体保护细节如图

Bypass McAfee Application ControlWrite&Read Protection

简单的说,如果开启了写入保护,那么对文件的任何修改操作都会被阻止并被日志记录。

如果开启了读取保护,那么无法读取受保护文件的内容。

可是深入了解之后,有趣的事情发生了。

0x02 配置Write Protection


操作系统:win7x86

首先学习一下如何设置以及使用文件写入保护。

写入保护可以指定文件夹、文件或者是驱动文件

测试使用指定文件夹c:/test/write

里面包含test.txt

1.指定保护路径

sadmin write-protect -i c:/test/write 

2.查看保护路径

sadmin write-protect -l 

如图Bypass McAfee Application ControlWrite&Read Protection

随后我们尝试在c:/test/write下新建文件、删除文件、修改文件,均失败

如图Bypass McAfee Application ControlWrite&Read Protection

Bypass McAfee Application ControlWrite&Read Protection

3.删除保护路径

sadmin write-protect -r c:/test/write 

0x03 配置Read Protection


接着测试读取保护

测试使用指定文件夹c:/test/read

下面包含test.txt,里面保存有加密信息

注:
写入保护默认开启,而读取保护默认关闭,所以先要开启读取保护功能

1.开启读取保护功能

sadmin features enable deny-read 

2.指定读取保护路径:

sadmin read-protect i c:/test/read 

3.查看读取保护路径:

sadmin read-protect -l 

如图Bypass McAfee Application ControlWrite&Read Protection

尝试读取文件内容,失败,如图Bypass McAfee Application ControlWrite&Read Protection

0x04 权限分配漏洞


通过以上的测试可以发现:

  • 写入保护阻止用户对文件进行写入操作
  • 读取保护阻止用户对文件进行读取操作

但是:

McAfee Application Control会默认设定白名单进程用来为系统进行更新

所以这些进程都具有操作文件的权限

如果你仔细阅读了上一篇文章并能加以思考

那么其中的漏洞也显而易见

如果能够利用白名单进程执行文件读写操作,那么自然能够绕过防护

0x05 漏洞利用


利用思路:

  • 查找默认白名单进程
  • 找到可利用进程
  • 使用进程注入
  • 操作文件

1.查看白名单进程列表

执行

sadmin updaters list 

如图Bypass McAfee Application ControlWrite&Read Protection

Bypass McAfee Application ControlWrite&Read Protection

Bypass McAfee Application ControlWrite&Read Protection

2.找到可被利用进程

以下是我找到的比较通用并能被利用的进程:

  • GoogleUpdate.exe
  • scsrvc.exe
  • spoolsv.exe

3.进程注入

选取GoogleUpdate.exe

使用《Powershell tricks::Code Execution & Process Injection》提到的Process Injection-Meterpreter.ps1

可以在powershell的环境下粘贴代码执行

向GoogleUpdate.exe进程注入meterpreter

如图Bypass McAfee Application ControlWrite&Read Protection

注:
注入系统权限的进程需要管理员权限

如图Bypass McAfee Application ControlWrite&Read Protection

弹回meterpreter

发现没有直接注入到GoogleUpdate.exe

接着进程注入,如图Bypass McAfee Application ControlWrite&Read Protection

成功注入到GoogleUpdate.exe,理论上已经有了权限可以操作受保护的文件

我们接着测试,如图Bypass McAfee Application ControlWrite&Read Protection

成功修改文件和删除文件

接着测试读取文件,如图Bypass McAfee Application ControlWrite&Read Protection

成功读取被保护的内容

注: 通过进程注入获得的权限可以用来执行脚本

0x06 补充


1.设置密码

McAfee Application Control可对操作设置密码,增强其安全

设置密码:

sadmin passwd  

去掉密码:

sadmin passwd -d 

密码文件保存在C:/Program Files/McAfee/Solidcore/passwd

2.获取密码文件

正常情况下C:/Program Files/McAfee/Solidcore/passwd无法被读取、无法被复制,即使进程注入到白名单进程内也无法实现,如图

Bypass McAfee Application ControlWrite&Read Protection

但是我们依然有办法:D

这里可以借鉴导出域控ntds.dit文件的方法,使用NinjaCopy.ps1

下载链接:
https://github.com/3gstudent/NinjaCopy

指定路径为:

Invoke-NinjaCopy -Path "C:/Program Files/McAfee/Solidcore/passwd" -LocalDestination "C:/test/trust/passwd" 

管理员权限运行NinjaCopy.ps1,成功复制passwd文件

如图Bypass McAfee Application ControlWrite&Read Protection

3.解析密码文件

Bypass McAfee Application ControlWrite&Read Protection上图为passwd的内容

查看资料得知此处使用的是sha-512加密(mcafee-application-control-product-guide/Page68)

如图Bypass McAfee Application ControlWrite&Read Protection

推断cryptographic salt88daf0b4-790e-4eae-a926-b08788fbd1cb

http://www.convertstring.com/Hash/SHA512验证推断

输入cryptographic salt和明文对比测试

如图Bypass McAfee Application ControlWrite&Read Protection

passwd中的内容和我们自己加密的密文相同,判断正确

4.信任路径

McAfee Application Control为方便使用,可以指定信任路径,在里面的所有操作均不会被拦截

如果McAfee Application Control未设置密码或者密码被获得,可以建立一个信任路径,里面的操作均不会被拦截

建立:

sadmin trusted -i c:/test/trusted 

查看:

sadmin trusted -l 

如图程序成功执行Bypass McAfee Application ControlWrite&Read Protection

5.日志

日志默认被保存在C:/ProgramData/McAfee/Solidcore/Logs

通过进程注入获得的权限可以修改此文件

6.防护建议

  • 为McAfee Application Control设置强密码
  • 禁用powershell
  • 禁用hta、js
  • 禁用信任路径
  • 白名单+黑名单结合使用

0x07 小结


“未知攻 焉知防”,即使做到以上几点,我相信依然有绕过的方法:)

本文由三好学生原创并首发于乌云drops,转载请注明

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: