Skip to content

code-symph/Cerberus

Repository files navigation

Cerberus

Status Python C++ License

Cerberus 是一个全面的自动化渗透测试平台,采用 Python + C++ 混合架构进行开发。它结合了 C++ 的高性能网络处理能力和 Python 的灵活扩展性,旨在为安全研究人员、工程师和学生提供强大的测试工具。

📚 文档

我们提供了详细的文档来帮助你使用和开发 Cerberus:

🚀 简介

Cerberus 旨在简化和自动化渗透测试过程。项目使用 Python 作为主要接口,并通过 pybind11 集成 C++ 核心模块以实现高性能。

🛠️ 依赖要求

  • Python 3.13+
  • CMake 3.20+
  • C++ 编译器 (GCC/Clang, 支持 C++17)
  • pybind11
  • Poetry (用于依赖管理)

📦 安装与部署

Cerberus 提供三种部署方式,任选其一:

🚢 方式 1: 容器化部署(推荐,开箱即用)

使用 Podman 或 Docker,无需安装任何依赖:

# 克隆仓库
git clone https://github.com/code-symph/Cerberus.git
cd Cerberus

# 构建容器镜像(自动检测 Podman/Docker)
./scripts/build-container.sh

# 运行容器
podman run --rm -it cerberus:latest
# 或使用 Docker: docker run --rm -it cerberus:latest

提示: Podman 是 Docker 的现代替代品,无需守护进程,更安全。推荐安装:

  • Arch Linux: sudo pacman -S podman
  • Ubuntu/Debian: sudo apt install podman
  • macOS: brew install podman

📦 方式 2: 独立二进制文件(一键运行)

下载预编译的二进制文件,或自行构建:

# 克隆仓库
git clone https://github.com/code-symph/Cerberus.git
cd Cerberus

# 一键构建二进制文件
./scripts/build-binary.sh

# 运行独立可执行文件
./dist/cerberus

构建完成后,dist/cerberus 文件可以复制到任何地方运行,无需 Python 环境。


🛠️ 方式 3: 传统开发环境(适合贡献者)

点击展开传统安装步骤

1. 克隆仓库

git clone https://github.com/code-symph/Cerberus.git
cd Cerberus

2. 安装系统依赖

Arch Linux:

sudo pacman -S cmake gcc python

Ubuntu/Debian:

sudo apt install cmake g++ python3 python3-pip

macOS:

brew install cmake python

3. 安装 Python 依赖并构建

本项目使用 Poetry 进行依赖管理:

# 安装构建依赖
poetry run pip install scikit-build-core pybind11

# 以开发模式安装(会自动编译 C++ 扩展)
poetry run pip install -e . --no-build-isolation

4. 运行

poetry run cerberus

💻 使用

安装完成后,可以使用以下命令运行工具:

poetry run cerberus

成功运行后,你应该看到类似以下的输出:

--- Cerberus Penetration Testing Tool ---
Connection to C++ core established: Hello, Operator from C++!

Tool is now ready for commands...

🤝 贡献

欢迎提交 Pull Request!请在提交前阅读 贡献指南

📄 许可证

本项目采用 GPL-3.0 许可证。详见 LICENSE 文件。

About

an automated penetration testing tool

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published