freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

攻击复现 —— 利用Regasm.exe与Regsvcs.exe绕过AppLocker
FreeBuf_322493 2019-10-18 09:55:07 281050

AppLocker 

AppLocker也被称作“应用程序控制策略”,是Windows系统下的一项安全功能,来帮助管理员对主机系统进行一定程度的系统保护。通过合理定义规则,管理员可以决定哪些程序、安装程序、脚本可以在计算机上被运行,可以被定义的规则包括但不限于用户名名称、发布者名称、产品名称、文件路径、文件哈希、文件版本。 

复现环境

攻击机:Kali,IP 192.168.195.154

受害机:Windows 7 32位,IP 192.168.195.145,管理员权限用户root,普通权限用户test

工具:Metasploit、Ollydbg

文件:calc_signed.dll、calc_unsigned.dll、msf_signed.dll、msf_unsigned.dll

图片1.png

复现流程

首先在受害机上进入本地服务,将Application Identity服务启动,该服务为AppLocker功能生效的先决条件。

图片2.png

在攻击机上使用msfvenom生成C#格式的payload,该payload运行后将会连接攻击机的指定端口。

图片3.png

网站“https://github.com/3gstudent/Bypass-McAfee-Application-Control--Code-Execution/blob/master/regsvcs.cs”可以下载用以生成恶意dll的cs文件,C:\Windows\Microsoft.NET\Framework\v4.0.30319文件夹中的csc.exe程序可以将cs文件生成为dll文件。在本文中,我们将使用calc.cs文件及msf.cs文件作为生成恶意dll的cs文件。其中,calc.cs文件即为从网站上下载的regsvcs.cs文件,msf.cs文件只需将calc.cs文件中shellcode部分替换为先前生成的payload即可。

图片4.png

csc.exe将使用calc.cs与msf.cs文件生成4个不同的dll文件,分别为calc_signed.dll、calc_unsigned.dll、msf_signed.dll、msf_unsigned.dll。其中calc_signed.dll为被签名的dll文件,calc_unsigned.dll为未被签名的dll文件,功能均为弹出一个计算器。msf_signed.dll为被签名的dll文件,msf_unsigned.dll为未被签名的dll文件,功能均为打开一个回连msf攻击机的会话。生成这4个dll的具体指令见下图。

图片5.png

Regasm.exe与Regsvcs.exe均可用来进行AppLocker绕过,但regsvcs.exe加载或卸载指定dll时该dll必须签名才可执行成功,否则将会出现下图中的报错。

图片6.png

进行签名所需的程序在C:\Program Files\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools文件夹中,可使用下图中的命令生成密钥对文件。

图片7.png

进行绕过前,我们将设置AppLocker下文件的通过规则,该规则可在“控制面板-管理工具-本地安全策略-应用程序控制策略-AppLocker”中进行设置。在本例中,我们设置用户名root允许或拒绝执行calc.exe程序。如下图所示,在允许执行时,可以成功弹出计算器。

图片8.png

在拒绝执行时,计算器无法成功弹出。因此可知,任意使用生成的dll来启动新程序的行为将无法绕过AppLocker规则。因此,我们将使用不会启动新程序的dll来进行后续测试。由于无新程序启动,则无法在Applocker中设置阻止规则。

图片9.png

如下图所示,当msf_signed.dll文件被尝试加载时,进行网络通信回连行为的是Regsvcs.exe进程。

图片10.png图片11.png

在运行上图指令时,在攻击端打开msfconsole开启一个对4444端口的监听,随后可以看见成功获取shell。由下图可知,获取的shell可用来控制受害机。

图片12.png

由于Regasm.exe与Regsvcs.exe进行dll注册时需要管理员权限,因此在普通权限用户test下测试时,我们将使用另一个指令。

图片13.png

Regasm.exe与Regsvcs.exe进行dll卸载时普通权限即可,因此,我们使用下图中的指令尝试打开计算器与回连msf攻击机。经过测试。Regasm.exe可成功完成AppLocker绕过。

图片14.png图片15.png

在攻击机上可以看到,当前的用户权限为普通用户test。

图片16.png

因此,即使受害机处于普通权限下,我们依然可以在攻击机上对受害机进行恶意操作,如下载文件、截屏、获取系统信息、执行指定程序等。

图片17.png图片18.png

我们也可以在shell中移动至普通用户有权限的位置(如桌面),进行创建文件夹并上传恶意文件等恶意操作。

图片19.png

最后,我们对被注册的恶意msf_signed.dll进行简要的逆向分析,来了解该dll注册时回连攻击机的过程。将RegAsm.exe使用OD打开并添加msf_signed.dll为启动参数,设置中断于新dll的加载,随后依次加载直至加载msf_signed.dll。

图片20.png

进入新线程后,该dll将尝试使用connect()函数连接ip 192.168.195.154。

图片21.png

连接成功后,该dll将尝试使用recv()函数进行数据接收。

图片22.png图片23.png

准备数据接收时,该dll将使用VirtualAlloc()函数分配内存空间,将即将接收的数据存储,由下图可知接收的数据为一个PE文件。

图片24.png图片25.png

随后该dll将进入该PE文件所在的内存空间,该文件为msf完成连接后进行控制操作的核心代码,攻击机可通过该段代码将攻击指令下发至受害机,并从受害机获取相应的信息。

图片26.png

防护措施

1、开启AppLocker功能,合理设置规则,阻止恶意可执行文件的运行;

2、不轻易注册来历不明的dll;

3、不轻易运行来历不明的软件;

4、及时更新病毒库,查杀主机中的恶意病毒;

5、推荐使用“铁穹高级持续性威胁系统”(简称”铁穹“)发现潜在的攻击行为。“铁穹”是东巽科技技术有限公司结合流量检测与沙箱分析功能,用以检测主机内潜在威胁行为的系统。








参考:

https://pentestlab.blog/2017/05/19/applocker-bypass-regasm-and-regsvcs/


# windows # applocker # 攻击复现
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 FreeBuf_322493 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
东巽科技2046Lab
FreeBuf_322493 LV.3
这家伙太懒了,还未填写个人描述!
  • 22 文章数
  • 9 关注者
勒索黑客攻击美关键基础设施是大义凛然?
2021-05-12
战法分享:快速发现APT攻击事件及所属组织研判
2021-05-10
塔防方式阻击鱼叉钓鱼攻击
2021-05-07
文章目录