PentestGPT

Exploitation

Автономная система пентестинга на базе GPT, автоматизирующая разведку, анализ уязвимостей, эксплуатацию и пост-эксплуатационные действия.


Установка
git clone https://github.com/GreyDGL/PentestGPT.git
cd PentestGPT
make install
показать оригинал переведено ИИ

![Contributors][contributors-shield] Forks Stargazers Issues MIT License Discord


PentestGPT

AI-Powered Autonomous Penetration Testing Agent


Published at USENIX Security 2024

Official Website: pentestgpt.com »

Research Paper · Report Bug · Request Feature

GreyDGL%2FPentestGPT | Trendshift


Demo

Installation

Installation Demo

Watch on YouTube

PentestGPT in Action

PentestGPT Demo

Watch on YouTube


What's New in v1.0 (Agentic Upgrade)

  • Multi-Stage Pipeline - The agent works through staged phases (recon → exploit → walkthrough for CTF; asset discovery → vulnerability identification → report for pentests), feeding each stage's findings into the next.
  • Autonomous Agent - Drives Claude Code or Codex to run tools and reason without human intervention.
  • Session Persistence - Save and resume penetration testing sessions.

The autonomous CTF pipeline is backend-pluggable for Claude Code and Codex. The interactive modernized legacy mode (pentestgpt-legacy) supports a wider provider set: OpenAI, Anthropic, Google Gemini, DeepSeek, xAI, Qwen, Moonshot, and local Ollama. See Interactive Multi-LLM Mode.


Features

  • AI-Powered Challenge Solver - Leverages LLM advanced reasoning to perform penetration testing and CTFs
  • Live Walkthrough - Tracks steps in real-time as the agent works through challenges
  • Multi-Category Support - Web, Crypto, Reversing, Forensics, PWN, Privilege Escalation
  • Real-Time Feedback - Watch the AI work with live activity updates
  • Extensible Architecture - Clean, modular design ready for future enhancements

Quick Start

Prerequisites

  • Python 3.12+
  • uv - Python package manager
  • Claude Code CLI (claude) - installed and authenticated for local Claude runs. See Claude Code docs
  • Codex CLI (codex) - installed and authenticated for local Codex runs. The Docker flow below bundles both CLIs.

Installation

git clone https://github.com/GreyDGL/PentestGPT.git
cd PentestGPT
make install    # runs uv sync

Commands Reference

Command Description
make install Install dependencies
make test Run all tests
make check Run lint + typecheck
make build Build distributable package

Usage

# Run against a target (CTF mode by default)
pentestgpt --target 10.10.11.234

# With challenge context
pentestgpt --target 10.10.11.50 --instruction "WordPress site, focus on plugin vulnerabilities"

# Penetration-test mode (asset discovery → vulnerabilities → report)
pentestgpt --target 10.10.11.234 --mode pentest

# List previously saved sessions
pentestgpt --list-sessions

The agent works through a multi-stage pipeline, feeding each stage's findings into the next — recon → exploit → walkthrough for CTF, asset discovery → vulnerability identification → report for pentest.

Run in Docker (install once, log in once)

A self-contained image bundles the tool + the Claude Code and Codex CLIs. You log in once and the sessions persist in named volumes — no re-login on later runs.

make docker-build        # build the tool image
make docker-login        # ONE-TIME, idempotent: checks logins, logs in only what's missing
make docker-auth-status  # check both are logged in (ROUNDTRIP=1 for a live 1-token check)

# Run the pipeline against a target (any backend / model / mode):
make docker-run TARGET=http://127.0.0.1:8000 BACKEND=codex MODEL=gpt-5.5 MODE=ctf
make docker-run TARGET=10.10.11.234         BACKEND=claude MODEL=opus    MODE=pentest

make docker-login logs in Claude (setup-token → token stored in the volume) and Codex (its own in-container codex login, OAuth callback forwarded via socat — not seeded, since ChatGPT refresh tokens are single-use). It is idempotent: re-running skips whatever is still valid. Logins persist across container recreation; make docker-down keeps them, make docker-nuke removes the login volumes (to force a fresh login / rotate a token). Design + details: docs/docker-dev-plan.md.


Интерактивный режим с несколькими LLM (модернизированный легаси)

Классический PentestGPT с человеком в цикле из статьи USENIX 2024 сохранён и модернизирован как pentestgpt-legacy. Он запускает три взаимодействующие LLM-сессии — логика / генерация / парсинг — которые поддерживают дерево задач пентеста (PTT), пока вы управляете сессией интерактивно (next, more, todo, discuss). Автономная фиксированная конвейерная обработка поддерживает бэкенды Claude и Codex; этот легаси-режим общается нативно с множеством провайдеров через их официальные SDK.

Настройка провайдеров

Установите API-ключ для любого провайдера, который вы хотите использовать (в вашей среде или .env — см. .env.example). Включены только те провайдеры, которые вы настроили.

OPENAI_API_KEY=...        ANTHROPIC_API_KEY=...     GEMINI_API_KEY=...   # or GOOGLE_API_KEY
DEEPSEEK_API_KEY=...      GROK_API_KEY=...          QWEN_API_KEY=...     KIMI_API_KEY=...

Запуск

# Auto-pick the best available models for each session
pentestgpt-legacy

# Choose models per session
pentestgpt-legacy --reasoning-model claude-opus-4-8 --parsing-model gemini-3.5-flash

# Local model via Ollama (OpenAI-compatible)
pentestgpt-legacy --reasoning-model ollama:qwen3 --base-url http://localhost:11434/v1

# List every supported model (shows which providers are configured)
pentestgpt-legacy --list-models

# Live round-trip every configured model and print a pass/fail matrix
pentestgpt-legacy --smoke-test

Поддерживаемые модели (верифицировано в вебе в июне 2026)

pentestgpt-legacy --list-models всегда отображает актуальный реестр. Перезапустите --smoke-test после изменения идентификаторов моделей. Текущий снимок:

Провайдер Актуальные модели Легаси (сохранённые) Ключ окружения
OpenAI gpt-5.5, gpt-5.5-pro, gpt-5.4-mini, gpt-5.4-nano, gpt-5.2, gpt-5.3-codex gpt-4o, gpt-4o-mini, o3, o4-mini OPENAI_API_KEY
Anthropic claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5-20251001 — ANTHROPIC_API_KEY
Google Gemini gemini-3.1-pro, gemini-3.5-flash, gemini-3-pro, gemini-3.1-flash-lite gemini-2.5-pro, gemini-2.5-flash GEMINI_API_KEY / GOOGLE_API_KEY
DeepSeek deepseek-v4-flash, deepseek-v4-pro deepseek-chat, deepseek-reasoner DEEPSEEK_API_KEY
xAI Grok grok-4.3 — GROK_API_KEY / XAI_API_KEY
Alibaba Qwen qwen3.7-max, qwen3.5-flash qwen3-max QWEN_API_KEY / DASHSCOPE_API_KEY
Moonshot Kimi kimi-k2.6 — KIMI_API_KEY (по умолчанию .cn; установите MOONSHOT_BASE_URL для .ai)
Local (Ollama) ollama:<model> (например, ollama:qwen3) — none (OLLAMA_BASE_URL)

Реестр находится в ... (единственный источник истины). Добавление модели — это одна запись ModelSpec; провайдеры, совместимые с OpenAI, повторно используют один коннектор.


Телеметрия

PentestGPT собирает анонимные данные об использовании для улучшения инструмента. Эти данные отправляются в наш ... проект и включают: - Метаданные сессии (тип цели, длительность, статус завершения) - Шаблоны выполнения инструментов (какие инструменты используются, а не сами команды) - События обнаружения флагов (что флаг был найден, а не содержимое флага)

Никакие конфиденциальные данные не собираются — выводы команд, учётные данные или фактические значения флагов никогда не передаются.

Отказ от телеметрии

# Via command line flag
pentestgpt --target 10.10.11.234 --no-telemetry

# Via environment variable
export LANGFUSE_ENABLED=false

История бенчмарков

PentestGPT показал 86,5% успешных результатов (90/104 бенчмарков) в эксперименте с набором проверки XBOW в декабре 2025. Это исторический результат исследования, а не гарантия отсутствия регрессии для текущего pentestgpt-agent.

Корпус и инструменты XBOW поддерживаются вне этого репозитория в качестве ссылочных исследовательских артефактов. Поддерживаемый CLI PentestGPT, Makefile, CI и Docker-рантайм не предоставляют раннер XBOW. Будущая оценка может повторно использовать этот корпус через отдельный адаптер без превращения его в зависимость продукта.


Цитирование

Если вы используете PentestGPT в своих исследованиях, пожалуйста, цитируйте нашу статью:

@inproceedings{299699,
  author = {Gelei Deng and Yi Liu and Víctor Mayoral-Vilches and Peng Liu and Yuekang Li and Yuan Xu and Tianwei Zhang and Yang Liu and Martin Pinzger and Stefan Rass},
  title = {{PentestGPT}: Evaluating and Harnessing Large Language Models for Automated Penetration Testing},
  booktitle = {33rd USENIX Security Symposium (USENIX Security 24)},
  year = {2024},
  isbn = {978-1-939133-44-1},
  address = {Philadelphia, PA},
  pages = {847--864},
  url = {https://www.usenix.org/conference/usenixsecurity24/presentation/deng},
  publisher = {USENIX Association},
  month = aug
}

Лицензия

Распространяется под лицензией MIT. Подробнее см. в LICENSE.md.

Отказ от ответственности: Этот инструмент предназначен только для образовательных целей и авторизованного тестирования безопасности. Авторы не поощряют любое незаконное использование. Используйте на свой страх и риск.


Благодарности

  • Исследование поддерживается ... и [NTU ...

(<a ... к началу)

... https://img.shields.io/github/contributors/GreyDGL/PentestGPT.svg?style=for-the-badge

Войдите, чтобы оставить комментарий