Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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
metabadger — Previeni gli attacchi SSRF su AWS EC2 tramite aggiornamenti automatici al più sicuro Instance Metadata Service v2 (IMDSv2). | Kitploit
Strumenti/GitHubGitHub/salesforce/metabadger
Sicurezza dell'Infrastruttura CloudStrumenti DifensiviAnalisi delle VulnerabilitàAudit di ConfigurazioneSicurezza CloudConfigurazione ErrataArchived
GitHubsalesforce/metabadger

metabadger

Previeni gli attacchi SSRF su AWS EC2 tramite aggiornamenti automatici al più sicuro Instance Metadata Service v2 (IMDSv2).

Vedi Repository
143121 anno 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

Metabadger

Previeni gli attacchi SSRF su AWS EC2 tramite aggiornamenti automatici al più sicuro Instance Metadata Service v2 (IMDSv2).

continuous-integration Downloads Twitter

Metabadger

Scopo e funzionalità

  • Diagnosticare e valutare l'uso attuale del AWS Instance Metadata Service, comprendendo come funziona il servizio
  • Prepararti all'aggiornamento alla versione 2 del Instance Metadata Service per proteggerti dai vettori di attacco della v1
  • Darti la possibilità di aggiornare specificamente le tue istanze per usare solo IMDSv2
  • Darti la possibilità di disabilitare il Instance Metadata Service dove non è necessario, riducendo la superficie di attacco

Cos'è il AWS Instance Metadata Service?

  • Il servizio di metadati AWS ti dà essenzialmente accesso a tutto ciò che è presente in un'istanza, incluse le credenziali del ruolo dell'istanza e il token di sessione
  • Note vulnerabilità SSRF che sfruttano questo attacco come punto d'appoggio nel tuo ambiente
  • I famosi attacchi di cui hai sentito parlare, alcuni dei quali hanno coinvolto questo metodo per ottenere accesso tramite un'applicazione web vulnerabile con accesso al servizio di metadati dell'istanza
  • Un attaccante potrebbe prendere le suddette credenziali dal servizio di metadati e usarle al di fuori di quella particolare istanza

IMDSv2 e perché dovrebbe essere usato

  • Garantire che le istanze usino la versione 2 del servizio di metadati in ogni momento, rendendola obbligatoria nella sua configurazione
  • Abilitare i token di sessione con una richiesta PUT con un'intestazione di richiesta obbligatoria all'API dei metadati AWS; IMDSv1 non verifica questo, rendendo più facile per gli attaccanti sfruttare il servizio
  • L'intestazione X-Forwarded-For non è consentita in IMDSv2, assicurando che nessun traffico basato su proxy possa comunicare con il servizio di metadati

Dichiarazione del problema

I team di ingegneria possono disporre di un'ampia varietà di infrastrutture di calcolo in AWS che devono proteggere da determinate vulnerabilità che sfruttano il servizio di metadati. Il servizio di metadati è necessario per funzionare sulle istanze se viene utilizzato qualsiasi IAM o se ci sono dati utente di cui l'istanza potrebbe aver bisogno all'avvio. Limitare la superficie di attacco delle tue istanze è fondamentale per impedire la possibilità di muoversi lateralmente nell'ambiente rubando informazioni fornite dal servizio stesso. Numerosi attacchi famosi in passato hanno sfruttato questo particolare servizio per sfruttare un ruolo associato all'istanza o per scaricare dati sensibili accessibili tramite il servizio di metadati. Metabadger può aiutare a identificare dove e come usi il servizio di metadati dell'istanza, dandoti anche la possibilità di ridurre qualsiasi potenziale sfruttamento indesiderato per abbassare il tuo profilo di rischio complessivo mentre operi in EC2.

Dichiarazione di esclusione di responsabilità e rollback

L'uso di questo strumento potrebbe influenzare la tua infrastruttura di calcolo AWS poiché non tutti i servizi e le applicazioni potrebbero funzionare senza il servizio di metadati o sulla versione 2. Usa cautela quando lo distribuisci nel tuo ambiente di produzione e tieni pronto un piano di rollback nel caso qualcosa sembri anomalo. Metabadger include la funzionalità integrata per tornare alla versione 1 predefinita del servizio usando il flag -v1, che puoi utilizzare per ripristinare rapidamente le tue istanze all'impostazione predefinita. Idealmente, dovresti eseguire questo strumento e aggiornare la versione dei metadati in ambienti non di produzione come banco di prova prima di applicarlo.

Passaggi guidati per l'hardening

Passo 1

Inizialmente, vogliamo scoprire il nostro uso complessivo del servizio di metadati in una particolare regione AWS. Metabadger valuterà lo stato attuale del tuo utilizzo nella regione in cui puntano le tue credenziali nel tuo file /.aws/credentials o nel ruolo attualmente assunto. Puoi anche specificare il flag --region quando esegui il comando discover-metadata se desideri cambiare regione rispetto a quella attualmente configurata. Una volta che hai un'idea chiara di quale versione stanno eseguendo le tue istanze e se il servizio è abilitato o disabilitato, sarai in grado di creare un piano d'azione molto più definito per l'hardening del servizio. Nota che puoi trovare il significato specifico di ogni opzione di metadati impostata qui.

Passo 2

Una delle aree da valutare quando si passa alla versione 2 del servizio è l'uso dei ruoli IAM. Metabadger ti consente di identificare le istanze in una regione che potrebbero già utilizzare un ruolo IAM. Il comando discover-role-usage restituirà un elenco di istanze a cui sono associati ruoli. Se hai molte istanze che usano ruoli, dovresti prendere precauzioni durante l'aggiornamento del servizio alla versione 2 per garantire che la funzionalità complessiva dei tuoi carichi di lavoro non venga compromessa.

Passo 3

Completata la scoperta e la valutazione iniziale, ora puoi creare un approccio graduale per l'hardening della tua infrastruttura di calcolo, in modo che usi la versione 2 del servizio di metadati o lo disabiliti dove non viene utilizzato. Il comando harden-metadata ti consente di aggiornare tutte le istanze in una particolare regione per impostazione predefinita. Puoi anche passare tag delle istanze usando il flag --tags o un file di input contenente un CSV di istanze a cui desideri applicare una configurazione. Una volta effettuati gli aggiornamenti appropriati alla versione 2 e disabilitato il servizio dove non viene utilizzato, puoi rivalutare usando gli elementi del Passo 1 per confermare che il tuo ambiente sia bloccato. Se hai determinate istanze che non vuoi aggiornare, puoi escluderle tramite il flag --exclusion tramite tag o ID dell'istanza.

Requisiti

Metabadger richiede un ruolo IAM o credenziali con i seguenti permessi:

ec2:ModifyInstanceAttribute
ec2:DescribeInstances

Quando apporti modifiche al servizio di metadati dell'istanza, dovresti essere cauto e seguire ulteriori indicazioni da AWS su come aggiornare in sicurezza alla versione 2. Metabadger è stato progettato per assisterti in questo processo per proteggere ulteriormente la tua infrastruttura di calcolo in AWS.

Guida alle migliori pratiche AWS per l'aggiornamento a IMDSv2

Utilizzo e installazione

Installa tramite pip

root@kitploit:~
pip3 install --user metabadger

Installa tramite GitHub

root@kitploit:~
$ git clone https://github.com/salesforce/metabadger
$ cd metabadger
$ pip install -e .

$ metabadger
Usage: metabadger [OPTIONS] COMMAND [ARGS]...

  Metabadger è uno strumento di sicurezza AWS utilizzato per scoprire e
  rafforzare il servizio di metadati dell'istanza.

Options:
  --version  Mostra la versione ed esce.
  --help     Mostra questo messaggio ed esce.

Commands:
  cloudwatch-metrics   Estrae le metriche CloudWatch per l'utilizzo di MetadataNoToken
  disable-metadata     Disabilita il servizio IMDS sulle istanze EC2
  discover-metadata    Scopre un riepilogo dell'utilizzo del servizio IMDS all'interno di EC2
  discover-role-usage  Scopre un riepilogo dell'utilizzo dei ruoli IAM per EC2
  harden-metadata      Rafforza il servizio di metadati dell'istanza AWS dalla v1 alla v2

Comandi

cloudwatch-metrics

Recupera direttamente informazioni sul tuo utilizzo di IMDSv1 con la metrica MetadataNoToken in AWS CloudWatch. Questo comando mostra le istanze nell'ultima ora che stanno utilizzando attivamente la versione 1 del servizio. Nota che quando esegui questo comando dovresti avere i permessi IAM per poter visualizzare le metriche CloudWatch.

root@kitploit:~
Options:
  -a, --all-region           Estrae le metriche CloudWatch in tutte le regioni
                             disponibili
  -r, --region TEXT          Specifica in quale regione AWS eseguirai questo
                             comando
  -t, --time-period INTEGER  Il periodo di tempo in secondi di CloudWatch usato per
                             tracciare la metrica IMDS v1
  -p, --profile TEXT         Specifica il profilo IAM AWS.
  --help                     Mostra questo messaggio ed esce.

discover-metadata

Un riepilogo dell'utilizzo complessivo del servizio di metadati delle tue istanze, inclusa la versione e una percentuale complessiva di applicazione. Usare questi numeri ti aiuterà a capire il profilo complessivo di quanto sia indurito l'uso dei metadati e dove stai applicando la v2 rispetto alla v1.

root@kitploit:~
Options:
  -a, --all-region    Fornisce un riepilogo dei metadati per tutte le regioni disponibili nell'account AWS
  -j, --json          Ottiene il riepilogo dei metadati in formato JSON
  -r, --region TEXT   Specifica in quale regione AWS eseguirai questo comando
  -p, --profile TEXT  Specifica il profilo IAM AWS.

discover-role-usage

Un riepilogo delle istanze e dei ruoli che stanno usando; questo ti darà un'idea della cautela necessaria quando apporti modifiche al servizio di metadati stesso.

root@kitploit:~
Options:
  -p, --profile TEXT  Specifica il profilo IAM AWS.
  -r, --region TEXT   Specifica in quale regione AWS eseguirai questo comando

harden-metadata

La possibilità di modificare le istanze per usare la versione 1 o 2 dei metadati e per capire quante istanze verrebbero modificate eseguendo una modalità di prova.

root@kitploit:~
Options:
  -a, --all-region       Aggiorna IMDS in tutte le regioni del tuo account
  -e, --exclusion        Il flag di esclusione si applicherà a tutto tranne ciò che è specificato, tag o istanze
  -d, --dry-run          Esecuzione di prova delle modifiche di hardening dei metadati
  -v1, --v1              Applica la versione 1 del servizio di metadati
  -i, --input-file PATH  Percorso del file CSV delle istanze per cui indurire IMDS
  -t, --tags TEXT        Elenco separato da virgole di tag a cui applicare l'impostazione di hardening
  -r, --region TEXT      Specifica in quale regione AWS eseguirai questo comando
  -p, --profile TEXT     Specifica il profilo IAM AWS.

disable-metadata

Usa questo comando per disabilitare completamente il servizio di metadati sulle istanze.

root@kitploit:~
Options:
  -e, --exclusion        Il flag di esclusione si applicherà a tutto tranne ciò che è specificato, tag o istanze
  -d, --dry-run          Esecuzione di prova della disabilitazione del servizio di metadati
  -i, --input-file PATH  Percorso del file CSV delle istanze per cui disabilitare IMDS
  -t, --tags TEXT        Elenco separato da virgole di tag a cui applicare l'impostazione di hardening
  -r, --region TEXT      Specifica in quale regione AWS eseguirai questo comando
  -p, --profile TEXT     Specifica il profilo IAM AWS.

Logging

Tutte le modifiche apportate da Metabadger verranno registrate in un file salvato nella directory di lavoro chiamato metabadger.log. Il file includerà quanto segue per ogni azione intrapresa dallo strumento quando modifica il servizio di metadati:

  • Il timestamp (data e ora) della modifica
  • La modifica effettuata (disabilitato, indurito o aggiornato)
  • L'ID dell'istanza su cui è stata effettuata la modifica
  • Informazioni sull'esecuzione di prova (dry run)
  • Lo stato se la modifica è riuscita o meno
Scarica lo strumento