Tailored news hub
home›Sistemi Agentici›

Come usare PentesterFlow per il Pentesting e il Bug Hunting

Una guida pratica all'assistente terminale open-source che combina LLM e strumenti di sicurezza reali per audit efficaci.

Come usare PentesterFlow per il Pentesting e il Bug Hunting
#Agenti#Automazione#LLM#Sicurezza#Strumenti Dev

Scopri PentesterFlow, l'assistente terminale open-source per penetration testing e bug hunting. Integra LLM con strumenti di sicurezza reali per automatizzare, verificare e riportare vulnerabilità, mantenendo il controllo umano. Risolve problemi come allucinazioni AI e integrazione di strumenti, offrendo flussi di lavoro specifici per il dominio.

Introduzione e Caratteristiche Principali

PentesterFlow è un assistente terminale open-source per penetration testing autorizzato e bug hunting. Combina LLM locali o remoti con strumenti di sicurezza reali, mantenendo il controllo all'analista umano. L'agente pianifica, esegue, verifica, riporta e apprende, chiedendo sempre approvazione prima di azioni sensibili.

Risolve problemi concreti: flussi di lavoro specifici per dominio per ricognizione, vulnerabilità web, SSRF, SSTI, JWT, GraphQL e altro ancora; previene falsi positivi richiedendo evidenze di richiesta/risposta; supporta impegni prolungati con salvataggio della sessione, compattazione del contesto e snapshot; si integra con shell, HTTP, Burp, cattura browser e strumenti MCP; e impone la supervisione umana con richieste di permesso e una modalità YOLO esplicita per i laboratori.

Ogni comando è copiabile e incollabile, i ritrovamenti sono scritti in Markdown con prove curl e i log sono file locali deterministici, garantendo riproducibilità e verificabilità.

Installazione e Configurazione

L'installazione avviene con un singolo comando. L'installer verifica il checksum SHA-256 pubblicato. È necessario un backend LLM supportato; il modo più rapido per iniziare è con un modello locale tramite Ollama. Scarica un modello capace come qwen2.5-coder:32b, quindi avvia pentesterflow. All'interno della CLI, usa /provider per configurare il backend e /target https://app.example.com per impostare l'URL dell'engagement. Da lì, assegna compiti di alto livello.

Per riprendere una sessione precedente, esegui pentesterflow --resume <session-id>; lo strumento mostra un riepilogo della memoria persistente in modo da poter continuare senza ricostruire il contesto.

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/PentesterFlow/agent/main/install.sh | sh

# Windows PowerShell
irm https://raw.githubusercontent.com/PentesterFlow/agent/main/install.ps1 | iex

# Pin a specific version and install directory
PENTESTERFLOW_VERSION=v0.1.6 PENTESTERFLOW_INSTALL_DIR="$HOME/.local/bin" \
  sh -c "$(curl -fsSL https://raw.githubusercontent.com/PentesterFlow/agent/main/install.sh)"

Utilizzo Pratico

Un engagement tipico inizia impostando un target e assegnando un compito. Ad esempio, testando un'API orders per broken access control: l'agente carica la skill webvuln, invia una richiesta HTTP GET all'endpoint, verifica l'accesso cross-account con un comando BashTool e salva un ritrovamento confermato con le evidenze. Il file del ritrovamento include un comando curl copiabile e il materiale grezzo della richiesta.

Puoi scegliere il backend LLM e il modello in modo interattivo con /provider e /model list, oppure tramite opzioni da riga di comando. I backend supportati includono Ollama, LM Studio, endpoint compatibili con OpenAI, Kimi, Groq e Gemini. Le chiavi API sono impostate tramite variabili d'ambiente come MOONSHOT_API_KEY, GROQ_API_KEY, o GEMINI_API_KEY.

# Ollama
pentesterflow --backend ollama --model qwen2.5-coder:32b

# LM Studio
pentesterflow --backend lmstudio --model zai-org/glm-4.7-flash

# OpenAI-compatible endpoint
pentesterflow --backend openai-compat \
  --base-url https://api.example.com/v1 \
  --api-key sk-...

# Kimi (requires API key)
MOONSHOT_API_KEY=sk-... pentesterflow --backend kimi --model kimi-k2.6

# Groq
GROQ_API_KEY=gsk_... pentesterflow --backend groq --model openai/gpt-oss-20b

# Gemini
GEMINI_API_KEY=AIza... pentesterflow --backend gemini --model models/gemini-3.5-flash

Comandi Slash e Integrazione con Burp

I comandi slash principali controllano la sessione: /provider e /model gestiscono il LLM; /target imposta l'URL dell'engagement; /plan esegue un turno di sola pianificazione; /next suggerisce aree non testate; /compact riassume il contesto nella memoria persistente; /snapshot scrive uno snapshot del contesto oscurato; /skills gestisce i playbook delle skill; /yolo attiva/disattiva l'auto-approvazione per i laboratori; /update recupera l'ultima release; /reset cancella la sessione; /<skill-name> carica una skill.

Per la collaborazione con Burp Suite, avvia il bridge con pentesterflow --burp [porta]. Puoi inviare richieste Burp selezionate a PentesterFlow per l'analisi, accodare richieste come attività di scansione e importare ritrovamenti confermati direttamente tra gli issue di Burp. Il bridge preserva le richieste grezze per evidenza e riesecuzione.

Configurazione e Archiviazione dei Dati

La configurazione principale risiede in ~/.pentesterflow/config.json e memorizza impostazioni di backend, modello, endpoint e skill disabilitate. Le variabili d'ambiente impostano le chiavi API per Kimi (MOONSHOT_API_KEY), Groq (GROQ_API_KEY) e Gemini (GEMINI_API_KEY). Il logging di debug si attiva con PENTESTERFLOW_DEBUG_SESSION=1.

Opzioni da riga di comando importanti: --backend, --model, --base-url, --api-key, --resume <id>, --burp [porta], --debug-session, --list-tools, --list-skills, --no-stream, --dangerously-skip-permissions.

I dati sono archiviati in diverse posizioni:

  • ~/.pentesterflow/sessions/*.json – sessioni salvate
  • ~/.pentesterflow/context/*.md – snapshot oscurati
  • ./.pentesterflow/intelligence/scenarios.jsonl – intelligence di progetto
  • ~/.pentesterflow/builtin-skills/ – skill integrate
  • ./findings/<slug>.md – ritrovamenti confermati
  • ~/.pentesterflow/logs/pentesterflow.log – log strutturati
  • ~/.pentesterflow/debug/session-*.jsonl – log di debug completi (sensibili)

Constraints, Best Practices, and Procedures

Vincoli: PentesterFlow deve essere utilizzato solo su sistemi con autorizzazione esplicita. Per impostazione predefinita, le azioni sensibili richiedono approvazione; la modalità YOLO (/yolo on) approva automaticamente tutto ed è destinata esclusivamente ai laboratori. Esiste una sintonizzazione specifica per il provider: Groq utilizza un prompt compatto, LM Studio taglia gli indicatori del template. I comandi shell catastrofici sono bloccati. Non è presente un'interfaccia grafica. I log di debug contengono dati grezzi del target e devono essere gestiti come confidenziali.

Best practices: Confermare sempre l'autorizzazione. Utilizzare confirm_finding solo dopo aver riprodotto il problema con una richiesta deterministica e la risposta osservata. Sfruttare il tracciamento della copertura e chiedere /next per identificare le aree non testate. Inserire le competenze specifiche del progetto in ./.pentesterflow/skills/ e quelle personali riutilizzabili in ~/.pentesterflow/skills/. Compattare le sessioni lunghe con /compact. Abilitare il logging di debug per la risoluzione dei problemi, ma trattare l'output come sensibile. Aggiornare dall'interno dello strumento con /update.

Procedure degne di nota: Per installare una versione specifica, impostare le variabili d'ambiente PENTESTERFLOW_VERSION e PENTESTERFLOW_INSTALL_DIR prima di eseguire il programma di installazione. Per aggiornare dalla CLI, eseguire /update o /update v0.1.6. Per la collaborazione con Burp, avviare PentesterFlow con --burp 9999 e inviare le richieste da Burp.

Articoli Correlati