
Il framework di exploitation per AWS, progettato per testare la sicurezza degli ambienti Amazon Web Services.
Dove ottenere aiuto: il Discord di Rhino Security Labs, o Stack Overflow
Dove segnalare problemi: https://github.com/RhinoSecurityLabs/pacu/issues
Mantenuto da: Rhino Security Labs
Pacu è un framework di sfruttamento AWS open-source, progettato per test di sicurezza offensivi contro ambienti cloud. Creato e mantenuto da Rhino Security Labs, Pacu consente ai penetration tester di sfruttare le vulnerabilità di configurazione all'interno di un account AWS, utilizzando moduli per espandere facilmente le sue funzionalità. I moduli attuali consentono una serie di attacchi, tra cui escalation dei privilegi degli utenti, backdooring degli utenti IAM, attacco a funzioni Lambda vulnerabili e molto altro.
Pacu è un programma abbastanza leggero, poiché richiede solo Python3.7+ e pip3 per installare una manciata di librerie Python.
pip3 install -U pip
pip3 install -U pacu
pacu
Questo è il metodo preferito quando si utilizza Kali Linux poiché pip non è più installato di default. Questo installerà Pacu con gli ultimi aggiornamenti che potrebbero non essere inclusi nella versione ufficiale.
pipx install git+https://github.com/RhinoSecurityLabs/pacu.git
Per un insieme di istruzioni più dettagliato e facile da usare, consulta la guida all'installazione della Wiki.
docker run -it rhinosecuritylabs/pacu:latest
docker run -it --entrypoint /bin/sh rhinosecuritylabs/pacu:latest
Avvertenza: Eseguire questo comando monterà i tuoi file di configurazione AWS locali nel contenitore Docker quando viene avviato. Ciò significa che qualsiasi utente con accesso al contenitore avrà accesso alle credenziali AWS del tuo computer host.
docker run -it -v ~/.aws:/root/.aws rhinosecuritylabs/pacu:latest
La prima volta che Pacu viene avviato, ti verrà chiesto di avviare e nominare una nuova sessione. Questa sessione verrà utilizzata per memorizzare le coppie di chiavi AWS, così come tutti i dati ottenuti dall'esecuzione di vari moduli. Puoi avere un numero qualsiasi di sessioni diverse in Pacu, ciascuna con il proprio set di chiavi e dati AWS, e riprendere una sessione in qualsiasi momento (anche se attualmente è necessario un riavvio per passare da una sessione all'altra).
I moduli richiedono una chiave AWS, che ti concede accesso minimo a un ambiente AWS ed è composta da un ID chiave di accesso e una chiave di accesso segreta. Per impostare le chiavi della tua sessione, usa il comando set_keys, quindi segui le istruzioni per fornire un alias di chiave (soprannome di riferimento), un ID chiave di accesso AWS, una chiave di accesso segreta AWS e un token di sessione AWS (se ne stai utilizzando uno).
Se mai ti bloccassi, help mostrerà un elenco di comandi disponibili.
list elencherà i moduli disponibili per le regioni impostate nella sessione corrente.help nome_modulo restituirà le informazioni di aiuto applicabili per il modulo specificato.run nome_modulo eseguirà il modulo specificato con i suoi parametri predefiniti.run nome_modulo --regions eu-west-1,us-west-1 eseguirà il modulo specificato sulle regioni eu-west-1 e us-west-1 (per i moduli che supportano l'argomento --regions)pacu --help mostrerà il menu di aiutopacu --session <nome_sessione> imposta la sessione da utilizzare per i comandi che ne richiedono unapacu --list-modules elencherà tutti i moduli disponibili (non richiede una sessione)pacu --pacu-help elencherà la finestra di aiuto di Pacu (non richiede una sessione)pacu --module-name <nome_modulo> il nome di un modulo su cui eseguire un'azione, puoi eseguire o ottenere informazioni sul modulopacu --exec esegue il modulo fornito in --module-namepacu --module-info ottieni informazioni sul modulo fornito in --module-namepacu --data <nome_servizio || all> interroga il database SQLAlchemy locale per recuperare informazioni enumeratepacu --module-args="<arg1> <valore> <arg2> <valore>" fornisce argomenti opzionali del modulo al modulo in esecuzionePacu utilizza una gamma di moduli plug-in per assistere un attaccante nell'enumerazione, escalation dei privilegi, esfiltrazione di dati, sfruttamento dei servizi e manipolazione dei log all'interno degli ambienti AWS. Contributi o idee per nuovi moduli sono benvenuti.
Per stare al passo con gli sviluppi in corso dei prodotti AWS, abbiamo progettato Pacu da zero pensando all'estensibilità. Una sintassi e una struttura dati comuni mantengono i moduli facili da costruire e ampliare - non c'è bisogno di specificare regioni AWS o effettuare controlli di permessi ridondanti tra i moduli. Un database SQLite locale viene utilizzato per gestire e manipolare i dati recuperati, minimizzando le chiamate API (e i log associati). Anche la reportistica e il controllo degli attacchi sono integrati nel framework; Pacu assiste il processo di documentazione attraverso la registrazione e l'esportazione dei comandi, aiutando a costruire una timeline per il processo di test.
Siamo sempre felici di ricevere segnalazioni di bug nel framework Pacu stesso, così come test e feedback su diversi moduli e, in generale, feedback critici per aiutare a perfezionare il framework. Qualsiasi supporto per Pacu attraverso l'uso, il test, il miglioramento o semplicemente passaparola, sarebbe molto apprezzato.
Se sei interessato a contribuire direttamente al framework Pacu stesso, leggi le nostre linee guida per i contributi per le convenzioni di codice e le note sul flusso git.
Se sei interessato a scrivere i tuoi moduli per Pacu, dai un'occhiata alla nostra pagina wiki di Sviluppo Moduli. Man mano che sviluppi nuove funzionalità, contattaci — ci piacerebbe aggiungere i tuoi nuovi moduli alla collezione principale inclusa in Pacu.
Per guide dettagliate e documentazione completa, visita la wiki di Pacu.
pacu --set-regions <regione1 regione2 || all> imposta le regioni da utilizzare nella sessione, separa le regioni con uno spazio o inserisci all per tutte le regionipacu --whoami ottieni informazioni sull'utente corrente