Vai al contenuto
New

DeepSeek V4.1 Flash free for 7 days: 10M tokens a day after a top-up of $10 or more. Until Nov 30.

How it works

Costruisci il tuo hackbot, parte 1: architettura

Il progetto di un agente di bug bounty: un LLM, dei tool, memoria e guardrail, in un loop che gira sulla tua macchina sotto la tua approvazione.

Intermedio3 min di letturaDi NotHoly

Un hackbot è un piccolo programma che mette un modello di linguaggio in un loop con dei tool, così può eseguire da solo parte del tuo recon e del tuo test e fermarsi per la tua approvazione prima che qualcosa tocchi un target. Questo è il primo di tre post che ne costruiscono uno. Questo è il progetto. La parte due scrive il codice, e la parte tre lo collega a tool condivisi e all'editor. Se gli agenti sono nuovi per te, leggi prima cosa sono gli agenti di IA e il tool use.

Cos'è un hackbot, e cosa non è

Un hackbot automatizza il centro noioso e ripetibile del loop: esegue un comando di recon, legge il suo output, decide il comando successivo, tiene le note. Non è un attaccante autonomo, e non dovresti costruirne uno. Il valore è un assistente instancabile che propone i passi e registra ciò che ha fatto, con te che tieni le decisioni e la tastiera per qualsiasi cosa invii traffico.

Le quattro parti

Parte Ruolo In questa build
Modello Legge l'output, pianifica, chiama i tool L'API NotHoly compatibile con OpenAI
Tool Le cose che può davvero fare I comandi shell che permetti, più le chiamate di ricerca
Memoria Cosa ricorda tra i passi La lista dei messaggi, più un file di note su disco
Guardrail Cosa non può fare Controllo dello scope e approvazione prima di ogni comando

Il modello non agisce da solo. Legge, pianifica e chiede di chiamare un tool. Il tuo codice decide se eseguire quel tool. Questa divisione è tutto il progetto: il modello è il cervello, il tuo codice sono le mani, e le mani chiedono il permesso.

Il loop dell'agente

Il loop è breve. Mandi al modello l'obiettivo e i tool che può chiamare. Il modello risponde o con del testo o con una richiesta di chiamare un tool. Se chiede un tool, il tuo codice lo esegue, dopo la tua approvazione per qualsiasi cosa tocchi un target, e rimanda indietro il risultato. Il modello legge il risultato e decide il passo successivo. Si ripete finché il modello dice di aver finito o lo fermi tu.

Il modello che usi è una tua scelta dal catalogo. Elenca i modelli con GET /v1/models e scegline uno che supporta il tool calling e un contesto abbastanza grande per le tue note. Il codice non fissa mai un nome di modello; ne legge uno dalla configurazione, così puoi cambiare senza toccare il loop.

Guardrail che lo tengono nello scope

Contano due guardrail. Il primo è lo scope: prima che un comando parta, controlla il suo target rispetto allo scope del programma e rifiuta o metti in pausa qualsiasi cosa ne stia fuori. Il secondo è l'approvazione: un comando che invia traffico aspetta il tuo sì. Non sono extra opzionali; sono il motivo per cui la cosa è sicura da eseguire.

Un terzo guardrail è più silenzioso e altrettanto importante. L'output dei tool è dato, non istruzioni. Una pagina o il risultato di uno scan possono contenere testo che si legge come un comando per il modello, e un loop ingenuo lo seguirà. L'OWASP Top 10 per le applicazioni LLM chiama questo prompt injection, il suo rischio numero uno. Il tuo loop deve trattare ogni risultato di tool come input non attendibile e non lasciargli mai allargare ciò che l'agente può fare.

Perché gira sulla tua macchina

L'agente gira sulla tua macchina così ogni request parte dal tuo indirizzo, ogni comando è tuo da approvare e ogni log è tuo da tenere. Il modello gira sull'API NotHoly, che fa inferenza e nient'altro: non fa mai scan né invia traffico a un target. Quella divisione è ciò che rende l'agente usabile per il bug bounty. Il traffico arriva da dove il programma se lo aspetta, e puoi provare cosa hai inviato.

Cosa costruire e cosa riusare

Costruisci tu stesso il loop e i guardrail, perché sono piccoli e perché devi capirli. Per i tool, riusa ciò che esiste: la shell che hai già, i tool di ricerca che la NotHoly CLI espone, e più avanti i tool condivisi di MCP. Non scrivere un framework. Il prossimo post è circa un centinaio di righe di Python.

A seguire in questa serie

La parte due programma il loop con tool calling, approvazione e note, usando il Model Context Protocol più avanti nella parte tre.

Fonti

  1. NotHoly API: chat completions
  2. NotHoly API: list models
  3. OWASP Top 10 for LLM Applications 2025
  4. Model Context Protocol

Altro su Agenti di IA per la sicurezza

Agenti di IA per la sicurezza

Costruisci il tuo hackbot, parte 2: scrivi l'agente

Un agente di bug bounty in Python con tool calling sull'API NotHoly: propone comandi di recon, aspetta l'approvazione, legge l'output e tiene le note.

Intermedio3 min di lettura

Agenti di IA per la sicurezza

Costruisci il tuo hackbot, parte 3: tool MCP e CLI

Dai al tuo agente tool condivisi via MCP, aggiungi un controllo dello scope con notholy engage ed esegui tutto dalla NotHoly CLI o dal tuo editor.

Intermedio3 min di lettura