Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
promptmap — uno scanner di sicurezza per applicazioni LLM personalizzate | Kitploit
Strumenti/GitHubGitHub/utkusen/promptmap
Scanner di VulnerabilitàSicurezza WebPenetration TestingApprendimento e FormazioneSicurezza dell'IATop in Sicurezza dell'IA n.8
GitHubutkusen/promptmap

promptmap

uno scanner di sicurezza per applicazioni LLM personalizzate

Vedi Repository
1.2k1345010 mesi 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
                              _________       __O     __O o_.-._ 
  Humans, Do Not Resist!  \|/   ,-'-.____()  / /\_,  / /\_|_.-._|
    _____   /            --O-- (____.--""" ___/\   ___/\  |      
   ( o.o ) /  Utku Sen's  /|\  -'--'_          /_      /__|_     
    | - | / _ __ _ _ ___ _ __  _ __| |_ _ __  __ _ _ __|___ \    
  /|     | | '_ \ '_/ _ \ '  \| '_ \  _| '  \/ _` | '_ \ __) |   
 / |     | | .__/_| \___/_|_|_| .__/\__|_|_|_\__,_| .__// __/    
/  |-----| |_|                |_|                 |_|  |_____|    

promptmap2 è uno scanner automatizzato di prompt injection per applicazioni LLM personalizzate. Supporta due modalità di test:

  • Test white-box: Fornisci i tuoi prompt di sistema e le informazioni sul modello. promptmap2 esegue l'LLM target stesso e lo testa.

  • Test black-box: Indirizza promptmap2 a un endpoint HTTP esterno. Invia prompt di attacco via HTTP e ispeziona gli output restituiti.

Funziona utilizzando un'architettura a due LLM:

  • LLM target: L'applicazione LLM testata per vulnerabilità
  • LLM di controllo: Un LLM indipendente che analizza le risposte del target per determinare se gli attacchi hanno avuto successo

Lo strumento invia prompt di attacco al tuo LLM target e utilizza l'LLM di controllo per valutare se l'attacco ha avuto successo in base a condizioni predefinite.

Include regole di test complete in diverse categorie, tra cui furto di prompt, jailbreaking, generazione di contenuti dannosi, test sui bias e altro.

[!IMPORTANT]
promptmap è stato inizialmente rilasciato nel 2023 ma riscritto completamente nel 2025.

📖 Vuoi proteggere le tue app LLM? Puoi acquistare il mio e-book

Caratteristiche

  • Supporto per più provider LLM:
    • Modelli OpenAI GPT
    • Modelli Anthropic Claude
    • Modelli Google Gemini
    • Modelli XAI Grok
    • Modelli open source tramite Ollama (Deepseek, Llama, Mistral, Qwen, ecc.)
  • Regole di test complete: oltre 50 regole predefinite in 6 categorie
  • Valutazione flessibile: criteri pass/fail basati su condizioni per ogni test
  • Regole personalizzabili: regole basate su YAML con condizioni pass/fail
  • Target HTTP esterni: indirizza scansioni black-box a qualsiasi endpoint tramite configurazioni YAML leggere

promptmap2 in azione

Installazione

  1. Clona il repository:
git clone https://github.com/utkusen/promptmap.git
cd promptmap
  1. Installa i pacchetti Python richiesti:
pip install -r requirements.txt

Chiavi API

Imposta la chiave API appropriata per il provider scelto.

export OPENAI_API_KEY="your-openai-key"

Gli altri provider supportati utilizzano ANTHROPIC_API_KEY, GOOGLE_API_KEY e XAI_API_KEY.

Installazione di Ollama

Se vuoi utilizzare modelli locali, devi installare Ollama.

Vai alla pagina di download di Ollama e segui le istruzioni di installazione.

Utilizzo

Test White-Box

Devi fornire il file dei prompt di sistema. Il file predefinito è system-prompts.txt. Puoi specificare un file personalizzato con l'opzione --prompts. Nel repository è fornito un file di esempio.

Utilizzo Base

  1. Test dei modelli OpenAI:
python3 promptmap2.py --target-model gpt-3.5-turbo --target-model-type openai

I provider Anthropic, Google e XAI seguono lo stesso schema: scegli il nome del modello corretto e imposta --target-model-type su anthropic, google o xai.

  1. Test di modelli locali tramite Ollama:
python3 promptmap2.py --target-model "llama2:7b" --target-model-type ollama
# Se il modello non è installato, promptmap chiederà di scaricarlo. Se vuoi scaricarlo automaticamente, puoi usare l'opzione `-y`.
  1. Test con un server Ollama personalizzato:
# Di default, promptmap2 si connette a Ollama su http://localhost:11434
# Puoi specificare un URL personalizzato se il tuo server Ollama è in esecuzione altrove
python3 promptmap2.py --target-model "llama2:7b" --target-model-type ollama --ollama-url http://192.168.1.100:11434

Utilizzo di Modelli di Controllo Diversi

Di default, lo stesso modello viene utilizzato sia come target che come controllore.

[!IMPORTANT]
Per il modello di controllo, è fortemente consigliato utilizzare uno di questi modelli potenti per una valutazione accurata:

  • OpenAI GPT-5
  • Google Gemini 2.5 Pro
  • Anthropic Claude 4 Sonnet
  • gpt-oss:20b (tramite Ollama)

Modelli più deboli potrebbero non analizzare i risultati con precisione e portare a falsi positivi o negativi.

# Usa GPT-4o come controllore per testare un target GPT-3.5
python3 promptmap2.py --target-model gpt-3.5-turbo --target-model-type openai \
  --controller-model gpt-4o --controller-model-type openai

# Usa Claude 4 Opus come controllore per testare un modello Llama locale
python3 promptmap2.py --target-model llama2:7b --target-model-type ollama \
  --controller-model claude-4-opus-20240229 --controller-model-type anthropic

Test Black-Box

Se non controlli il prompt di sistema dell'LLM target, puoi comunque attaccarlo fornendo uno schema di richiesta HTTP. Imposta --target-model-type http e fornisci --http-config puntando a un file YAML che descrive come inviare ogni payload. Campi chiave:

  • url: Destinazione della richiesta. Ad esempio: https://assistant.example.com/chat
  • method: Verbo HTTP, predefinito a POST.
  • headers: Puoi aggiungere qualsiasi header desideri. Ad esempio: Content-Type: application/json, Authorization: Bearer <token>
  • payload_placeholder: Il prompt di attacco verrà inserito qui (supportate più posizioni): "{PAYLOAD_POSITION}"
  • payload_encoding: Può essere none, url o form per controllare come i payload vengono codificati prima dell'inserimento.
  • json o body: Definisci il payload della richiesta.
  • verify_ssl: Imposta a true per abilitare la verifica TLS (disabilitata di default per comodità durante l'intercettazione del traffico).
  • proxy: Configurazione proxy opzionale (scheme, host, port e credenziali opzionali) utilizzata sia per traffico HTTP che HTTPS.
  • answer_focus_hint: Frammento di stringa opzionale che individua dove si trova la risposta dell'assistente all'interno di risposte HTTP rumorose.

Esempio di richiesta JSON (vedi http-examples/http-config-example.yaml):

name: Esempio Endpoint Chat Esterno
method: POST
url: https://chat.example.com/v1/messages
headers:
  Content-Type: application/json
json:
  messages:
    - role: user
      content: "{PAYLOAD_POSITION}"
answer_focus_hint: '"content": "{ANSWER_POSITION}"'
proxy:
  scheme: https
  host: 127.0.0.1
  port: 8080

Esempio di richiesta POST classica con codifica del payload (http-examples/http-config-form.yaml):

name: Endpoint Form
method: POST
url: https://legacy.example.com/api/submit
headers:
  Content-Type: application/x-www-form-urlencoded
payload_encoding: form
body: "username=qa_tester&payload={PAYLOAD_POSITION}&mode=probe"
answer_focus_hint: '"message={ANSWER_POSITION}"'

promptmap2 sostituisce ogni occorrenza di {PAYLOAD_POSITION} con il prompt di attacco corrente, emette la richiesta HTTP e invia il corpo della risposta all'LLM di controllo per la valutazione. Quando viene fornito answer_focus_hint, all'LLM valutatore viene chiesto di concentrarsi su quella parte della risposta.

python3 promptmap2.py --target-model external --target-model-type http \
  --http-config http-examples/http-config-example.yaml \
  --controller-model gpt-4 --controller-model-type openai

Opzioni Avanzate

  1. Output JSON:
python3 promptmap2.py --target-model gpt-4 --target-model-type openai --output results.json
  1. Numero personalizzato di iterazioni di test:
Scarica lo strumento