portbuster1337/ArachneC2

GitHub: portbuster1337/ArachneC2

ArachneC2:基于libp2p的去中心化C2框架,提供隐蔽安全的通信。

Stars: 15 | Forks: 4

# Arachne C2 基于 **libp2p**(IPFS背后的对等网络堆栈)构建的去中心化命令与控制框架。没有服务器,没有域名,没有要阻止的IP——只有通过全球p2p网络进行通信的加密身份。 受 [Sliver](https://github.com/BishopFox/sliver) 启发,但为去中心化基础设施重新设计。 ## 核心思想 Arachne不是在VPS上运行C2服务器,而是使用IPFS对等网络上的 **GossipSub(PubSub**) 和 **DHT对等发现**。您的植入机群和操作员都是网络中的平等对等节点——没有单点故障。 ## 功能 - 自包含的单个二进制文件——无需源代码树即可生成植入 - 信标模式植入,通过PubSub主题保持存在 - 基于DHT的对等发现——没有硬编码的服务器IP - 加密和签名消息(Ed25519 + NaCl box) - 交互式操作员控制台(列表、选择、执行、ls、ps、cd、pwd、下载、上传) - 通过直接libp2p流进行交互式shell(Linux/macOS上的PTY,Windows上的隐藏ConPTY) - 通过植入直接libp2p流进行端口转发 - 跨平台植入(Linux、macOS、Windows) - 基于Protocol Buffers的消息格式,每条消息进行签名验证 - 不透明的协议标识符(短的proto包名,Z系列消息类型,短的wire ID) - 每个植入的命令主题——命令只到达预期的植入 - 内置打洞和NAT穿越 - 如果缺少Go,则自动安装Go(在任何地方生成植入) - 基于Garble的混淆(`--obfuscate`——删除名称、字面量、路径) - 隐藏信标时间签名以掩盖流量 - 持久植入身份(每个构建嵌入密钥对) - 静音模式(`--quiet`——在Linux/macOS上守护进程化,在Windows上隐藏控制台) - 自动检测植入断开连接并发出警报 - 流保持活动防止中继电路空闲超时 - WebSocket + TCP传输(UDP/多播免费,以兼容沙盒) - 虚拟机检测(`--antivm`——65+检测技术,与VMAware兼容的评分,无需CGO) ## 项目结构 ``` arachne-c2/ ├── build.sh # Build script (auto-installs Go if missing) ├── bin/ # Compiled binaries ├── cmd/ │ └── arachne/ # Single entry point (serve + generate) ├── docs/ # Design documentation ├── implant/ # Implant agent code │ └── core/ # Agent runtime, command handlers, shell, portfwd ├── pkg/ │ ├── config/ # Shared config types │ ├── cryptography/ # Ed25519 + NaCl key management │ └── transport/ # libp2p node, messenger, PubSub helpers ├── protobuf/ # Protocol Buffers definitions │ ├── apb/ # C2 protocol messages (opaque type names: Z1, Z2, ...) │ ├── cpb/ # Common types (Process, Response, Request) │ └── rpb/ # RPC service definitions (service S, methods M0-M13) └── server/ # Operator node (the "server") └── core/ # Operator logic, implant tracking, CLI, generate ``` ## 构建 操作员二进制文件是自包含的——在构建时嵌入植入源,然后它可以在任何地方构建植入: ``` ./build.sh # auto-installs Go if missing, embeds source, cross-compiles for all platforms ``` 二进制文件写入到 `bin/` 作为 `arachne-{os}-{arch}`(或Windows上的 `*.exe`)。构建的二进制文件可以复制到任何安装了Go的机器(或没有Go——它会自动安装)。无需源代码树。 ## 快速入门 ### 1. 运行操作员 ``` ./bin/arachne ``` 首次运行时,在 `~/.arachne/operator.key` 生成密钥对,并将公钥导出到 `~/.arachne/operator.pub`。 ### 2. 构建植入 从操作员控制台(`generate`)或独立: ``` ./bin/arachne generate --os linux --arch amd64 --output ./myimplant --upx ``` 标志:`--os`(linux、darwin、windows)、`--arch`(amd64、arm64)、`--output`、`--pubkey`、`--upx`(默认为true)、`--obfuscate`、`--quiet`、`--antivm`。 使用 `--obfuscate` 通过 [garble](https://github.com/burrowers/garble)(如果缺少则自动安装)删除函数名称、包路径和字面量字符串。与 `--upx` 结合使用以实现最大加固。 使用 `--antivm` 将虚拟机检测编译到植入中。植入运行65+检测技术(CPUID签名、MAC前缀、DMI/SMBIOS、PCI供应商ID、进程枚举、注册表键、容器检测),并使用 [VMAware](https://github.com/kernelwernel/VMAware) 兼容的累积评分系统。如果评分超过50%,则干净退出。纯Go——无需CGO,无需交叉编译器。 每个构建生成一个唯一的嵌入密钥对——植入在重启之间保持相同的PeerID。 ### 3. 部署和运行植入 将 `./myimplant` 复制到目标机器并运行: ``` ./myimplant ``` 植入将通过DHT发现操作员,注册自己,并通过自动保持活动的持久中继流开始信标。 ### 4. 使用操作员控制台 从操作员提示符: ``` arachne> list 0: user@hostname [linux/amd64] last=5s peer=12D3Koo... arachne> select 0 arachne (user@hostname) > exec whoami ``` 可用命令:`list`、`select `、`exec `、`ls `、`cd `、`pwd`、`ps`、`shell`、`portfwd `、`download `、`upload `、`generate [flags]`、`regenerate`、`help [command]`、`exit`。 在交互式shell中,键入 `exit` 或按 **Ctrl+]** 返回到arachne提示符。 使用 `help ` 或 ` --help` 获取每个命令的详细信息。 ## 可用命令 | 命令 | 描述 | |---|---| | `list` | 显示已注册的植入 | | `select ` | 通过索引选择植入 | | `ps` | 在所选植入上列出进程 | | `ls ` | 列出目录 | | `cd ` | 切换目录 | | `pwd` | 打印工作目录 | | `shell` | 交互式shell(直接libp2p流,按 **Ctrl+]** 返回) | | `portfwd ` | 通过植入转发本地端口 | | `exec [args]` | 执行命令(带有输出) | | `download ` | 从植入下载文件 | | `upload ` | 将文件上传到植入 | | `generate [flags]` | 为任何OS/arch构建植入(自动安装Go,garble)。标志:`--os`、`--arch`、`--output`、`--pubkey`、`--upx`、`--obfuscate`、`--quiet`、`--antivm` | | `regenerate` | 重新生成操作员密钥对(旧植入孤儿化) | | `help [command]` | 此帮助,或特定命令的详细信息 | | `exit` | 退出 | ## 安全性 - 所有消息都使用Ed25519密钥签名 - 植入使用嵌入操作员公钥构建——它们只会接受来自该操作员的命令 - 每个植入都有一个唯一的嵌入密钥对(在重启之间保持持久身份) - 隐藏流量掩盖信标时间以对抗网络观察者 - 在每条消息上通过信封签名验证对等身份 - 中继节点只能看到加密的字节——无法读取或修改流量 ## 许可证 GPLv3
标签:C2 框架, DHT, EVTX分析, GossipSub, Go 语言, libp2p, NAT 穿透, P2P 网络, Sliver, TCP 传输, WebSocket, 交互式控制台, 依赖分析, 分布式架构, 加密通信, 协议缓冲区, 去中心化, 去噪模式, 命令与控制, 持久化身份, 日志审计, 流保持活动, 流量隐藏, 消息签名, 混淆技术, 生成式AI安全, 网络渗透, 自动安装, 自动断开检测, 虚拟机