pentestagent

GitHub
1.9k 383 简单 1 次阅读 今天MIT开发框架Agent语言模型图像数据工具
AI 解读 由 AI 自动生成,仅供参考

PentestAgent 是一款专为黑盒安全测试打造的 AI 智能体框架,旨在辅助漏洞赏金猎人、红队成员及渗透测试人员高效完成工作流程。它通过引入人工智能,解决了传统手动测试中信息搜集繁琐、工具调用复杂以及多步骤攻击难以自动编排的痛点,让安全评估更加智能化和自动化。

该工具特别适合具备一定网络安全基础的专业人士使用,如安全研究员、渗透测试工程师以及希望探索 AI 在安全领域应用的开发者。普通用户若无相关安全知识,可能难以充分发挥其价值。

PentestAgent 的技术亮点在于其灵活的多模式协作机制:既支持单指令快速执行的“协助模式”,也能启动完全自主的“智能体模式”,更拥有独特的“团队模式”,可协调多个专用智能体分工合作,模拟真实攻击团队的组织架构。此外,它原生兼容 Docker 环境,能够直接调用 Nmap、Metasploit、SQLMap 等经典渗透工具,并支持通过 LiteLLM 接入各类主流大模型。内置的预设攻击剧本(Playbooks)进一步降低了复杂测试场景的门槛,帮助用户系统化地执行黑盒测试任务。

使用场景

某安全团队正在对一家金融客户的新上线 Web 系统进行黑盒渗透测试,需在有限时间内全面评估其外部攻击面。

没有 pentestagent 时

  • 测试人员需手动编写并执行大量重复脚本(如 nmap 扫描、SQL 注入探测),耗时且容易遗漏边缘案例。
  • 面对复杂的业务逻辑漏洞,单人思维受限,难以系统性覆盖所有攻击路径,依赖个人经验导致测试深度不均。
  • 发现漏洞后,需人工整理截图、命令输出和复现步骤来编写报告,占用大量原本可用于深入测试的时间。
  • 团队协作时,信息同步依靠口头或分散的文档,缺乏统一的上下文记忆,导致多人测试时出现重复劳动或盲区。

使用 pentestagent 后

  • 通过 /agent 模式下达“全面扫描目标端口并识别潜在注入点”指令,pentestagent 自动调用 Docker 内的 nmap、sqlmap 等工具链完成全流程探测,效率提升数倍。
  • 启用 /crew 多智能体模式,pentestagent 自动协调“侦察员”、“攻击手”和“审计员”角色,系统性地模拟红队攻击,覆盖了人工容易忽略的逻辑漏洞。
  • 测试结束后,只需输入 /report,pentestagent 即刻基于会话记忆生成包含漏洞详情、复现步骤及修复建议的专业报告。
  • 利用内置的记忆机制和交互式 /interact 模式,团队成员可随时与 pentestagent 对话,回顾之前的测试路径和发现,确保协作无缝衔接。

pentestagent 将安全专家从繁琐的工具操作中解放出来,使其能专注于高阶策略分析,实现了自动化与智能化的完美融合。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes需要配置 OpenAI、Anthropic 或其他 LiteLLM 支持的提供商的 API 密钥。若使用浏览器工具需安装 Chromium (playwright install chromium)。支持 Docker 运行以隔离环境并使用预装的渗透测试工具(如 nmap, metasploit 等)。可通过 MCP 协议集成外部工具或作为服务器被其他客户端调用。
python3.10+
litellm
playwright
pentestagent hero image

快速开始

PentestAgent Logo

PentestAgent

人工智能渗透测试

Python License Version Security MCP

https://github.com/user-attachments/assets/a67db2b5-672a-43df-b709-149c8eaee975

系统要求

  • Python 3.10+
  • OpenAI、Anthropic 或其他 LiteLLM 支持的提供商的 API 密钥

安装

# 克隆
git clone https://github.com/GH05TCREW/pentestagent.git
cd pentestagent

# 设置(创建虚拟环境,安装依赖)
.\scripts\setup.ps1   # Windows
./scripts/setup.sh    # Linux/macOS

# 或手动
python -m venv venv
.\venv\Scripts\Activate.ps1  # Windows
source venv/bin/activate     # Linux/macOS
pip install -e ".[all]"
playwright install chromium  # 浏览器工具所需

配置

在项目根目录下创建 .env 文件:

ANTHROPIC_API_KEY=sk-ant-...
PENTESTAGENT_MODEL=claude-sonnet-4-20250514

或对于 OpenAI:

OPENAI_API_KEY=sk-...
PENTESTAGENT_MODEL=gpt-5

任何 LiteLLM 支持的模型 均可使用。

运行

pentestagent                    # 启动 TUI
pentestagent -t 192.168.1.1     # 指定目标后启动
pentestagent --docker           # 在 Docker 容器中运行工具

Docker

通过 Docker 容器运行工具,以实现隔离并预装渗透测试工具。

方法一:拉取预构建镜像(最快)

# 基础镜像,包含 nmap、netcat、curl
docker run -it --rm \
  -e ANTHROPIC_API_KEY=your-key \
  -e PENTESTAGENT_MODEL=claude-sonnet-4-20250514 \
  ghcr.io/gh05tcrew/pentestagent:latest

# Kali 镜像,包含 metasploit、sqlmap、hydra 等
docker run -it --rm \
  -e ANTHROPIC_API_KEY=your-key \
  ghcr.io/gh05tcrew/pentestagent:kali

方法二:本地构建

# 构建
docker compose build

# 运行
docker compose run --rm pentestagent

# 或使用 Kali
docker compose --profile kali build
docker compose --profile kali run --rm pentestagent-kali

容器内运行 PentestAgent,并可访问 Linux 渗透测试工具。代理可通过终端工具直接使用 nmapmsfconsolesqlmap 等。

需已安装并运行 Docker。

模式

PentestAgent 提供三种模式,可通过 TUI 中的命令访问:

模式 命令 描述
辅助 /assist <task> 单次执行指令,包含工具调用
代理 /agent <task> 自主执行单个任务。
团队 /crew <task> 多代理模式。协调者会派生出专门的工作者。
交互 /interact <task> 交互模式。与代理聊天,它会在渗透测试过程中提供帮助和指导

TUI 命令

/assist <task>    单次执行指令。
/agent <task>     自主代理执行任务
/crew <task>      多代理团队执行任务
/interact <task>  引导模式下与代理聊天
/target <host>    设置目标
/tools            列出可用工具
/notes            显示保存的笔记
/report           生成会话报告
/memory           显示令牌/内存使用情况
/prompt           显示系统提示词
/mcp <list/add>   可视化或添加新的 MCP 服务器。
/clear            清除聊天记录和历史
/quit             退出(也可使用 /exit、/q)
/help             显示帮助(也可使用 /h、/?)

Esc 键可停止正在运行的代理。Ctrl+Q 键可退出。

演练剧本

PentestAgent 包含用于黑盒安全测试的预构建 攻击演练剧本。这些剧本定义了针对特定安全评估的结构化方法。

运行演练剧本:

pentestagent run -t example.com --playbook thp3_web

演练剧本演示

工具

PentestAgent 内置多种工具,并支持 MCP(模型上下文协议)以实现扩展性。

内置工具: terminalbrowsernotesweb_search(需设置 TAVILY_API_KEY)、spawn_mcp_agent

代理自衍生(spawn_mcp_agent

spawn_mcp_agent 是一个内置工具,允许正在运行的代理通过 stdio 连接创建一个子代理作为下属 MCP 服务器。子进程完全隔离——拥有独立的运行时、LLM 客户端、对话历史和笔记存储——并在衍生完成后将其完整的工具集注入到父代理的可用工具中。

这使得无需任何外部编排即可实现分层的多代理工作流:代理可以根据需要自行派生子代理来委派特定范围的任务。

参数 类型 默认值 描述
target string 传递给子代理的渗透测试目标
scope string[] 子代理的范围内目标/CIDR
model string 环境变量 模型标识符,覆盖子代理上的 PENTESTAGENT_MODEL
no_rag boolean false 跳过子代理的 RAG 引擎初始化
no_mcp boolean true 跳过子代理的外部 MCP 服务器连接(推荐)

spawn_mcp_agent 返回后,子代理的工具(run_taskrun_task_asyncawait_tasks 等)将在下一次调用工具时可用。子代理的名称会自动分配(例如 child_agent_1),并在结果中返回。

示例——协调者将并行侦察任务委派给两个子代理:

# 第一轮:派生两个隔离的子代理
spawn_mcp_agent  target="10.0.1.0/24"  scope=["10.0.1.0/24"]
spawn_mcp_agent  target="10.0.2.0/24"  scope=["10.0.2.0/24"]

# 第二轮:子代理的工具现已可用——异步委派工作
child_agent_1__run_task_async  task="全面端口扫描及服务枚举"
child_agent_2__run_task_async  task="全面端口扫描及服务枚举"

# 第三轮:等待并收集结果
child_agent_1__await_tasks  task_ids=["<id1>"]  timeout_seconds=600
child_agent_2__await_tasks  task_ids=["<id2>"]  timeout_seconds=600
child_agent_1__get_task_result  task_id="<id1>"
child_agent_2__get_task_result  task_id="<id2>"

MCP RAG 工具优化器

当 MCP 服务器暴露超过 128 个工具时,PentestAgent 会自动将完整目录替换为单个 mcp_<server>_rag_optimizer 工具。这个元工具利用嵌入相似度(通过 LiteLLM,默认使用 text-embedding-3-small)来检索与当前任务最相关的工具,并将其注入到智能体的下一轮对话中——从而在不丢失对完整工具集访问的情况下,保持上下文窗口的可控性。

优化器对智能体是透明的:它会用聚焦的自然语言查询来调用 RAG 工具,描述所需的内容,匹配的工具将在下一轮直接可供调用。

智能体使用指南:

参数 类型 默认值 描述
queries 字符串数组 (必填) 每个所需能力对应一个聚焦查询。越具体,准确性越高
top_k 整数 20 每个查询要检索的工具数量(最多 128 个)。结果会被合并并去重

嵌入向量在启动时计算一次并缓存,因此重复查询速度很快。优化器是按服务器构建的,因此每个拥有大型工具目录的 MCP 服务器都会有自己的独立索引。

提示: 每个独立的能力传递一个查询,而不是将所有内容合并成一个查询。例如,["列出主机上的开放端口", "获取进程内存占用"]["列出端口、内存和 CPU 使用情况"] 能得到更好的结果。

MCP 集成

PentestAgent 支持 MCP(模型上下文协议),可以从两个方向进行集成:消费外部 MCP 服务器作为工具源,以及暴露自身作为 MCP 服务器,以便外部客户端(Claude Desktop、Cursor 等)能够以编程方式驱动 PentestAgent。


消费外部 MCP 服务器(客户端模式)

通过配置 mcp_servers.json 文件,可以将 PentestAgent 连接到任何外部 MCP 服务器。示例配置如下:

{
  "mcpServers": {
    "nmap": {
      "command": "npx",
      "args": ["-y", "gc-nmap-mcp"],
      "env": {
        "NMAP_PATH": "/usr/bin/nmap"
      }
    }
  }
}

将 PentestAgent 暴露为 MCP 服务器(服务器模式)

PentestAgent 可以作为 MCP 服务器运行,允许任何兼容 MCP 的客户端提交任务、检查结果并远程控制智能体。支持两种传输方式:

STDIO — 适用于本地客户端(如 Claude Desktop、Cursor):

pentestagent mcp_server --type stdio
pentestagent mcp_server --type stdio --target 192.168.1.1 --scope 192.168.1.0/24
pentestagent mcp_server --type stdio --model claude-sonnet-4-20250514 --docker

SSE(HTTP) — 适用于远程或网络客户端:

pentestagent mcp_server --type sse
pentestagent mcp_server --type sse --host 0.0.0.0 --port 8080
pentestagent mcp_server --type sse --target 10.0.0.1 --scope 10.0.0.0/24 --docker

SSE 传输方式会暴露一个 /mcp 端点,支持 POST(请求)、GET(用于服务器发起推送的持久化 SSE 流)和 DELETE(会话终止)。会话通过 Mcp-Session-Id 头部进行跟踪。

所有 mcp_server 标志:

标志 默认值 描述
--type (必填) 传输方式:stdiosse
--host 0.0.0.0 SSE 绑定主机
--port 8080 SSE 绑定端口
--target 主要渗透测试目标(IP 地址或主机名)
--scope [] 在范围内的目标/CIDR(用空格分隔)
--model 环境变量 模型标识符,覆盖 PENTESTAGENT_MODEL
--docker false 使用 DockerRuntime 而不是 LocalRuntime
--no-rag false 跳过 RAG 引擎的初始化
--no-mcp false 跳过与外部 MCP 服务器的连接
示例:Claude Desktop 配置(claude_desktop_config.json
{
  "mcpServers": {
    "pentestagent": {
      "command": "pentestagent",
      "args": ["mcp_server", "--type", "stdio"]
    }
  }
}

MCP 服务器工具参考

当作为 MCP 服务器运行时,PentestAgent 会暴露以下工具:

服务器状态与配置

工具 描述
get_server_status 实时服务器状态:就绪情况、按状态划分的任务数量、主要目标/范围、内存存储大小
get_config 主要智能体配置:目标、范围、最大迭代次数、工具列表
update_config 更新目标、范围或最大迭代次数,应用于后续所有任务

任务执行

工具 描述
run_task 提交任务并阻塞直至完成。返回完整结果、使用的工具及笔记快照
run_task_async 提交任务并立即返回一个 task_id。可通过 get_task_status 轮询

任务检查

工具 描述
list_tasks 列出所有任务及其状态、目标和摘要。可按状态筛选
get_task_status 轮询任务的当前状态和结果预览
get_task_result 完整任务结果:最终输出、思考步骤、所有工具调用及结果、笔记快照
await_tasks 阻塞直至一组异步任务 ID 全部完成(每 500 毫秒轮询,可配置超时时间)

任务控制

工具 描述
cancel_task 根据任务 ID 取消正在运行或待处理的任务

工具管理

工具 描述
list_tools 列出智能体可用的所有工具
enable_tool 在主智能体上启用指定工具
disable_tool 在主智能体上禁用指定工具

对话历史

工具 描述
get_conversation_history 返回某个任务或主智能体的消息历史。支持 limit 参数
reset_conversation 清除某个任务或主智能体的对话历史

内存

工具 描述
store_memory 将键值对持久化到进程内内存存储中
retrieve_memory 可按精确键检索、按子字符串搜索,或列出所有键
clear_memory 删除特定键,或使用 scope='all' 清空全部内存

可观测性

工具 描述
get_logs 返回最近的执行日志,可选择按级别过滤(info / warning / error
get_metrics 运行时指标:任务数量、成功率、工具总调用次数、内存和日志大小

异步任务工作流示例

对于长时间运行的侦察任务,可以使用异步模式:

# 1. 提交任务而不阻塞
run_task_async  任务="枚举 example.com 的子域名"  目标="example.com"
run_task_async  任务="对 example.com 执行 nmap SYN 扫描"     目标="example.com"

# 2. 阻塞直至两者完成(最长 5 分钟)
await_tasks  任务 IDs=["<id1>", "<id2>"]  超时时间=300 秒

# 3. 获取完整结果
get_task_result  任务 ID="<id1>"
get_task_result  任务 ID="<id2>"

CLI 工具管理

pentestagent tools list         # 列出所有工具
pentestagent tools info <name>  # 显示工具详情
pentestagent mcp list           # 列出 MCP 服务器
pentestagent mcp add <name> <command> [args...]  # 添加 MCP 服务器
pentestagent mcp test <name>    # 测试 MCP 连接

知识库

  • RAG: 将方法论、CVE 漏洞或字典文件放置在 pentestagent/knowledge/sources/ 目录下,以实现上下文的自动注入。
  • 笔记: 代理会将发现结果保存到 loot/notes.json 文件中,并按类别(credentialvulnerabilityfindingartifact)进行分类。这些笔记会在会话之间持久化,并被注入到代理的上下文中。
  • 影子图谱: 在 Crew 模式下,编排器会根据笔记构建知识图谱,从而得出战略性的洞察(例如:“我们已获取主机 X 的凭据”)。

项目结构

pentestagent/
  agents/         # 代理实现
  config/         # 配置和常量
  interface/      # TUI 和 CLI 界面
  knowledge/      # RAG 系统和影子图谱
  llm/            # LiteLLM 封装
  mcp/            # MCP 客户端和服务器配置
  playbooks/      # 攻击剧本
  runtime/        # 执行环境
  tools/          # 内置工具

开发

pip install -e ".[dev]"
pytest                       # 运行测试
pytest --cov=pentestagent    # 带覆盖率
black pentestagent           # 格式化代码
ruff check pentestagent      # 代码检查

法律声明

仅可在获得明确授权的情况下对目标系统进行测试。未经授权的访问属违法行为。

许可证

MIT

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|2天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2天前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

144.7k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.9k|★★☆☆☆|昨天
开发框架图像Agent

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|昨天
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|昨天
语言模型图像Agent