Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pentestagent — Framework di agenti AI per test di sicurezza black-box con orchestrazione autonoma multi-agente, strumenti di pentesting integrati e integrazione MCP per bug bounty, red-team e flussi di lavoro di penetration testing. | Kitploit
Strumenti/GitHubGitHub/gh05tcrew/pentestagent
OSINT (Open Source Intelligence)RicognizioneScanner di VulnerabilitàFramework di ExploitSicurezza WebSicurezza di ReteCTFPenetration TestingApprendimento e FormazioneRed TeamingSicurezza dell'IA
2.9k586552 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
gh05tcrew/pentestagent

pentestagent

Framework di agenti AI per test di sicurezza black-box con orchestrazione autonoma multi-agente, strumenti di pentesting integrati e integrazione MCP per bug bounty, red-team e flussi di lavoro di penetration testing.

Vedi Repository
PentestAgent Logo

PentestAgent

Test di Penetrazione AI

Python License Version Security MCP

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

Requisiti

  • Python 3.10+
  • Chiave API per OpenAI, Anthropic o altri provider supportati da LiteLLM

Installazione

root@kitploit:~
# Clona
git clone https://github.com/GH05TCREW/pentestagent.git
cd pentestagent

# Configurazione (crea venv, installa dipendenze)
.\scripts\setup.ps1   # Windows
./scripts/setup.sh    # Linux/macOS

# Oppure manuale
python -m venv venv
.\venv\Scripts\Activate.ps1  # Windows
source venv/bin/activate     # Linux/macOS
pip install -e ".[all]"
playwright install chromium  # Richiesto per lo strumento browser

Configurazione

Crea un file .env nella root del progetto:

root@kitploit:~
ANTHROPIC_API_KEY=sk-ant-...
PENTESTAGENT_MODEL=claude-sonnet-4-20250514

Oppure per OpenAI:

root@kitploit:~
OPENAI_API_KEY=sk-...
PENTESTAGENT_MODEL=gpt-5

Qualsiasi modello supportato da LiteLLM funziona.

Utilizzo di un relay / base API personalizzata

Punta PentestAgent a qualsiasi endpoint compatibile con OpenAI tramite OPENAI_API_BASE:

root@kitploit:~
OPENAI_API_KEY=your-relay-token
OPENAI_API_BASE=https://relay.example/v1
PENTESTAGENT_MODEL=openai/<nome-modello-sul-tuo-relay>

Per endpoint compatibili con Anthropic, usa ANTHROPIC_API_BASE. Vedi .env.example per note complete sui provider e opzioni di embedding.

Esecuzione

root@kitploit:~
pentestagent                      # Avvia TUI
pentestagent -t 192.168.1.1       # Avvia con target
pentestagent tui --docker         # Esegue strumenti in container Docker

Docker

Esegue gli strumenti all'interno di un container Docker per isolamento e strumenti di pentesting preinstallati.

Opzione 1: Scarica immagine pre-costruita (più veloce)

root@kitploit:~
# Immagine base con 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

# Immagine Kali con metasploit, sqlmap, hydra, ecc.
docker run -it --rm \
  -e ANTHROPIC_API_KEY=your-key \
  ghcr.io/gh05tcrew/pentestagent:kali

Opzione 2: Build locale

root@kitploit:~
# Build
docker compose build

# Esecuzione
docker compose run --rm pentestagent

# Oppure con Kali
docker compose --profile kali build
docker compose --profile kali run --rm pentestagent-kali

Il container esegue PentestAgent con accesso agli strumenti di pentesting Linux. L'agente può usare nmap, msfconsole, sqlmap, ecc. direttamente tramite lo strumento terminale.

Richiede Docker installato e in esecuzione.

Modalità

PentestAgent ha tre modalità, accessibili tramite comandi nella TUI:

Comandi TUI

root@kitploit:~
/assist <compito>    Singola istruzione one-shot.
/agent <compito>     Esegue agente autonomo su un compito
/crew <compito>      Esegue team multi-agente su un compito
/interact <compito>  Chatta con l'agente in modalità guidata
/target <host>       Imposta target
/tools               Elenca strumenti disponibili
/notes               Mostra note salvate
/report              Genera report dalla sessione
/memory              Mostra utilizzo token/memoria
/prompt              Mostra prompt di sistema
/conversations       Sfoglia e ripristina conversazioni salvate
/mcp <list/add>      Visualizza o aggiunge un nuovo server MCP.
/spawn [target] [--scope CIDR] [--model M] [--no-rag] [--no-mcp]
                     Genera manualmente un agente MCP figlio dalla TUI.
/despawn <nome_server>
                     Termina e rimuove un agente figlio generato in precedenza.
/clear               Pulisci chat e cronologia
/quit                Esci (anche /exit, /q)
/help                Mostra aiuto (anche /h, /?)

Premere Esc per fermare un agente in esecuzione. Ctrl+Q per uscire.

Playbook

PentestAgent include playbook di attacco predefiniti per test di sicurezza black-box. I playbook definiscono un approccio strutturato a specifiche valutazioni di sicurezza.

Esegui un playbook:

root@kitploit:~
pentestagent run -t example.com --playbook thp3_web

Playbook Demo

Strumenti

PentestAgent include strumenti integrati e supporta MCP (Model Context Protocol) per estensibilità.

Strumenti integrati: terminal, browser, notes, web_search (richiede TAVILY_API_KEY), spawn_mcp_agent

Auto-generazione dell'agente (spawn_mcp_agent)

spawn_mcp_agent è uno strumento integrato che permette a un agente in esecuzione di generare una copia figlia di sé stesso come server MCP subordinato connesso su stdio. Il processo figlio è completamente isolato — proprio runtime, client LLM, cronologia conversazioni e archivio note — e l'insieme completo dei suoi strumenti viene iniettato negli strumenti disponibili dell'agente padre dopo la generazione.

Ciò consente flussi di lavoro multi-agente gerarchici senza orchestrazione esterna: l'agente si auto-organizza delegando sottocompiti con ambito definito a figli che genera su richiesta.

Dopo che spawn_mcp_agent ritorna, gli strumenti del figlio (run_task, run_task_async, await_tasks, ecc.) sono disponibili alla prossima chiamata di strumento. Il nome del server figlio viene assegnato automaticamente (es. child_agent_1) e restituito nel risultato.

Esempio — orchestratore delega ricognizione parallela a due figli:

root@kitploit:~
# Turno 1: genera due agenti figli isolati
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"]

# Turno 2: gli strumenti dei figli sono ora disponibili — delega lavoro in modo asincrono
child_agent_1__run_task_async  task="Scansione porte completa ed enumerazione servizi"
child_agent_2__run_task_async  task="Scansione porte completa ed enumerazione servizi"

# Turno 3: attendi e raccogli
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>"

Controllo Manuale dell'Agente Figlio (/spawn e /despawn)

Oltre allo strumento automatico spawn_mcp_agent, la TUI espone due comandi che ti permettono di generare e terminare agenti figli manualmente, indipendentemente da un ciclo agente in esecuzione.

/spawn

root@kitploit:~
/spawn [target] [--scope CIDR ...] [--model MODELLO] [--no-rag] [--no-mcp]

Genera un nuovo agente MCP figlio su stdio e lo collega alla sessione corrente. Il figlio appare come pannello terminale collassabile nella barra laterale della TUI e i suoi strumenti diventano disponibili per l'agente padre alla prossima chiamata di strumento.

Esempi:

root@kitploit:~
/spawn 10.0.1.1
/spawn 10.0.1.1 --scope 10.0.1.0/24 --model claude-sonnet-4-20250514
/spawn --target 10.0.1.1 --scope 10.0.1.0/24 --no-rag

/despawn

root@kitploit:~
/despawn <nome_server>

Termina l'agente figlio identificato da nome_server (es. child_agent_1), rimuove il suo pannello terminale dalla TUI e disconnette i suoi strumenti dalla sessione padre. Usa /mcp list per vedere i nomi di tutti gli agenti figli attualmente attivi.

Esempio:

root@kitploit:~
/despawn child_agent_1

Ottimizzatore di Strumenti MCP RAG

Quando un server MCP espone più di 128 strumenti, PentestAgent sostituisce automaticamente l'intero catalogo con un singolo strumento mcp_<server>_rag_optimizer. Questo meta-strumento utilizza la similarità di embedding (tramite LiteLLM, default text-embedding-3-small) per recuperare gli strumenti più rilevanti per il compito corrente e li inietta nel turno successivo dell'agente — mantenendo la finestra di contesto gestibile senza perdere l'accesso all'insieme completo degli strumenti.

L'ottimizzatore è trasparente per l'agente: chiama lo strumento RAG con query mirate in linguaggio naturale che descrivono ciò di cui ha bisogno, e gli strumenti corrispondenti diventano disponibili al turno successivo per essere chiamati direttamente.

Guida all'uso per l'agente:

ArgomentoTipoDefaultDescrizione

Gli embedding vengono calcolati una volta all'avvio e memorizzati nella cache, quindi le query ripetute sono veloci. L'ottimizzatore è costruito per server, quindi ogni server MCP con un catalogo grande ha il proprio indice indipendente.

Suggerimento: Passa una query per ogni capacità distinta invece di combinare tutto in una singola query. ["list open ports on a host", "get process memory usage"] produce risultati migliori rispetto a ["list ports and memory and CPU"].

Integrazione MCP

PentestAgent supporta MCP (Model Context Protocol) in due direzioni: consumare server MCP esterni come fonti di strumenti, ed esporsi come server MCP in modo che client esterni (Claude Desktop, Cursor, ecc.) possano guidare PentestAgent programmaticamente.


Consumare Server MCP Esterni (Modalità Client)

Configura mcp_servers.json per connettere PentestAgent a qualsiasi server MCP esterno. Esempio di configurazione:

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

Esporre PentestAgent come Server MCP (Modalità Server)

PentestAgent può essere eseguito come server MCP, permettendo a qualsiasi client compatibile con MCP di inviare compiti, ispezionare risultati e controllare l'agente da remoto. Sono supportati due trasporti:

STDIO — per client locali (es. Claude Desktop, Cursor):

root@kitploit:~
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) — per client remoti o in rete:

root@kitploit:~
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

Il trasporto SSE espone un singolo endpoint /mcp che supporta POST (richieste), GET (stream SSE persistente per push iniziati dal server) e DELETE (teardown della sessione). Le sessioni vengono tracciate tramite l'header Mcp-Session-Id.

Tutti i flag di mcp_server:

Esempio: Configurazione Claude Desktop (claude_desktop_config.json)
root@kitploit:~
{
  "mcpServers": {
    "pentestagent": {
      "command": "pentestagent",
      "args": ["mcp_server", "--type", "stdio"]
    }
  }
}

Riferimento agli Strumenti del Server MCP

Quando agisce come server MCP, PentestAgent espone i seguenti strumenti:

Stato e Configurazione del Server

StrumentoDescrizione
get_server_statusStato dal vivo del server: prontezza, conteggi compiti per stato, target/scope primario, dimensione archivio memoria
get_configConfigurazione primaria dell'agente: target, scope, iterazioni massime, elenco strumenti
update_configAggiorna target, scope o iterazioni massime per tutti i compiti successivi

Esecuzione dei Compiti

StrumentoDescrizione
run_taskInvia un compito e blocca fino al completamento. Restituisce risultato completo, strumenti utilizzati e snapshot delle note
run_task_async

Ispezione dei Compiti

StrumentoDescrizione

Controllo dei Compiti

StrumentoDescrizione
cancel_taskAnnulla un compito in esecuzione o in attesa tramite ID

Gestione degli Strumenti

StrumentoDescrizione
list_toolsElenca tutti gli strumenti disponibili per l'agente
enable_toolAbilita uno strumento con nome sull'agente primario
disable_toolDisabilita uno strumento con nome sull'agente primario

Cronologia delle Conversazioni

StrumentoDescrizione
get_conversation_historyRestituisce la cronologia dei messaggi per un compito o per l'agente primario. Supporta un parametro limit
reset_conversationPulisce la cronologia della conversazione per un compito o per l'agente primario

Memoria

StrumentoDescrizione
store_memoryPersiste una coppia chiave-valore nell'archivio memoria in-process
retrieve_memoryRecupera per chiave esatta, cerca per sottostringa o elenca tutte le chiavi
clear_memoryElimina una chiave specifica o cancella tutta la memoria con

Osservabilità

StrumentoDescrizione
get_logsRestituisce log di esecuzione recenti, opzionalmente filtrati per livello (info / warning / error)
get_metricsMetriche runtime: conteggi compiti, tasso di successo, totale chiamate strumenti, dimensioni memoria e log

Esempio di Flusso di Lavoro con Compiti Asincroni

Per compiti di ricognizione di lunga durata, usa il pattern asincrono:

root@kitploit:~
# 1. Invia compiti senza bloccare
run_task_async  task="Enumera sottodomini di example.com"  target="example.com"
run_task_async  task="Esegui scansione nmap SYN su example.com"     target="example.com"

# 2. Blocca fino al completamento di entrambi (massimo 5 minuti)
await_tasks  task_ids=["<id1>", "<id2>"]  timeout_seconds=300

# 3. Recupera risultati completi
get_task_result  task_id="<id1>"
get_task_result  task_id="<id2>"

Gestione degli Strumenti tramite CLI

root@kitploit:~
pentestagent tools list         # Elenca tutti gli strumenti
pentestagent tools info <nome>  # Mostra dettagli dello strumento
pentestagent mcp list           # Elenca i server MCP
pentestagent mcp add <nome> <comando> [args...]  # Aggiungi server MCP
pentestagent mcp test <nome>    # Testa connessione MCP

Controlli della Cronologia delle Conversazioni

Ogni messaggio utente nella TUI espone due pulsanti di azione inline: rewind e fork.

Rewind

Clicca rewind su qualsiasi messaggio utente per troncare la conversazione fino a prima di quel messaggio — sia nell'interfaccia che nella cronologia in memoria dell'agente. Usalo per riprovare una query da zero senza salvare il percorso scartato.

Fork

Clicca >> fork su qualsiasi messaggio utente per diramare la conversazione da quel punto:

  1. La conversazione corrente completa viene salvata nell'archivio conversazioni e viene mostrato un breve ID snapshot.
  2. La conversazione viene quindi troncata fino a prima del messaggio selezionato (come per rewind).

Questo ti permette di provare un approccio alternativo da qualsiasi punto mantenendo il thread originale recuperabile tramite /conversations.


Cronologia Conversazioni

PentestAgent persiste automaticamente ogni conversazione in modo che tu possa rivedere, confrontare e ripristinare sessioni passate.

Salvataggio automatico avviene dopo ogni compito /assist, /agent, /crew e /interact, e prima di /clear. Vengono mantenute fino a 20 conversazioni; quelle più vecchie vengono eliminate automaticamente.

Posizione di archiviazione: workspaces/<attivo>/memory/conversations/ quando un workspace è attivo, o conversations/ nella root del progetto altrimenti. Ogni conversazione è un file JSON.

Sfoglia e ripristina con /conversations:

Il comando /conversations apre un modale a pannello diviso all'interno della TUI:

  • Pannello sinistro — elenco delle conversazioni salvate con titolo e data.
  • Pannello destro — anteprima dei metadati più i primi 5 messaggi (messaggi utente in blu, risposte agente in verde, chiamate strumenti in giallo, risultati strumenti in grigio). Un conteggio mostra quanti messaggi aggiuntivi esistono.
imagen

Seleziona una conversazione e premi Restore per ricaricarla nella sessione corrente, o Close per chiudere il modale.

Conoscenza

  • RAG: Posiziona metodologie, CVE o wordlist in pentestagent/knowledge/sources/ per l'iniezione automatica di contesto.
  • Note: Gli agenti salvano i risultati in loot/notes.json con categorie (credential, vulnerability, finding, artifact). Le note persistono tra le sessioni e vengono iniettate nel contesto dell'agente.
  • Shadow Graph: In modalità Crew, l'orchestratore costruisce un grafo di conoscenza dalle note per derivare informazioni strategiche (es. "Abbiamo credenziali per l'host X").

Struttura del Progetto

root@kitploit:~
pentestagent/
  agents/         # Implementazioni degli agenti
  config/         # Impostazioni e costanti
  interface/      # TUI e CLI
  knowledge/      # Sistema RAG e shadow graph
  llm/            # Wrapper LiteLLM
  mcp/            # Configurazioni client e server MCP
  playbooks/      # Playbook di attacco
  runtime/        # Ambiente di esecuzione
  tools/          # Strumenti integrati

Sviluppo

root@kitploit:~
pip install -e ".[dev]"
pytest                       # Esegui test
pytest --cov=pentestagent    # Con copertura
black pentestagent           # Formatta
ruff check pentestagent      # Lint
## Aspetti Legali

Utilizza solo contro sistemi per i quali hai esplicita autorizzazione al test. L'accesso non autorizzato è illegale.

## Licenza

MIT
Scarica lo strumento
ModalitàComandoDescrizione
Assist/assist <compito>Singola istruzione one-shot, con esecuzione di strumenti
Agent/agent <compito>Esecuzione autonoma di un singolo compito
Crew/crew <compito>Modalità multi-agente. L'orchestrator genera lavoratori specializzati
Interact/interact <compito>Modalità interattiva. Chatta con l'agente, che ti aiuterà e guiderà durante la procedura di pentesting
ArgomentoTipoDefaultDescrizione
targetstringa—Target di pentest da passare al figlio
scopestringa[]—Target/CIDR nell'ambito per il figlio
modelstringavariabile d'ambienteIdentificatore del modello, sovrascrive PENTESTAGENT_MODEL sul figlio
no_ragbooleanofalseSalta inizializzazione motore RAG sul figlio
no_mcpbooleanotrueSalta connessioni server MCP esterni sul figlio (consigliato)
ArgomentoDescrizione
targetTarget di pentest da passare al figlio (posizionale o --target)
--scope CIDRUno o più CIDR nell'ambito (ripetibile)
--model MODELLOSovrascrive il modello per l'agente figlio
--no-ragSalta inizializzazione motore RAG sul figlio
--no-mcpSalta connessioni server MCP esterni sul figlio
queries
stringa[]
(obbligatorio)
Una query mirata per ogni capacità necessaria. Più specifico = maggiore accuratezza
top_kintero20Strumenti da recuperare per query (max 128). I risultati vengono uniti e deduplicati
FlagDefaultDescrizione
--type(obbligatorio)Trasporto: stdio o sse
--host0.0.0.0Host di bind per SSE
--port8080Porta di bind per SSE
--targetnessunoTarget primario di pentest (IP / hostname)
--scope[]Target/CIDR nell'ambito (separati da spazio)
--modelvariabile d'ambienteIdentificatore del modello, sovrascrive PENTESTAGENT_MODEL
--dockerfalseUsa DockerRuntime invece di LocalRuntime
--no-ragfalseSalta inizializzazione motore RAG
--no-mcpfalseSalta connessioni server MCP esterni
Invia un compito e ritorna immediatamente con un task_id. Interroga con get_task_status
list_tasksElenca tutti i compiti con stato, target e riepilogo. Filtrabile per stato
get_task_statusInterroga lo stato corrente e l'anteprima del risultato di un compito
get_task_resultRisultato completo del compito: output finale, passaggi di ragionamento, tutte le chiamate agli strumenti e risultati, snapshot delle note
await_tasksBlocca fino a quando un insieme di ID compiti asincroni non sono tutti completati (interroga ogni 500 ms, timeout configurabile)
scope='all'