翻译Windows红队持久性技术-3

admin 2023年3月27日08:56:56评论26 views字数 4362阅读14分32秒阅读模式
翻译Windows红队持久性技术-3

ATT& CK持久性技术

持久性由对手用于在重新启动、更改凭据和其他可能切断其访问的中断之后保持对系统的访问的技术组成。用于持久化的技术包括任何访问、操作或配置更改,这些更改使它们能够在系统上保持其立足点,例如替换或劫持合法代码或添加启动代码。
获得初始立足点是不够的,您需要设置和维护对目标的持久访问。

翻译Windows红队持久性技术-3

持久性策略下概述的技术为我们提供了在目标系统上建立持久性的清晰而有条理的方法。
以下是我们将探索的关键技术和子技术列表:
  • 注册表运行项/启动文件夹
  • 计划任务/作业
  • 本地帐户
情景:
我们的目标是在我们获得最初的立足点之后建立对目标系统的持久性。在本例中,我们将了解如何使用Powershell-Empire在Windows目标上建立持久性。

PowerShell帝国的持久性
Empire提供多种方法和选项来帮助您保持对已入侵主机的访问权限。它们分为四个主要领域:PowerBreach内存中/非重启幸存后门,用户区重启选项,提升(管理员)重启选项,以及各种调试器触发器(想想粘键)。

要安装PowerShell-Empire,请遵循本系列第1部分指南3的安装PowerShell-Empire部分(Windows Red Team Exploitation Techniques)。如果您之前遵循本指南并使用PowerShell Empire设置了Linux VM,那么如果它仍然存在,您可以重新使用它。

PowerShell Empire持久化模块
以下是我们将在我们的参与度中使用的帝国持久性模块列表:

    1.用户区持久性-用于为非特权代理(用户区)设置重启持久性。

    2.提升的持久性-用于为具有管理权限的代理设置重新启动持久性。

    3.PowerBreach -这是一系列内存中的PowerShell后门,可用于设置持久性。

    PowerShell Empire模块是框架的一部分,用于隔离和分类功能,而PowerShell Empire插件提供了Empire工作所不需要的额外功能。
    如上所述,为了利用一些提升的持久性模块,我们需要获得一个具有Empire的高完整性代理。

    获得Empire的代理
    在帝国术语中,高诚信代理是具有提升特权的代理,为了获得高诚信代理,我们需要提升我们的特权。这可以通过使用各种Empire模块来实现,但是,您使用的权限升级技术类型将取决于目标运行的Windows版本。

    要在目标Windows 10系统上获取代理,请遵循本系列第1部分的指南3“Windows Red Team Exploitation Techniques”。如果您之前遵循了本指南,创建了Windows 10目标虚拟机,并在其上创建了代理,则可以重新使用该虚拟机(如果它仍然存在)。
    在我们的例子中,目标运行的是Windows 10,因此,我们可以利用Bypass UAC(Bypass User Access Control)帝国模块来获得高完整性代理。
    第一步是确定您的代理是否是一个高诚信的代理,这可以通过在Empire客户端与您的代理进行交互并列出代理信息来完成。这可以通过在Empire客户端中运行以下命令来完成:
     interact <AGENT-ID>/<NAME> info

    翻译Windows红队持久性技术-3

    正如前面的屏幕截图中突出显示的,我们的代理的“high_integrity”选项设置为“0”,这意味着我们的代理不是高完整性代理,我们没有管理权限。
    2、假设我们的目标运行的是Windows 10,我们可以利用“powershell/privesc/bypassuac”empire模块来获取提升的代理,这可以通过运行以下命令来完成:

    usemodule powershell/privesc/bypassuac
    3、选择模块后,需要设置相关的模块选项,如监听器和代理。这可以通过运行以下命令来完
    成:
    set Listener http 2 p 设置代理<AGENT-ID>/<NAME>
    4、设置相关模块选项后,我们可以在目标代理上执行模块,如果成功,我们应该从同一目标
    系统收到代理回调,但是,在这种情况下,它将是具有提升权限的高完整性代理,如下面的屏
    幕截图所示。

    翻译Windows红队持久性技术-3

    现在我们已经获得了一个高度完整性的代理,我们可以看看如何使用各种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>

    翻译Windows红队持久性技术-3

    我们将添加持久化stager的注册表路径将是Run注册表项,Run和RunOnce注册表项会在用
    户每次登录时运行程序。注册表项的数据值是一个不超过260个字符的命令行。通过添加以下
    形式的条目来注册要运行的程序 description-string=命令行.可以在一个键下写入多个
    条目。如果在任何特定的键下注册了多个程序,则这些程序运行的顺序是不确定的。

    3、在配置模块选项之后,我们可以通过在Empire客户端中运行以下命令来执行模块:

    execute

    4、我们可以通过运行Windows注册表查询命令来确定是否添加了注册表项:

    reg query HKCUSoftwareMicrosoftWindowsCurrentVersionRun

    5、如果模块成功运行,您应该看到我们在添加的模块选项中指定的注册表项,如以下屏幕截

    图所示。

    翻译Windows红队持久性技术-3

    现在,无论何时重新引导或引导目标系统,我们都应该收到来自目标系统的代理回调。

    通过计划任务的持久性

    我们还可以通过使用Empire模块“powershell/persistence/userland/schtasks”在
    目标系统上设置持久性。persistence/userland/* 模块允许从userland重新启动持久
    化(即不需要管理权限)。

    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

    如果成功,您应该会收到类似于下面屏幕截图所示的输出。

    翻译Windows红队持久性技术-3

    注意:您还可以使用persistence/elevated/*模块来允许从提升的上下文(即具有管理权限)进行reboot-persistence。如果指定了Li
    stener,则会自动生成Empire代理的staging代码,并将其用作要触发的脚本逻辑。如果
    指定了ExtFile(例如,如果您想生成一个PowerBreach后门并使用它),则该文件将被适
    当编码并使用。

    通过创建本地帐户实现持久化

    攻击者可能会创建本地帐户以保持对受害系统的访问。本地帐户是由组织配置的帐户,供用户、远程支持、服务使用,或用于在单个系统或服务上进行管理。有了足够的访问权限,就可以使用net user /add命令创建本地帐户。
    我们可以将本地用户添加到Windows目标上的管理组,作为维护对目标的访问的一种方法,
    这可以通过使用“powershell/persistence/misc/add_netuser”模块来完成。

    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


    4、如果成功,您应该会收到类似于下面屏幕截图所示的输出。

    翻译Windows红队持久性技术-3

    5、我们还可以通过在目标系统上运行net user命令来确认新用户帐户已添加,如下面的屏

    幕截图所示。

    翻译Windows红队持久性技术-3

    我们可以利用此用户帐户通过RDP等合法的身份验证协议对目标系统进行后门访问。

    持久代理
    现在我们已经在目标系统上设置了持久性,每当系统重新启动时,我们都应该收到一个代理回
    调,如下面的屏幕截图所示。

    翻译Windows红队持久性技术-3

    翻译Windows红队持久性技术-3

    原文始发于微信公众号(网络安全交流圈):翻译Windows红队持久性技术-3

    • 左青龙
    • 微信扫一扫
    • weinxin
    • 右白虎
    • 微信扫一扫
    • weinxin
    admin
    • 本文由 发表于 2023年3月27日08:56:56
    • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                     翻译Windows红队持久性技术-3http://cn-sec.com/archives/1629909.html

    发表评论

    匿名网友 填写信息