Empire自动化引导v2 - 如何实现全流程预自动化

本文详细解析如何通过Screen会话实现PowerShell Empire的无人值守自动化部署,包括监听器配置脚本编写、后台会话管理等高级红队操作技术,可节省大量重复性工作耗时。

Empire Bootstrapping v2 – 如何预自动化所有流程!

Kent Ickler //
注意:本文所述技术可能已过时,但仍可作为学习现代工具自动化集成的参考案例。

你是否需要实现命令控制(C2)框架的自动化?我们的目标是缩短建立有效控制通道的重复性任务耗时。PowerShell Empire虽然提供API,但原生不支持通过命令行参数预定义监听器。基于Carrie先前的工作,我们通过Screen会话实现了无人值守的自动化部署方案。

Screen技术解析

Screen工具允许在Linux系统中创建持久化会话。通过将Empire进程注入新Screen会话而不直接附加,可实现后台持续运行。关键特性在于能从原会话向新会话发送命令,使脚本能模拟人工交互。

无人值守部署方案

以下脚本实现:

  1. 创建新Screen会话加载Empire
  2. 自动清除现有监听器
  3. 创建指定端口的新监听器
  4. 可选附加会话控制
1
2
3
4
# 需要sudo权限运行Empire
sudo -s
chmod +x Empire_Listener_443.sh
./Empire_Listener_443.sh

核心脚本Empire_Listener_443.sh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# 清除现有Empire会话
screen -X -S Empire Quit

# 启动Empire并等待初始化
cd /directory/to/Empire
screen -S Empire -d -m /directory/to/Empire/empire
sleep 5

# 发送自动化命令序列
screen -S Empire -X stuff 'listeners\r'
screen -S Empire -X stuff 'kill all\r'
screen -S Empire -X stuff 'y\r'
screen -S Empire -X stuff 'set Name OurListener\r'
screen -S Empire -X stuff 'set Port 443\r'
screen -S Empire -X stuff 'execute\r'
screen -S Empire -X stuff 'back\r'
screen -S Empire -X stuff 'listeners\r'

echo "***使用'screen -S Empire -R'连接会话***"

交互式增强版本

支持通过命令行参数动态配置监听器:

1
./EmpListener.sh [监听器名称] [端口号]

改进版EmpListener.sh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
screen -X -S Empire Quit
cd /directory/to/Empire
screen -S Empire -d -m /directory/to/Empire/empire
sleep 5

screen -S Empire -X stuff 'listeners\r'
screen -S Empire -X stuff 'kill all\r'
screen -S Empire -X stuff 'y\r'
screen -S Empire -X stuff 'set Name '$1'\r'
screen -S Empire -X stuff 'set Port '$2'\r'
screen -S Empire -X stuff 'execute\r'
screen -S Empire -X stuff 'back\r'
screen -S Empire -X stuff 'listeners\r'

# 可选附加会话
screen -S Empire -R

当退出Empire实例时,关联的Screen会话会自动销毁,返回原始shell环境。该方案显著提升了红队操作中C2基础设施的部署效率。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计