自愈型 Gossip Mesh C2,具备辅助对等点发现、跨平台 BOF 执行与可脚本化代理。
自愈式 Gossip 网格 C2,支持辅助对等节点发现、跨平台 BOF 执行和可脚本化代理。
emp3r0r 是一个高级的零信任后渗透利用框架和命令与控制(C2)系统,专为 Linux 和 Windows 目标环境设计。emp3r0r 从零开始构建,适用于高安全性环境,结合了自主 gossip 网格组网、无文件纯内存执行、跨平台 BOF 加载、代理间文件传输和内存中可脚本化代理,提供卓越的隐蔽性、操作控制和操作安全(OPSEC)。
emp3r0r 代理内置 Starlark 脚本引擎(一种完全用 Go 实现的 Python 方言)。脚本以无文件方式在内存中执行,无需目标系统安装 Python、Bash 或 PowerShell。
/bin/sh、powershell.exe),也不依赖已安装的运行时。read_file、write_file、list_dir、mkdir、remove、exists)、HTTP 网络请求(http_get、http_post)、命令执行(exec_cmd)和哈希计算(crypto_hash)等函数。win_call、win_alloc、、),无需编译原生 C 代码。为何重要: 传统 C2 脚本模块依赖主机解释器或进程派生,会留下大量磁盘或命令行执行痕迹。emp3r0r 的可脚本化代理完全在内存中执行复杂逻辑,并可与系统原生交互。
emp3r0r 在代理注册时强制执行 信任首次使用(TOFU) ,并对 UUID 和公钥进行严格绑定。
forget_agent 明确授权。为何重要: 防止会话劫持、代理克隆以及跨操作环境的静默身份漂移。
所有 C2 和对等通信均强制执行 ECDH 密钥交换,并使用 HKDF 派生的会话密钥。
为何重要: 防止对截获的网络流量进行事后解密。
处于出口受限或隔离网段中的代理可自主发现对等节点,并通过基于 gossip(Memberlist)的网格网络隧道传输流量。
为何重要: 跨网段横向移动可自主进行,无需操作员持续干预或部署静态代理。
通过 P2P 中继传输(mTLS/KCP)实现代理间直接文件共享,加速内网文件分发。
为何重要: 代理间直接文件共享可最大化传输速度、绕过网络瓶颈,并降低直接 C2 流量的可见性。
提供灵活的 Stage 0 下载器 stager 和协议监听器,用于初始访问和载荷投递。
.bin)、独立 ELF 可执行文件或共享对象(.so)。在 Windows 和 Linux 目标上均可执行内存中的二进制模块:
int、short、cstr、wstr、binary)。.o)加载到代理内存中。为何重要: 无需创建进程,也无需通过在内进程中运行已编译 C 模块来规避命令行监控。
Windows 上的代理可以窃取、缓存并模拟运行中进程的访问令牌——完全通过间接 NT 系统调用在进程内完成。
steal_token --pid <PID> 通过 NtOpenProcess + NtDuplicateToken 复制进程令牌,并以 SID 形式存储在内存中。可选择通过 --token <sid> 串联模拟,从一个被窃取身份升级到另一个。list_tokens 以 DOMAIN\User (SID) 名称显示所有已缓存令牌。--token <sid>)。敏感操作会在线程级别应用模拟(NtSetInformationThread)。read_file、write_file、exec_cmd、Win32 API 代理等)在设置令牌后会自动按系统调用级别模拟身份,exec_cmd 可通过 CreateProcessWithTokenW 在被盗身份下派生子进程。为何重要: 无需外部工具、无磁盘痕迹、无进程创建噪音。令牌窃取和重用完全通过间接系统调用在进程内完成,且被盗令牌可立即被所有内置模块使用。
http_poll),支持可变形 HTTP 配置文件,以及基于 HTTP/2 的流式传输(h2conn)。构建 emp3r0r 需要在主机上安装 Docker 或 Podman。无需本地 Go 工具链。
# 克隆仓库
git clone --depth=1 https://github.com/jm33-m0/emp3r0r.git && cd emp3r0r
# 在容器内构建并安装到本地
./install.sh
安装程序会在一次性容器中编译核心二进制,生成预编译的 emp3r0r-operator-kit.tar.zst,配置所需的 Linux 能力(setcap),并设置系统运行时目录。
选项:
./install.sh [--debug] [--disable-garble] [--prefix /usr/local] [--skip-build]
启动 C2 服务器:
emp3r0r server --c2-hosts 1.2.3.4 --http-port 12345 --operator-port 13377
注意:如果使用 root 用户而不是标准 sudo 安装,你的当前用户可能无法启动 emp3r0r,因为安装程序无法正确设置权限。操作员机器同样如此。
将生成的 emp3r0r-operator-kit.tar.zst 传输到操作员机器并运行安装程序:
tar --zstd -xpf emp3r0r-operator-kit.tar.zst
cd ./emp3r0r-operator-kit && ./install.sh
使用服务器打印的 WireGuard 隧道凭据将操作员客户端连接到 C2 服务器:
emp3r0r client --c2-port 13377 \
--server-wg-key '<SERVER_WG_KEY>' \
--server-wg-ip '<SERVER_WG_IP>' \
--operator-wg-ip '<OPERATOR_WG_IP>' \
--operator-wg-key '<OPERATOR_WG_KEY>' \
--c2-host 1.2.3.4
在 emp3r0r 操作员界面中使用 generate 命令创建载荷。
直连 C2 代理:
generate --type linux_executable --arch amd64 --cc your.domain.com
Mesh 网关代理:
generate --type linux_executable --arch amd64 --cc your.domain.com \
--p2p --direct-c2 --p2p-transport mtls
Mesh 中间对等节点:
generate --type linux_executable --arch amd64 --cc your.domain.com \
--p2p --p2p-transport mtls --peers 1.2.3.4
如果 emp3r0r 对你的安全研究和测试确有价值,请考虑通过 GitHub Sponsors 支持其持续开发。
win_freewin_read_memconfig.json)定义,便于 CLI 参数解析和分发。