jm33-m0/emp3r0r

GitHub: jm33-m0/emp3r0r

专为 Linux 环境设计的后渗透 C2 框架,具备自愈 Mesh 网络、瞬时身份认证、完美前向保密和纯内存执行等 OPSEC 特性,支持隔离网段的反向隧道接入。

Stars: 1691 | Forks: 274

emp3r0r ### emp3r0r **具有辅助节点发现、模块化后渗透和 OPSEC 传输特性的自愈 Gossip Mesh C2**
[![Discord](https://img.shields.io/badge/Discord-Join%20Server-7289da?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/vU98aQtk9f) [![GitHub Sponsors](https://img.shields.io/badge/GitHub-Sponsor-ff69b4?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sponsors/jm33-m0) [![截图](https://img.shields.io/badge/View-Screenshots-blue?style=for-the-badge)](./Screenshots.md) [![Go Report Card](https://goreportcard.com/badge/gojp/goreportcard)](https://goreportcard.com/report/github.com/jm33-m0/emp3r0r/core) [![Go 版本](https://img.shields.io/github/go-mod/go-version/jm33-m0/emp3r0r?filename=core/go.mod)](https://github.com/jm33-m0/emp3r0r/blob/v3/core/go.mod) [![测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/c37dc20174104507.svg)](https://github.com/jm33-m0/emp3r0r/actions/workflows/test.yml) [![许可证](https://img.shields.io/github/license/jm33-m0/emp3r0r.svg)](https://github.com/jm33-m0/emp3r0r/blob/v3/LICENSE) [![GitHub 发布版](https://img.shields.io/github/release/jm33-m0/emp3r0r.svg)](https://github.com/jm33-m0/emp3r0r/releases) image ## 什么是 emp3r0r? emp3r0r 是一个专为 Linux 环境从头设计的全面后渗透框架。虽然大多数 C2 平台将 Linux 视为附带支持,但 emp3r0r 实现了**零信任架构**,具有瞬时加密身份、完美前向保密和自主 Mesh 网络,适用于渗透测试和红队行动。 ## emp3r0r 有何独特之处? ### 🔐 瞬时 TOFU 身份 Agent(代理)身份使用 ECDSA P-256 **按会话生成**,并在重启后**丢失**——二进制文件或磁盘上不存在静态凭据。**首次使用信任 (TOFU)** 认证在首次签到时固定 Agent 的公钥;后续连接必须证明拥有相同的瞬时密钥。密钥轮换需要操作员手动批准。 **为什么这很重要:** 大多数 C2 框架将 Agent 凭据嵌入二进制文件中。如果被捕获,这些凭据可以被提取并重用。emp3r0r 的瞬时密钥仅存在于进程内存中,并在每次重启时重新生成。 ### 🔒 所有通信的完美前向保密 每个 C2 会话使用 **ECDH 密钥交换**和 **HKDF 派生的会话密钥**。即使长期密钥或 Agent 受到损害,过去的流量依然安全。每个会话的加密密钥都是唯一的,无法从其他会话推导出来。 **为什么这很重要:** 传统的 C2 使用静态加密密钥。如果这些密钥被恢复,历史网络捕获可以被解密。emp3r0r 的 PFS 确保即使今天的会话密钥泄露,也不会暴露以前的通信。 ### 🕸️ 点对点 (P2P) Mesh 网络 处于隔离网段的 Agent 通过基于 Gossip(memberlist)的 Mesh 网络,**自主发现并通过具有互联网连接的节点进行隧道传输**。Mesh 跳跃传输是**可插拔的**:默认为 `mtls`——使用瞬时、可延展证书的伪装 mTLS 1.3——同时也提供 `kcp`(可靠 UDP)。所有跳跃都进一步封装在 AES-GCM 端到端加密中。 **为什么这很重要:** 手动跳板需要操作员持续干预,并在中间主机故障时中断。emp3r0r 的 Agent 自动形成冗余通信路径,通过弹性的节点发现和中继确保持久性。 ### 🚪 Bring2CC:针对隔离目标的反向隧道 当 Agent **无法**进行出站连接时,**Bring2CC** 使用 SSH + KCP 隧道将其反向代理回 C2 服务器。这反转了连接模型:不是 C2 主动连接进入网络,而是将隔离目标通过隧道传输到 C2 基础设施。 **为什么这很重要:** 当出口过滤阻止出站连接时,传统 C2 会失效。Bring2CC 通过让具有互联网连接的主机通过反向隧道将隔离目标拉出,从而实现对隔离网段的访问。 ### 💾 具有透明加密的纯内存操作 Agent 使用**带有 AES-GCM 加密的内存文件系统**进行所有文件操作。Bash、PowerShell、Python 和 ELF 模块完全在内存中执行。大文件在内存耗尽时自动溢出到**加密磁盘存储**。Agent 不创建专用目录或持久配置文件。 **为什么这很重要:** EDR 和取证工具依赖于磁盘特征进行检测和分析。emp3r0r 的内存优先设计最大限度地减少了磁盘写入。当发生磁盘溢出时,所有数据都经过加密,并且没有可识别的文件扩展名或文件头。 ### 🧩 原生 BOF 支持(跨平台) 在 Windows Agent 上执行**Windows COFF 对象**,支持类型化参数打包(LPSTR/LPWSTR/INT/BOOL/BINARY)。在 Linux 上,完全在内存中加载**ELF 对象文件 (.o)**,具有相同的模块化。模块使用标准化模式以确保跨平台一致性。 **为什么这很重要:** BOF 避免了进程创建开销,并且难以检测。emp3r0r 将此功能带到 Linux,而大多数 C2 框架在 Linux 上依赖于派生进程或解释 Shell 脚本。 ### 🎭 JA3 指纹规避 + CBOR 序列化 HTTP2/TLS 连接使用 **uTLS** 随机化 TLS Client Hello 指纹,防止静态 JA3 签名检测。所有网络流量和数据存储使用 **CBOR**(二进制)而不是 JSON,减少了 30-40% 的带宽,并避免了基于文本的解析签名。 **为什么这很重要:** 网络监控工具通过对 TLS 握手进行指纹识别来确定应用程序。静态 TLS 实现会产生一致的签名。emp3r0r 在每次连接时随机化这些签名,同时使用缺少 JSON 明显结构的紧凑二进制协议。 ## 快速开始 ### 安装 虽然可能提供预编译的二进制文件,但从源代码构建是主要且推荐的安装方法: ``` # 自动安装脚本(安装依赖并从源代码构建) curl -sSL https://raw.githubusercontent.com/jm33-m0/emp3r0r/refs/heads/v3/install.sh | bash ``` ### 3 步部署 #### 初始化服务器 ``` emp3r0r server --c2-hosts 'your.domain.com' --port 12345 --operators 2 ``` 此命令部署 emp3r0r,包括: - 随机端口上的 HTTP2/TLS Agent 监听器。 - WireGuard 操作员服务。 - 操作员 mTLS 服务器。 #### 作为操作员连接 复制生成的连接命令,并将 `` 替换为您服务器的 IP: ``` emp3r0r client --c2-port 12345 --server-wg-key 'key...' --c2-host your.domain.com ``` #### 生成 Agent 载荷 在 emp3r0r Shell 界面中使用 `generate` 命令创建自定义 Agent 载荷。 ## 其他功能 ### 隐秘与规避 - **类 sRDI Shellcode 分段器**:从内存加载 ELF 二进制文件而不接触磁盘,类似于 Windows 的 sRDI。 - **自我挂起与恢复**:Agent 可以挂起自己并让分段器管理其内存;当 Agent 空闲时,分段器轮换基于 XOR 的混淆。 - **模块 Stomping**:通过将恶意模块加载到合法系统库的内存空间来伪装它们。 - **OPSEC 警告**:对构成操作安全风险的操作(例如 "fork and run" 模式、未加密的磁盘活动)发出实时警告。 - **反调试/分析**措施,使检查更加困难。 ### 操作员体验 - **自适应 tmux UI**:与动态状态栏、自适应布局和实时 Agent/C2 状态监控的原生集成。 - **BYOS (Bring Your Own Shell)**:基于 SSH 的反向 PTY,可通过同一隧道(也用于文件管理器和传输)驱动目标上可用的任何 Shell(bash、zsh、sh、python REPL 等)。 - **智能自动补全**,带有语法高亮。 - **SFTP 集成**,用于高效的远程文件操作。 ### 文件传输系统 - **智能传输策略**:Agent 可以在回退到 C2 之前通过加密 KCP 隧道从节点 Agent 获取文件,提高速度和隐蔽性。 - **完整性与可靠性**:SHA256 验证加上**可恢复的上传/下载**,以便中断的传输从上一个偏移量继续。 - **压缩**:Zstandard 压缩减少带宽使用并加速传输。 - **FileServer 模块**:Agent 可以托管加密的 HTTP 服务器以与其他 Agent 共享文件,实现点对点分发。 ### 网络跳板 - **灵活的跳板**:双向 TCP/UDP 端口映射和 Agent 端 Socks5(支持 UDP)。 - **基于 KCP 的 UDP 隧道**,适用于高延迟环境下的速度和弹性。 - **TOR/CDN** 支持,用于额外的行动掩护。 ### 载荷投递 - **高级 Linux 分段器**:保持 Agent 载荷加密直到执行;当连接需要时带有抖动的自动重启。 - **Agent 端监听器**:在受损主机上部署监听器以在内部提供载荷,绕过缓慢的 C2 连接。 - **多阶段投递**,支持 Linux 和 Windows,提供 ELF/DLL/shellcode 选项。 ### 后渗透武器库 - **OpenSSH 凭据收割**,带有实时监控(`ssh_harvester`)。 - **跨平台内存转储**功能(`mem_dump`)。 - **LPE**:具有自动建议的权限提升工具(`lpe_suggest`)。 - **日志清理**:用于反取证的 `clean_log` 模块。 ## 文档与支持 ### 资源 - 📸 [截图与视频](./Screenshots.md) - 📋 [功能概述](./FEATURES.md) - 📝 [安全策略](./SECURITY.md) - 📜 [更新日志](./CHANGELOG.md) - 📦 [模块开发(包括 COFF/BOF)](https://github.com/jm33-m0/emp3r0r/wiki/Modules) ### 故障排除 - **连接停滞**:验证 C2 主机/WireGuard 设置。 - **兼容性**:删除 `~/.emp3r0r` 以进行全新安装。 ## 支持开发 如果 emp3r0r 在您的安全研究和测试中被证明有价值,请考虑通过 [GitHub Sponsors](https://github.com/sponsors/jm33-m0) 支持其持续开发。
标签:C2框架, CVE利用辅助, Emp3r0r, EVTX分析, EVTX分析, EVTX分析, Gossip协议, Go语言, HTTP工具, IP 地址批量处理, Mesh网络, OPSEC, P2P通信, PE 加载器, Runtime Enforcement, 主机接管, 内存分配, 后渗透框架, 命令控制, 安全学习资源, 对等节点发现, 持久化控制, 数据采集, 日志审计, 模块化开发, 横向移动, 流量加密, 程序破解, 编程规范, 网络信息收集, 网络安全, 自愈网络, 行动安全, 远控木马, 隐匿通信, 隐私保护, 零信任架构