概述
此技术源自文章《Breaking Windows - Bypassing AppLocker When PowerShell and CMD Are Locked Down》,描述了在 Windows 10 主机上,当 AppLocker 策略明确阻止特定用户访问cmd.exe
、powershell.exe
和powershell_ise.exe
时,如何恢复命令执行能力。场景假设常规突破技术和替代 Shell 无效,目标是通过利用可信工具或未受限路径绕过限制。
场景描述
•操作系统:Windows 10•AppLocker 策略:阻止用户访问cmd.exe
、powershell.exe
和powershell_ise.exe
•目标:实现命令执行,绕过限制
方法 1 - 使用 cmd.dll 和 regsvr32/rundll32
•步骤:1.从 GitHub 下载cmd.dll
(链接:https://github.com/umsundu/win-applocker-breakout/blob/main/cmd.dll)。2.使用以下命令之一执行regsvr32.exe "C:UsersuserDownloadscmd.dl"rundll32.exe C:UsersuserDownloadscmd.dll,Control_RunDll•原理:regsvr32.exe
和rundll32.exe
是受信任的 Windows 二进制文件,未被默认 AppLocker 阻止,可加载并执行 DLL 中的代码(如DllRegisterServer
或Control_RunDll
),从而启动交互式 CMD Shell。
方法 2 - 通过运行命令启动 WMIC
•步骤:1.如果运行命令(Win + R)或 Cortana 搜索可用,输入:•wmic.exe
2.执行后进入 WMIC Shell 环境。•原理:wmic.exe
是未被阻止的合法工具,可提供有限的命令执行能力,作为后续操作的跳板。
方法 3 - 从 WMIC 启动 PowerShell
•步骤:1.在 WMIC Shell 中输入:process call create "powershell.exe"2.启动 PowerShell 进程。•原理:通过 WMIC 的进程创建功能间接调用被阻止的powershell.exe
,绕过 AppLocker 对直接执行的限制。
方法 4 - 使用 InstallUtil 执行代码
•步骤:1.使用以下命令执行自定义二进制文件:C:WindowsMicrosoft.NETFramework64v4.0.30319InstallUtil.exe /logfile= /LogToConsole=false /U C:pathtocustom.exe2.自定义二进制文件需包含恶意代码。•原理:InstallUtil.exe
是 .NET Framework 自带工具,默认未被阻止,可通过卸载(/U
)选项执行嵌入的代码。
技术细节
•依赖条件:•方法 1 需要用户有下载和执行 DLL 的权限。•方法 2 和 3 依赖wmic.exe
未被阻止。•方法 4 需 .NET Framework 安装且InstallUtil.exe
未受限。•规避机制:利用未被 AppLocker 默认规则阻止的可信二进制文件,加载外部代码或间接调用受限工具。
仅限交流学习使用,如您在使用本工具或代码的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。“如侵权请私聊公众号删文”。
原文始发于微信公众号(柠檬赏金猎人):绕过 AppLocker:当 PowerShell 和 CMD 被锁定时
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论