Skip to main content

Hackbot: AI-powered automated penetration testing robot

Project description

Secbot

AI 驱动的自动化安全测试 CLI

Python Version License Platform

LangChain LangGraph FastAPI SQLite uv

English | 中文


安全警告:本工具仅用于获得明确授权的安全测试、研究与教学。未经授权的网络攻击、渗透、爆破或控制行为可能违法。详见 docs/SECURITY_WARNING.md


Secbot 主界面

功能概览

  • CLI 交互:基于 Typer + Rich 的原生终端交互,直接在进程内调用核心逻辑,无需网络通信。
  • API 服务:可选启动 FastAPI 后端,暴露 REST + SSE 接口供第三方集成。
  • 多智能体执行:支持 secbot-cli 自动模式与 superhackbot 专家模式,结合规划、执行、总结链路完成安全任务。
  • 安全测试能力:覆盖内网发现、端口与服务识别、Web 安全、OSINT、系统控制、防御扫描与报告生成。
  • 多推理后端:内置 Ollama、DeepSeek、OpenAI、Anthropic、Gemini、Groq、OpenRouter 及多家 OpenAI 兼容厂商。
  • SQLite 持久化:对话历史、提示词链、用户偏好和 API Key 配置可持久化到 SQLite。

架构概览

flowchart LR
  CLI["Typer CLI"]
  CLI -->|"进程内调用"| session["SessionManager"]
  session --> planner["Planner / QA / Agent Router"]
  planner --> tools["安全工具与系统控制"]
  tools --> summary["Summary / Reports"]
  summary --> db["SQLite"]

  API["FastAPI /api/*(可选)"]
  API --> session

环境要求

  • Python 3.10+
  • uv(推荐,用于同步 Python 依赖)
  • Ollama(可选,本地模型时需要)

安装与启动

方式一:从源码运行(推荐)

git clone https://github.com/iammm0/secbot.git
cd secbot

# Python 依赖
uv sync

创建 .env,至少填写一组可用推理后端配置:

# 云端推理(默认推荐)
LLM_PROVIDER=deepseek
DEEPSEEK_API_KEY=sk-your-api-key
DEEPSEEK_MODEL=deepseek-reasoner

# 或改用本地 Ollama
# LLM_PROVIDER=ollama
# OLLAMA_BASE_URL=http://localhost:11434
# OLLAMA_MODEL=gemma3:1b
# OLLAMA_EMBEDDING_MODEL=nomic-embed-text

启动:

# 交互模式
python main.py
# 或
uv run secbot

# 单次任务
uv run secbot "扫描 192.168.1.1 的开放端口"

# 问答模式
uv run secbot --ask "什么是 XSS 攻击?"

# 专家模式
uv run secbot --agent superhackbot

# 切换推理后端/模型
uv run secbot model

# 仅启动 API 服务
uv run secbot server

方式二:下载 GitHub Release

Releases 下载对应平台的 zip 包并解压,在可执行文件同目录创建 .env 后再运行。

方式三:安装 wheel / 本地包

uv pip install -e .
# 或
pip install .

安装后可使用 secbot / hackbot / secbot-cli 命令。

常用命令

命令 说明
secbot 进入交互模式
secbot "任务描述" 执行单次任务
secbot --ask "问题" 问答模式
secbot --agent superhackbot 使用专家智能体
secbot model 切换推理后端与模型
secbot server 启动 FastAPI 后端服务
secbot version 显示版本

交互模式内的斜杠命令

命令 说明
/model 选择推理后端、模型、API Key
/help 查看帮助
exit / quit 退出

常见环境变量

变量 用途 默认值
LLM_PROVIDER 当前推理后端 deepseek
DEEPSEEK_API_KEY DeepSeek API Key
DEEPSEEK_MODEL DeepSeek 默认模型 deepseek-reasoner
OLLAMA_BASE_URL Ollama 服务地址 http://localhost:11434
OLLAMA_MODEL Ollama 默认模型 gemma3:1b
OLLAMA_EMBEDDING_MODEL Ollama 嵌入模型 nomic-embed-text
DATABASE_URL SQLite 路径 sqlite:///./data/secbot.db
LOG_LEVEL 日志级别 INFO

目录结构

secbot/
├── main.py                 # 入口(调用 Typer CLI)
├── secbot_cli/             # CLI 入口与进程内运行器
├── router/                 # FastAPI 路由层(可选 API 服务)
├── core/                   # 智能体、执行器、规划器、记忆等核心逻辑
├── tools/                  # 安全工具、Web 研究、协议、报告、云安全等
├── database/               # SQLite 模型与数据库管理
├── hackbot_config/         # 配置、环境变量与持久化偏好
├── scripts/                # 启动与构建脚本
├── tests/                  # 测试
└── docs/                   # 项目文档

文档索引

文档 说明
docs/QUICKSTART.md 从源码启动与常见入口
docs/API.md FastAPI REST + SSE 接口说明
docs/LLM_PROVIDERS.md 多厂商模型后端与配置方式
docs/OLLAMA_SETUP.md 本地 Ollama 配置与排障
docs/DEPLOYMENT.md 后端部署与 systemd 示例
docs/DOCKER_SETUP.md Docker 当前策略说明
docs/RELEASE.md Release 包使用与源码打包说明
docs/DATABASE_GUIDE.md SQLite 结构与数据库操作

贡献

欢迎提交 Issue 和 Pull Request。

  1. Fork 本仓库
  2. 创建分支:git checkout -b feat/your-change
  3. 提交修改:git commit -m "docs: update guides"
  4. 推送分支并发起 PR

许可证

本项目使用 LICENSE 中定义的 Secbot Open Source License

  • 允许个人学习、学术研究、教学与非营利技术交流
  • 修改与分发时需保留版权与协议声明
  • 商业用途需事先获得书面授权

商用授权联系:wisewater5419@gmail.com

作者

赵明俊(Zhao Mingjun)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

secbot-1.10.1b1.tar.gz (366.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

secbot-1.10.1b1-py3-none-any.whl (428.1 kB view details)

Uploaded Python 3

File details

Details for the file secbot-1.10.1b1.tar.gz.

File metadata

  • Download URL: secbot-1.10.1b1.tar.gz
  • Upload date:
  • Size: 366.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for secbot-1.10.1b1.tar.gz
Algorithm Hash digest
SHA256 ffeb6b4b1b3f2999ec4372f706a7437b2c87f5275be0b876135bd520ef0b8cd1
MD5 9d17c414ba91b59897c11a416f93c8a5
BLAKE2b-256 37ae58ad0cf1284530dcafefe5a2981d2b3a0f9469470c4900e2fc8a3624088b

See more details on using hashes here.

File details

Details for the file secbot-1.10.1b1-py3-none-any.whl.

File metadata

  • Download URL: secbot-1.10.1b1-py3-none-any.whl
  • Upload date:
  • Size: 428.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for secbot-1.10.1b1-py3-none-any.whl
Algorithm Hash digest
SHA256 15d0a7c5d37d451e92cc8afb6a2cd3600f614973b011799e2400640982da0957
MD5 5457f3f1d1b969eb8d6e3dedf20de6b9
BLAKE2b-256 258494e047f968eb9fd919884128701014af0be003f91720955cb8602d97203e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page