
Sistema Multi-Agente per Test di Penetrazione Automatici (MASAPT)
❗ Avvertenza
Questo strumento è sviluppato per scopi accademici e di ricerca come parte di un corso universitario. L'uso di MASAPT per attaccare bersagli senza previo consenso è illegale.
Gli sviluppatori non si assumono alcuna responsabilità per eventuali danni causati da questo strumento e condannano qualsiasi uso malintenzionato di MASAPT. Questo strumento non è destinato a essere utilizzato in alcun ambiente professionale in questo momento, è solo una prova di concetto per il modello teorico sottostante.
Multi-Agent System for Automated Penetration Testing 🐱💻

Un sistema autonomo di agenti SPADE che comunicano tramite XMPP per coordinare ed eseguire test di penetrazione. In uno strumento CLI!
Inserisci l'URL, attendi un po', leggi il report!

È un proof-of-concept, sistema multi-agente, sviluppato in Python, destinato a essere utilizzato per automatizzare il processo di test di penetrazione in modo strutturato e intelligente.
L'obiettivo finale è creare uno strumento di penetration testing funzionante, flessibile, distribuito e basato su CLI che possa essere utilizzato per automatizzare le attività di test di penetrazione.
Funzionalità attuali:
I piani e le funzionalità future sono elencati qui.
Difficile.
C'è un discreto numero di prerequisiti e requisiti da installare:
Oltre a Python e agli strumenti di penetration testing che si trovano su Kali, è necessario anche l'accesso a un servizio XMPP. Per testare il sistema ho utilizzato ejabberd in esecuzione locale.
Per eseguire gli agenti sul server XMPP di tua scelta, dovrai creare i seguenti utenti. Ovviamente puoi creare altri utenti, ma poi dovrai passare i nuovi parametri JID e PWD quando crei gli agenti nello script masapt.
| JID | PASSWORD |
|---|---|
| repoter@domain | repoterSecret |
| explorer@domain | explorerSecret |
| coordinator@domain | coordinatorSecret |
| sqlinjector@domain | injectorSecret |
Dopo aver installato i prerequisiti e aver configurato XMPP:
Entra nella cartella del progetto
cd ../MASAPT
Aggiungi la directory al PATH
export PATH=$PATH:/path/to/MASAPT
source ~/.bashrc
Installa i requisiti Python
pip install -r requirements.txt
Rendi eseguibile lo script masapt
chmod +x masapt
Avvia il sistema con:
masapt -t url/to/target
Più agenti:
Espandi Explorer.py in modo che possa:
Espandi SQLinjector.py in modo che possa:
Espandi Coordinator.py in modo che possa:
Il sistema MASAPT è stato concepito per essere modulare, distribuito e pragmatico. Ciò significa che gli agenti che compongono il sistema sono indipendenti dal processo principale, aggiornabili e utilizzano strumenti di penetration testing esistenti e 'testati sul campo'.
Per raggiungere gli obiettivi previsti, gli agenti sono sviluppati come parte di un modello a tre livelli che deriva dalle fasi standard del pentest (pianificazione - esecuzione - post-esecuzione). Una panoramica di tale modello può essere vista nell'Immagine 1 qui sotto.
Tutti i concetti teorici in questa panoramica sono già stati implementati nel codice (tranne l'idea per il futuro - Imm. 8.). Questi concetti dovrebbero continuare a essere implementati in qualsiasi aggiornamento futuro del sistema.
L'idea principale alla base del modello a tre livelli è fornire un framework da utilizzare per organizzare e classificare gli agenti in questo sistema.
Il primo livello del modello contiene l'agente Explorer (o gli agenti) incaricato di condurre OSINT e raccogliere informazioni utili sul bersaglio.
Il secondo livello contiene l'agente Coordinator e gli agenti Exploit. Il Coordinator è un singolo agente che decide quali agenti exploit parteciperanno al test corrente. Gli agenti exploit, come suggerisce il nome, sono quelli che eseguono exploit - SQL injection, XSS, DoS, buffer overflow... Possono esserci molti di questi agenti exploit.
Il terzo livello contiene il Reporter il cui compito è raccogliere tutti i dati degli exploit, i risultati, i dump di dati da tutti gli agenti exploit e riassumerli in un report finale. Il report viene poi mostrato all'utente e archiviato localmente.
Nella prima immagine, le frecce spesse rappresentano il flusso di dati nel modello.

Immagine 2 mostra lo stesso modello della prima immagine ma in maggiore dettaglio: gli agenti possono essere chiaramente visti nei rispettivi livelli. Le frecce piene in questa immagine rappresentano nuovamente il flusso di dati nel modello, che di conseguenza mostra quali agenti comunicano tra loro. Si può vedere che l'agente Explorer invia dati all'agente Coordinator, che a sua volta invia alcuni dati agli agenti Exploit (SQLinjector, agent2, agent3). Infine, tutti i dati raccolti dagli agenti exploit vengono passati all'agente Reporter che li compila, li riassume e li presenta all'utente.
Si può anche vedere che solo gli agenti Explorer e Exploit (SQLinjector) interagiscono con l'ambiente esterno (bersaglio di test). Ciò è rappresentato con frecce tratteggiate bidirezionali.
Come accennato in precedenza, una delle caratteristiche del sistema MASAPT è che sia distribuito. Un aspetto di ciò è già stato implementato, poiché tutti gli agenti sono implementati come programmi indipendenti, eseguiti dallo script principale (masapt).