Empire Bootstrapping v2 – 如何预自动化所有流程!
Kent Ickler //
注意:本文所述技术可能已过时,但仍可作为学习现代工具自动化集成的参考案例。
你是否需要实现命令控制(C2)框架的自动化?我们的目标是缩短建立有效控制通道的重复性任务耗时。PowerShell Empire虽然提供API,但原生不支持通过命令行参数预定义监听器。基于Carrie先前的工作,我们通过Screen会话实现了无人值守的自动化部署方案。
Screen技术解析
Screen工具允许在Linux系统中创建持久化会话。通过将Empire进程注入新Screen会话而不直接附加,可实现后台持续运行。关键特性在于能从原会话向新会话发送命令,使脚本能模拟人工交互。
无人值守部署方案
以下脚本实现:
- 创建新Screen会话加载Empire
- 自动清除现有监听器
- 创建指定端口的新监听器
- 可选附加会话控制
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基础设施的部署效率。