AI Copilots
Intermediate
T1595 T1190

AI Pentesting Copilots

AI pentesting copilots assist human testers with analysis, tool orchestration, and reporting — they make testers faster and more consistent, not redundant.

How AI Copilots Work

AI copilots sit between the pentester and their toolchain. They accept natural language queries, translate them into tool invocations, analyze results, and present findings with actionable context.

AI Copilot Workflow

A pentester's natural-language query and context reach the AI copilot, which calls the security tools, triages the results into findings, suggests next-step commands and drafts reports for the pentester to validate and act on.

Scroll sideways to see the whole diagram

Technique What it does Tool/prompt Detection signal
Query translation Turns natural-language queries into tool invocations Claude + MCP security server; function-calling loop Log of AI-initiated tool executions
Result triage Analyzes scan output and ranks findings with context Low-temperature model (0.1–0.3); truncated outputs Manual verification of AI severity ratings
Next-step suggestion Proposes follow-up commands from current findings Read-only analysis before active scanning Scope re-verification before each scan
Report drafting Drafts findings with severity and remediation PlexTrac / AttackForge; custom copilot script Human review; no client data to cloud AI without approval

Autonomous & Agentic Pentesting Platforms (2025–2026)

Autonomous pentest platforms — XBOW, Bugcrowd's copilot, HackerOne Hai, and the Mindgard / Lakera class of AI-system red-teamers — are compared in depth in the Autonomous AI Pentest Platforms guide (autonomy, data handling, and evidence quality). Use this page for the copilot workflow and that page for platform selection; this section keeps only the summary to avoid drift.

AI-Assisted Code-Review & SAST Copilots

ZeroPath

AI-native SAST. Goes beyond pattern matching by reasoning about cross-file data flow with an LLM; documented real-world CVE finds in 2024–2025. Pairs well with manual review during white-box engagements.

Corgea

AI SAST + auto-remediation. Generates fix PRs for the bugs it finds; useful to demonstrate \"developer-actionable\" findings to clients during a pentest.

Snyk Agent Fix / GitHub Copilot Autofix

Platform-native AI code review. Useful as a reference signal during engagements where the client already runs them — diff their output against your manual findings.

Semgrep Pro / SonarQube Cloud (AI assist)

Established SAST products that added LLM rule-suggestion and triage layers in 2024–2025. Good baseline to combine with ZeroPath / Corgea for cross-tool corroboration.

Adjacent IDE-side coding agents pentesters use daily

These are not pentest products per se, but they have become the default exploit-development / payload-tweaking environment in 2025–2026. Use them inside a sandbox and follow the vibe-coding security guidance to avoid being attacked through your own tooling.

  • Cursor (Composer / Agent) — multi-file edits + shell tools; great for rapid PoC scripting in Python / Go / Rust.
  • Windsurf (Cascade) — agentic IDE with strong context handling; popular for Burp extension dev and exploit scripting.
  • Claude Code (CLI) — Anthropic's terminal coding agent; ideal for one-shot \"write me a binary patcher / shellcode encoder\" tasks.
  • Codex CLI (OpenAI) — terminal agent with sandboxed exec; good for fast Burp / Caido plugin scaffolding.
  • GitHub Copilot Chat (agent mode) — Visual Studio & VS Code; useful for in-repo refactors during source-code review engagements.
  • Gemini Code Assist (Enterprise) — useful when the engagement is in a Google Cloud / Workspace environment with private context.
  • Aider — open-source pair-programming CLI; works well with local models (Ollama / vLLM) when the engagement requires keeping all code on-prem.

HackerAI, BurpGPT & PentestGPT

The original PentestGPT (Deng et al., 2023) is now historical — useful as a reference architecture. HackerAI (formerly HackerGPT; hackerai.co) remains active and wraps current frontier models rather than the original GPT-3.5/4 backends. Pin to a specific service release in your engagement notes so reproduction is possible.

Pentest Copilot (Bugcrowd)

Bugcrowd Pentest Copilot

bugcrowd.com — Commercial Platform

AI assistant in the Bugcrowd platform for vulnerability triage, deduplication, and report quality. Facts in the comparison table below.

Vulnerability Analysis

Automatically analyzes submitted findings, validates severity ratings, and suggests CVSS vector strings based on the vulnerability description and proof of concept.

Finding Deduplication

AI-powered deduplication identifies when new submissions overlap with existing findings, reducing triage time and preventing duplicate payouts.

Report Writing Assist

Generates professional vulnerability write-ups from minimal input — provide a title and PoC, and the AI drafts a complete finding with impact analysis and remediation steps.

Scope Analysis

Parses program scope definitions and helps researchers quickly determine whether a target or vulnerability class is in-scope before investing testing time.

Caido AI

Caido

caido.io — Modern Web Proxy + AI

Rust web proxy (caido.io); the AI Assistant is a paid in-app add-on under Settings → AI. Facts in the comparison table below.

Installation & Setup

caido-install.sh
# Install Caido — download the desktop app or CLI from https://caido.io/download
# Builds are available for Linux, macOS, and Windows.

# The command-line binary is caido-cli (the desktop app embeds it)
caido-cli --version
caido-cli --help

# Caido's configuration file is caido.yaml

AI Assistant is a paid in-app feature

Caido's Assistant is a paid in-app feature — it is not enabled by a CLI flag or a config-file block. The real CLI is caido-cli, the configuration file is caido.yaml, and the Assistant is set up under Settings → AI inside the app. See the Caido AI Assistant quickstart.

Traffic Analysis

AI flags suspicious responses, auth issues, and data leaks in proxied traffic

Param Discovery

AI-powered hidden parameter detection beyond traditional wordlists

Smart Replay

Intelligently mutates requests to test for injection, auth bypass, and IDOR

BurpGPT & ReconAIzer

Burp Suite AI Extensions

BurpGPT (aress31) + ReconAIzer (hisxo)

Burp Suite extensions for LLM analysis inside the proxy: BurpGPT (passive scanning, Pro only — Community unmaintained) and ReconAIzer (context-menu traffic analysis). Facts in the comparison table below.

BurpGPT Community is no longer maintained

Upstream states the Community edition is no longer maintained — only BurpGPT Pro is supported. Budget for the Pro licence (plus API costs) before relying on it in an engagement.

Setup & Configuration

burpgpt-setup.sh
# BurpGPT — the Community edition is no longer maintained upstream.
# Only BurpGPT Pro is supported; see github.com/aress31/burpgpt for
# current install and licensing details.

# 1. Install BurpGPT Pro per the upstream instructions
# 2. Configure in Burp → Extensions → BurpGPT → Settings
# Set provider: OpenAI / Azure OpenAI / Local (Ollama)
# Set the current model and API key, then save

# ReconAIzer — Install from BApp Store or GitHub
# 1. Burp → Extensions → Add → Select reconaizer.jar
# 2. Set OpenAI API key in extension tab
# 3. Right-click any request → "Send to ReconAIzer"

# Custom prompt template (BurpGPT)
# Analyze the following HTTP request/response pair.
# Identify: SQLi, XSS, SSRF, IDOR, auth bypass, info disclosure.
# Rate severity: Critical / High / Medium / Low / Info.
# Provide proof-of-concept payloads where applicable.

BurpGPT Features

  • • Passive scanning with GPT analysis of every proxied request
  • • Custom prompt templates for specific vuln classes
  • • Batch analysis of site map or proxy history
  • • Export AI findings to Burp issue tracker
  • • Support for OpenAI, Azure, and local models

ReconAIzer Features

  • • Right-click context menu → "Analyze with AI"
  • • Automatic HTTP request/response analysis
  • • Payload suggestions based on detected parameters
  • • Sensitive data detection in responses
  • • Security misconfiguration identification

API Cost Optimization

Use a small/cheap current model for cost-effective bulk analysis and reserve a frontier model for complex findings that need deeper reasoning. ReconAIzer and BurpGPT support local models via Ollama for zero API costs — remember that only BurpGPT Pro is still maintained.

HackerAI

HackerAI

hackerai.co — Specialized Security AI (formerly HackerGPT)

Security assistant at hackerai.co (formerly HackerGPT) for recon, payloads, and report drafting. Facts in the comparison table below.

hackerai-usage.sh
# HackerAI (formerly HackerGPT) — hackerai.co
# No installation needed — web-based interface
# Free tier: limited daily messages
# Pro tier: higher limits + tool integrations

# Supported workflows:
# • Bug bounty recon assistance
# • Vulnerability report drafting
# • Payload generation & encoding
# • Tool command reference (nmap, ffuf, sqlmap, etc.)
# • CVE analysis & exploit guidance
# • OWASP Top 10 testing checklists

# Example prompt:
# "Analyze this HTTP response for IDOR vulnerabilities
#  and suggest bypass techniques for the UUID-based
#  access control on /api/v2/users/{id}/documents"

Bug Bounty Focus

Trained on bug bounty reports, HackerOne disclosures, and security research

Report Writing

Generates professional vulnerability reports with impact and PoC sections

Free Tier

Free tier available — no API key or setup required; paid tiers raise limits

PlexTrac AI

PlexTrac

plextrac.com — AI-Assisted Pentest Reporting

Commercial pentest reporting platform; AI writing, risk scoring, and exec summaries run from the web UI against your own tenant. Facts in the comparison table below.

plextrac-api.sh
# PlexTrac AI — pentest reporting platform
# Access: your own tenant, e.g. https://<your-instance>.plextrac.com
# (there is no shared central API host — each tenant has its own URL)

# Auth: authenticate against YOUR tenant to obtain a JWT, then call the
# same tenant's REST API with it:
#   POST https://<your-instance>.plextrac.com/api/v1/authenticate
#   GET  https://<your-instance>.plextrac.com/api/v2/...

# Finding payload fields are documented per tenant; there are no
# "ai_enhance" / "auto_remediation" request fields. AI writing,
# risk scoring, deduplication and exec summaries are driven from
# the web UI, not by API request flags.

# See the vendor docs: https://docs.plextrac.com

WritingAssist

Auto-generates complete finding descriptions from minimal input. Provide a vulnerability title and basic context — AI produces description, impact, steps to reproduce, and remediation.

AI Risk Scoring

Combines CVSS base scores with business context to produce risk ratings that account for asset criticality, data sensitivity, and compensating controls.

AttackForge AI

AttackForge

attackforge.com — AI Pentest Management

Pentest management platform; correlation, reporting, and triage run from the web UI against your own tenant. Facts in the comparison table below.

attackforge-api.sh
# AttackForge — pentest management platform
# Access: your own tenant, e.g. https://<your-instance>.attackforge.com

# AI-assisted features (finding correlation, report generation, triage
# and prioritisation, risk trend analysis) are driven from the web UI.

# Programmatic access uses the tenant's documented REST/OpenAPI
# endpoints with a tenant-scoped token. There is no documented
# "af-cli" binary, and no --ai-enhance / --auto-correlate flags.

# See your tenant's API documentation / OpenAPI spec for exact
# routes and payloads.

Vuln Correlation

AI correlates findings across engagements to identify systemic issues

Auto Reports

Generate complete pentest reports from findings with one click

Workflow AI

Smart task assignment and progress tracking across team members

Building Custom AI Copilots

Commercial copilots are powerful, but building your own gives you full control over tool integration, prompt engineering, and data privacy. Below are three approaches ranging from cloud to fully local.

Authorization Required

Custom AI copilots that execute security tools must only be used against targets you have explicit written authorization to test. Always verify scope before running automated scans.

Approach 1: Claude with MCP Tools

The Model Context Protocol (MCP) lets Claude Desktop or VS Code Copilot directly invoke security tools — see the MCP Security guide for the threat model before connecting servers. See the HexStrike AI guide for a full MCP server with 150+ tools.

claude_desktop_config.json
# Claude with MCP Tools — leveraging HexStrike or custom MCP servers
# See: /offensive-ai/02-hexstrike/ for full MCP setup

# claude_desktop_config.json
{
  "mcpServers": {
    "security-copilot": {
      "command": "python3",
      "args": ["./mcp_security_server.py"],
      "env": {
        "NMAP_PATH": "/usr/bin/nmap",
        "NUCLEI_PATH": "/usr/bin/nuclei",
        "WORDLISTS": "/usr/share/seclists"
      }
    }
  }
}

# With MCP, Claude can directly:
# • Run nmap/nuclei/ffuf scans
# • Parse and correlate results
# • Generate findings with CVSS scores
# • Write complete pentest reports
# • Chain tools in multi-step workflows

Approach 2: GPT-5.x with Function Calling

OpenAI's function calling API lets you define security tools as typed functions that the model can invoke in a loop — building an autonomous pentest pipeline with human oversight.

ai_security_copilot.py
#!/usr/bin/env python3
"""AI Security Copilot — Custom implementation using OpenAI function calling."""

import json
import subprocess
import openai

client = openai.OpenAI()  # Uses OPENAI_API_KEY env var

# Define security tools the AI can invoke
TOOLS = [
    {
        "type": "function",
        "function": {
            "name": "nmap_scan",
            "description": "Run an Nmap scan against a target host or network",
            "parameters": {
                "type": "object",
                "properties": {
                    "target": {"type": "string", "description": "Target IP or hostname"},
                    "scan_type": {
                        "type": "string",
                        "enum": ["-sV", "-sC", "-sS", "-A", "-O"],
                        "description": "Nmap scan type flag"
                    },
                    "ports": {"type": "string", "description": "Port range, e.g. 1-1000"}
                },
                "required": ["target"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "nuclei_scan",
            "description": "Run Nuclei vulnerability scanner with templates",
            "parameters": {
                "type": "object",
                "properties": {
                    "target": {"type": "string", "description": "Target URL"},
                    "templates": {
                        "type": "string",
                        "description": "Template tags: cves,misconfig,exposures,takeovers"
                    },
                    "severity": {
                        "type": "string",
                        "enum": ["info", "low", "medium", "high", "critical"],
                        "description": "Minimum severity filter"
                    }
                },
                "required": ["target"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "ffuf_fuzz",
            "description": "Run ffuf directory/parameter fuzzing",
            "parameters": {
                "type": "object",
                "properties": {
                    "url": {"type": "string", "description": "Target URL with FUZZ keyword"},
                    "wordlist": {"type": "string", "description": "Path to wordlist"},
                    "method": {"type": "string", "enum": ["GET", "POST"], "default": "GET"}
                },
                "required": ["url"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "analyze_response",
            "description": "Analyze an HTTP response for security issues",
            "parameters": {
                "type": "object",
                "properties": {
                    "url": {"type": "string", "description": "URL to fetch and analyze"},
                    "check_headers": {"type": "boolean", "default": True},
                    "check_cookies": {"type": "boolean", "default": True}
                },
                "required": ["url"]
            }
        }
    }
]


def execute_tool(name: str, args: dict) -> str:
    """Execute a security tool and return output."""
    if name == "nmap_scan":
        cmd = ["nmap", args.get("scan_type", "-sV")]
        if "ports" in args:
            cmd += ["-p", args["ports"]]
        cmd.append(args["target"])
        result = subprocess.run(cmd, capture_output=True, text=True, timeout=300)
        return result.stdout

    elif name == "nuclei_scan":
        cmd = ["nuclei", "-u", args["target"], "-silent"]
        if "templates" in args:
            cmd += ["-tags", args["templates"]]
        if "severity" in args:
            cmd += ["-severity", args["severity"]]
        result = subprocess.run(cmd, capture_output=True, text=True, timeout=300)
        return result.stdout

    elif name == "ffuf_fuzz":
        wordlist = args.get("wordlist", "/usr/share/seclists/Discovery/Web-Content/common.txt")
        cmd = ["ffuf", "-u", args["url"], "-w", wordlist, "-mc", "200,301,302,403"]
        result = subprocess.run(cmd, capture_output=True, text=True, timeout=120)
        return result.stdout

    elif name == "analyze_response":
        import requests
        resp = requests.get(args["url"], verify=False, timeout=10)
        analysis = f"Status: {resp.status_code}\nHeaders:\n"
        security_headers = [
            "Content-Security-Policy", "X-Frame-Options",
            "X-Content-Type-Options", "Strict-Transport-Security",
            "X-XSS-Protection", "Referrer-Policy"
        ]
        for h in security_headers:
            val = resp.headers.get(h, "MISSING")
            analysis += f"  {h}: {val}\n"
        return analysis

    return f"Unknown tool: {name}"


def run_copilot(user_message: str, target_context: str = "") -> None:
    """Run the AI security copilot with tool-calling loop."""
    system_prompt = """You are an expert penetration tester AI copilot.
You have access to security tools: nmap, nuclei, ffuf, and HTTP analysis.
Plan your approach methodically:
1. Enumerate the attack surface
2. Identify potential vulnerabilities
3. Validate findings with targeted scans
4. Provide actionable findings with severity ratings
Always explain your reasoning before executing tools."""

    messages = [
        {"role": "system", "content": system_prompt},
        {"role": "user", "content": f"Target context: {target_context}\n\n{user_message}"}
    ]

    while True:
        response = client.chat.completions.create(
            model="gpt-4o",
            messages=messages,
            tools=TOOLS,
            tool_choice="auto"
        )
        msg = response.choices[0].message
        messages.append(msg)

        if msg.tool_calls:
            for tc in msg.tool_calls:
                args = json.loads(tc.function.arguments)
                print(f"[*] Executing: {tc.function.name}({args})")
                result = execute_tool(tc.function.name, args)
                messages.append({
                    "role": "tool",
                    "tool_call_id": tc.id,
                    "content": result[:8000]  # Truncate large outputs
                })
        else:
            print(msg.content)
            break


if __name__ == "__main__":
    run_copilot(
        "Perform a security assessment of the target web application.",
        target_context="Target: 10.10.10.50, Scope: *.target.htb, Auth: unauthenticated"
    )

Approach 3: Local Models with Ollama

For air-gapped environments or data-sensitive engagements, run a fully local copilot using Ollama. No API keys, no data exfiltration risk, no cloud dependency.

ollama_copilot.py
#!/usr/bin/env python3
"""Local AI Security Copilot using Ollama — no API keys needed."""

import json
import subprocess
import requests

OLLAMA_URL = "http://localhost:11434/api/chat"
MODEL = "llama3.1:70b"  # Or mixtral, codestral, etc.

def chat_with_tools(messages: list) -> dict:
    """Send messages to local Ollama model."""
    resp = requests.post(OLLAMA_URL, json={
        "model": MODEL,
        "messages": messages,
        "stream": False,
        "options": {"temperature": 0.1, "num_ctx": 32768}
    })
    return resp.json()["message"]

def security_copilot(query: str) -> None:
    """Offline security copilot — runs entirely on local hardware."""
    system = """You are a penetration testing assistant running locally.
Analyze security findings, suggest next steps, and help write reports.
You have no internet access — focus on analysis and methodology."""

    messages = [
        {"role": "system", "content": system},
        {"role": "user", "content": query}
    ]

    response = chat_with_tools(messages)
    print(response["content"])

# Usage:
# security_copilot("Analyze these nmap results and suggest attack vectors: ...")

Copilot Comparison

Tool Type Best For AI Model Cost Open Source?
Pentest Copilot Platform Bug bounty triage Proprietary Bugcrowd subscription No
Caido AI Web Proxy Web app testing Configurable (in-app) Free / Pro; AI is a paid add-on Partial (core)
BurpGPT Burp Extension Passive scanning Current OpenAI / Local BurpGPT Pro licence + API costs No (Pro is commercial)
ReconAIzer Burp Extension Traffic analysis Configurable API costs Yes
HackerAI Web App Bug bounty, learning Frontier models Free + Pro No
PlexTrac AI Reporting Platform Report automation Proprietary Commercial license No
AttackForge AI Management Platform Pentest ops Proprietary Commercial license No
Custom (Cloud API) DIY Script Full control Any (OpenAI, Claude) API costs Your code
Custom (Ollama) DIY Local Air-gapped / private Llama 4, Qwen3 Free (hardware) Yes

Best Practices

Do

  • • Verify AI findings manually — false positives are common
  • • Use low temperature (0.1–0.3) for tool-calling copilots
  • • Truncate large tool outputs to stay within context limits
  • • Log all AI-initiated tool executions for audit trails
  • • Start with read-only analysis before enabling active scanning

Don't

  • • Blindly trust AI severity ratings without validation
  • • Send client data to cloud AI without contract approval
  • • Let AI copilots run unattended against production systems
  • • Use AI-generated PoCs without understanding them first
  • • Skip scope verification because "the AI said it was fine"

Data Privacy

When using cloud-based AI copilots (OpenAI, Anthropic, Bugcrowd), be aware that HTTP traffic, scan results, and finding details are sent to third-party APIs. For sensitive engagements, use local models (Ollama) or ensure your AI provider has a BAA / DPA in place.

Practice Labs

THM: OWASP Top 10 (with BurpGPT) TryHackMe medium
T1190T1595