渗透后期命令控制(C2)框架工具

admin 2024年2月29日17:12:50评论38 views字数 4543阅读15分8秒阅读模式
渗透后期命令控制(C2)框架工具

1.工具介绍

PowerShell Empire是一款开源后渗透框架, 渗透测试人员和红队可以使用它来执行对手模拟,。在渗透阶段后期, 攻击者往往需要进行横向移动、提权等操作, 而该工具可以为使用者在后渗透阶段提供很大的便捷。

该框架专注于使用PowerShell脚本语言针对Windows环境进行攻击自动化和执行恶意命令。PowerShell Empire有三个主要组件:

  • Empire服务器 - 采用Python编写,包含添加不同功能的模块。

  • Empire客户端 - 与PowerShell Empire一起内置,支持远程访问Empire服务器。

  • GUI客户端 - 提供了一个名为Starkiller的图形界面,用于访问Empire服务器。

要使用PowerShell Empire,需要在目标系统上执行一个Stager。这个Stager是一个小段代码,它与Empire服务器通信并生成一个代理,提供对目标系统的远程访问。Empire客户端(或GUI客户端)允许连接到Empire服务器并通过内置命令或更复杂的Empire模块与该代理进行交互。

渗透后期命令控制(C2)框架工具

2.工具优势

使用代理、服务器和客户端来控制被入侵系统通常被称为命令和控制(C2)框架。PowerShell Empire是众多可用的C2框架之一。还有其他开源框架,如Slither,以及商业框架,如Cobalt Strike。这些工具在安全领域中用于在渗透测试或红队行动期间模拟对手,以便防御者能更好地保护自己免受攻击。

渗透测试人员和红队人员经常会选择使用C2框架而不是像Metasploit这样的渗透测试框架,原因如下:

  • C2框架专为后渗透设计,具有内置工具和横向移动技术。

  • C2框架擅长规避网络检测。具备众多内置功能,可以规避传统安全解决方案,在目标网络中很难被发现。

  • C2框架具有高度可定制性。许多框架允许自定义创建新的代理、调整C2配置文件,并添加新功能,用于模拟实战威胁。

  • C2框架通常具有报告功能,支持记录发现的安全弱点、执行的操作以及攻击的影响。

  • C2框架专为安全处理和加密客户数据而设计。

PowerShell Empire的优势:

  • 集成功能强大, 在渗透后期阶段能够在内存中自动化执行PowerShell脚本 ,难以被检测。

  • 专为渗透后期阶段设计,并具有用于提权、横向移动和数据外泄的内置工具。

  • 模块化架构设计,框架扩展能力强大。

  • 具备活跃的社区支持, 并提供持续的更新和新功能开发。

PowerShell Empire的缺点:

  • 以Windows为中心,而在Windows环境之外的功能有限。

  • 收集PowerShell日志(或完全阻止它)的现代安全解决方案严重影响了PowerShell Empire的功能。

  • 对于需要理解PowerShell脚本和框架功能的新用户来说,该框架存在一定的学习曲线。

渗透后期命令控制(C2)框架工具

3.工具安装

在Kali Linux上通过运行以下命令来实现:

sudo apt update && sudo apt upgrade

sudo apt install powershell-empire

渗透后期命令控制(C2)框架工具

接下来,运行以下命令sudo powershell-empire server来启动PowerShell Empire服务器。

渗透后期命令控制(C2)框架工具

另开一个终端, 运行命令:sudo powershell-empire client 连接到Empire客户端。

渗透后期命令控制(C2)框架工具

渗透后期命令控制(C2)框架工具

渗透后期命令控制(C2)框架工具

4.监听器配置

PowerShell Empire的Stagers连接到Empire服务器后, 会创建一个代理, 客户端与之交互并用来控制被入侵系统。为了允许Stagers连接到服务器, 还需要创建一个监听器以方便回连。这些监听器将监听来自Empire Stager的连接, 并在Stager连接时生成一个代理。

要在PowerShell Empire中设置监听器或要获取所有支持的监听器列表, 运行命令:use listener进行查看。

渗透后期命令控制(C2)框架工具

要使用http监听器, 输入命令: uselistener http,如图:

渗透后期命令控制(C2)框架工具

设置完成之后, 将在Empire服务器的80端口创建一个监听器, 并显示当前正在使用的所有选项。可以通过调整上面列出的选项来自定义该监听器, 如果要保存这些选项并启动监听器, 运行命令: execute

渗透后期命令控制(C2)框架工具

可以通过运行命令:options来重新检查监听器的选项, 如图:

渗透后期命令控制(C2)框架工具

执行命令back从监听器界面返回。然后,使用命令listeners查看Empire服务器上的所有活动监听器。

渗透后期命令控制(C2)框架工具

渗透后期命令控制(C2)框架工具

5.Stagers配置

监听器配置完成并运行之后, 需要接着创建一个Stager。Stager是一段代码, 它在目标机器上执行一个Payload, 该Payload会回连到监听器。该Payload包含生成代理所需的功能, 能够远程控制被入侵系统,同时启动加密密钥交换协议以保护C2通信。

PowerShell Empire包括几种不同类型的Stager:

  • 恶意脚本(.bat、.hta、.vbs等)

  • 动态链接库(DLL)

  • 可执行文件(.exe)

  • Shellcode

  • Microsoft Office宏

  • 用于Linux和macOS的跨平台Stager

要创建一个Stager, 需要运行命令:usestager, 如图:

渗透后期命令控制(C2)框架工具

要使用windows_launcher_bat Stager, 运行命令:usestager windows_launcher_bat, 这是一个自删除Stager,它使用批处理文件将shellcode注入到一个正在运行的进程中, 并在完成后删除自身。

渗透后期命令控制(C2)框架工具

当然也可以更改默认的Stager设置, 首先运行命令:options, 然后使用set命令, 后面跟要更改的选项, 如图:

渗透后期命令控制(C2)框架工具

渗透后期命令控制(C2)框架工具

6.Agents配置

在上面的配置中,完成了监听器和Stager的创建, 最后一步是在目标系统中执行创建的Stager, 一旦回连Empire服务器,将生成一个新的代理, 最终实现远程控制目标机器。

首先, 将创建的Stager传输到目标机器上, 运行execute命令, PowerShell Empire会告诉我们这个Stager被写到了哪里,如图:

渗透后期命令控制(C2)框架工具

将Stager传输到目标机器上并执行,如图:

渗透后期命令控制(C2)框架工具

回到PowerShell Empire, 运行agents命令列出当前的激活agent,如图:

渗透后期命令控制(C2)框架工具

可以看到Stager连接回来后创建了一个新的代理, 现在可以重命名一个复杂的名称, 如果要更改代理名称,可以运行命令: rename 旧名称  新名称,如图:

渗透后期命令控制(C2)框架工具

渗透后期命令控制(C2)框架工具

7.功能模块

要对目标机器执行操作,需要使用PowerShell Empire的模块。每个模块执行特定的功能,例如收集浏览器数据、转储密码、利用本地漏洞、建立持久性、执行侦察和横向移动。

PowerShell Empire拥有超过400个模块供使用,使用PowerShell、Python和C#编写。下面将介绍一些流行的模块。

渗透后期命令控制(C2)框架工具

现在通过运行命令usemodule powershell_privesc_getsystem来使用powershell_privesc_getsystem模块:

渗透后期命令控制(C2)框架工具

该模块可以将管理员权限提升为SYSTEM权限, 从而可以进行转储凭据、窃取Kerberos令牌并进行横向移动。使用命令:set Agent 7B3ZS8Y9设置要通过该模块执行的代理, 之后执行execute以运行该模块。注意, 这里必须使用代理的ID进行设置, 而不是名称。

渗透后期命令控制(C2)框架工具

要查看模块是否成功,键入interact 7B3SZS8Y9, 如图:

渗透后期命令控制(C2)框架工具

渗透后期命令控制(C2)框架工具

8.持久性

为了能够在重新启动或断开连接后继续控制目标系统, 可以使用提升的PowerShell Empire代理来安装持久性机制。使用powershell_persistence_elevated_schtasks模块如图:

渗透后期命令控制(C2)框架工具

通过命令set Agent 7B3ZS8Y6将代理设置为通过模块执行,并使用set Listener MyListener将持久性机制连接回的监听器设置为在PowerShell Empire服务器上设置的监听器。最后,运行execute命令, 如下图:

渗透后期命令控制(C2)框架工具

该模块在目标机器上创建一个每天在09:00运行并命名为“Updater”的计划任务。要查看模块是否成功,再次与代理进行交互。

渗透后期命令控制(C2)框架工具

可以看到模块成功运行。在这里可以通过编辑模块的配置选项来调整计划任务的名称、执行时间和在系统中隐藏的位置。这样可以更好地混淆持久性机制并规避网络检测。

渗透后期命令控制(C2)框架工具

9.转储凭据

要在PowerShell Empire中转储凭据,可以使用powershell_credentials_invoke_ntlmextract模块。

渗透后期命令控制(C2)框架工具

这个模块要设置的唯一选项是代理,使用set Agent 9WPM8CGY命令设置,然后输入execute,如图:

渗透后期命令控制(C2)框架工具

该模块提取存储在目标系统注册表中的本地用户帐户的NTLM哈希值。可以使用密码破解工具(如Hydra)破解这些提取的密码哈希,或者使用它们通过传递哈希攻击进行横向移动。

再次与代理进行交互, 查看模块是否成功, 如图:

渗透后期命令控制(C2)框架工具

该模块成功并显示了几个用户的NTLM哈希值。还可以看到几个Empire代理已断开连接并停止连接回监听器。已断开连接的代理以红色显示。

可以使用PowerShell Empire模块转储其他凭据,例如Kerberos票据、访问令牌、浏览器数据等等。以下是可以利用的其他一些模块。

模块种类 模块描述 举例
枚举 执行侦察和信息收集 csharp/SharpSploit.Enumeration/GetDomainUser
信息掌控 感知目标信息 powershell/situational_awareness/host/hostrecon
活动目录 枚举活动目录环境 python/situational_awareness/network/active_directory/get_computers
权限提升 执行或扫描特权提升 powershell/privesc/bypassuac
凭据 窃取凭据 powershell/credentials/mimikatz/extract_tickets
持久性 维持对系统的访问 powershell/persistence/userland/registry
横向移动 执行命令或移动到远程系统 powershell/lateral_movement/invoke_psexec
代码执行 在目标系统中执行自定义代码 powershell/code_execution/invoke_dllinjection
收集 从系统中收集数据 powershell/collection/keylogger
管理 用于管理系统 powershell/management/restart
开发 用于利用已知的本地漏洞(例如 ZeroLogon、PrintNightmare、EternalBlue 等) powershell/privesc/zerologon
渗透后期命令控制(C2)框架工具

10.总结

总的来说, PowerShell Empire是一个复杂的后利用框架, 擅长在Windows环境中执行后利用活动。PowerShell Empire框架主要包括三大组件:Empire服务器、Empire客户端和Starkiller GUI工具。通过启动Listener、创建和执行Stager以及通过Agent和PowerShell Empire的Modules在目标系统中执行操作。

原文始发于微信公众号(二进制空间安全):渗透后期命令控制(C2)框架工具

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月29日17:12:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透后期命令控制(C2)框架工具https://cn-sec.com/archives/2537076.html

发表评论

匿名网友 填写信息