背景
在某次内部Red Team测试中,通过漏洞挖掘发现浏览器应用
存在逃逸漏洞:用户可通过浏览器打开文件夹并任意调用cmd、powershell等程序执行命令。最终通过使用AppLocker对用户进程访问进行控制,成功修复该漏洞。而该文就是基于该种攻击场景给出的修复方式。
漏洞情景
任意浏览器即可进行测试
1.堡垒机/云桌面提供浏览器供用户访问特定web系统,访问界面与本地打开浏览器类似。
2.通过右上角三颗点--》下载内容--》打开下载内容文件夹(或ctrl+s
)打开文件资源器。
3.在文件框输入cmd或powershell等应用即可完成浏览器逃逸。
问题分析
针对该问题,提出了以下两点思考:
浏览器应用的使用场景是什么?
用户主要需要通过跳板机访问某些生产环境的 Web 应用,而无需使用跳板机的其他功能,因此管理员开放了浏览器应用。
漏洞产生的原因是什么?
管理员仅对用户的 UI 界面进行了功能限制,但未对用户可以访问的底层进程进行有效控制,导致漏洞的出现。
故而开始寻求一款工具,能够根据用户配置对应的进程权限,而AppLocker则满足了这个需求。
基础知识
适应版本
版本 | 可以配置 | 可以强制执行 | 适用规则 | 备注 |
---|---|---|---|---|
Windows 10和Windows 11 | 是 | 是 | 封装的应用 可执行文件 Windows Installer 脚本 DLL | Windows 10版本 2004 及更新版本的所有版本都支持策略,5024351。 早于版本 2004 的 Windows 版本,包括 Windows Server 2019: + 仅企业版和服务器版本支持通过 GP 部署的策略。 + 所有版本都支持通过 MDM 部署的策略。 win10专业版实测不支持。 |
Windows Server 2019 Windows Server 2016 Windows Server 2012 R2 | 是 | 是 | 封装的应用可执行文Windows Installer脚本 DLL | |
Windows 8.1 专业版 | 是 | 否 | 不适用 | |
Windows 8.1 企业版 | 是 | 是 | 封装的应用可执行文Windows Installer脚本 DLL |
界面介绍
访问流程
win+R-->secpol.msc-->应用程序控制策略
相关控制项
可执行规则(Executable Rules)
作用:控制 .exe 和 .com 格式的可执行文件是否可以运行。
Windows 安装程序规则(Windows Installer Rules)
作用:控制 .msi、.msp 和 .mst 格式的 Windows 安装程序文件是否可以运行。
脚本规则(Script Rules)
作用:控制 .ps1、.bat、.cmd、.vbs 和 .js 等脚本文件是否可以运行。
封装应用规则(Packaged App Rules)
作用:控制 Microsoft Store 应用和 .appx 格式的封装应用是否可以运行。
规则优先级顺序
AppLocker 的规则按以下类别排序,并按顺序评估: