Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
metabadger — Verhindern Sie SSRF-Angriffe auf AWS EC2 durch automatisierte Upgrades auf den sichereren Instance Metadata Service v2 (IMDSv2). | Kitploit
Tools/GitHubGitHub/salesforce/metabadger
Cloud-Infrastruktur-SicherheitDefensivwerkzeugeSchwachstellenanalyseKonfigurationsprüfungCloud-SicherheitFehlkonfigurationArchived
GitHubsalesforce/metabadger

metabadger

Verhindern Sie SSRF-Angriffe auf AWS EC2 durch automatisierte Upgrades auf den sichereren Instance Metadata Service v2 (IMDSv2).

Repository anzeigen
14312vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Metabadger

SSRF-Angriffe auf AWS EC2 verhindern durch automatisierte Upgrades auf den sichereren Instance Metadata Service v2 (IMDSv2).

continuous-integration Downloads Twitter

Metabadger

Zweck und Funktionalität

  • Diagnostizieren und bewerten Sie Ihre aktuelle Nutzung des AWS Instance Metadata Service und verstehen Sie, wie der Service funktioniert
  • Bereiten Sie sich auf das Upgrade auf Version 2 des Instance Metadata Service vor, um sich vor Angriffsvektoren von v1 zu schützen
  • Geben Sie Ihnen die Möglichkeit, Ihre Instanzen gezielt so zu aktualisieren, dass sie nur IMDSv2 verwenden
  • Geben Sie Ihnen die Möglichkeit, den Instance Metadata Service dort zu deaktivieren, wo Sie ihn nicht benötigen, um die Angriffsfläche zu verringern

Was ist der AWS Instance Metadata Service?

  • Der AWS-Metadatendienst gibt Ihnen im Wesentlichen Zugriff auf alle Ressourcen innerhalb einer Instanz, einschließlich der Anmeldeinformationen der Instanzrolle und des Sitzungstokens
  • Bekannte SSRF-Schwachstellen, die diesen Angriff als Dreh- und Angelpunkt für Ihre Umgebung nutzen
  • Die berühmten Angriffe, von denen Sie gehört haben, einige davon nutzten diese Methode, um über eine anfällige Web-App mit Zugriff auf den Instance Metadata Service Zugang zu erhalten
  • Ein Angreifer könnte die genannten Anmeldeinformationen aus dem Metadatendienst stehlen und außerhalb dieser bestimmten Instanz verwenden

IMDSv2 und warum es verwendet werden sollte

  • Sicherstellen, dass Instanzen jederzeit Version 2 des Metadatendienstes verwenden, indem dies in der Konfiguration zur Anforderung gemacht wird
  • Aktivieren von Sitzungstoken mit einer PUT-Anfrage mit einem obligatorischen Anfrageheader an die AWS-Metadaten-API; IMDSv1 prüft dies nicht, was es Angreifern erleichtert, den Dienst auszunutzen
  • Der X-Forwarded-For-Header ist in IMDSv2 nicht erlaubt, sodass kein proxy-basierter Datenverkehr mit dem Metadatendienst kommunizieren kann

Problemstellung

Entwicklungsteams können eine große Vielfalt an Compute-Infrastruktur in AWS haben, die sie vor bestimmten Schwachstellen schützen müssen, die den Metadatendienst ausnutzen. Der Metadatendienst muss auf Instanzen ausgeführt werden, wenn IAM verwendet wird oder wenn die Instanz beim Start Benutzerdaten benötigt. Die Einschränkung der Angriffsfläche Ihrer Instanzen ist entscheidend, um zu verhindern, dass Angreifer durch Diebstahl von Informationen des Dienstes in Ihre Umgebung eindringen können. Zahlreiche bekannte Angriffe in der Vergangenheit haben diesen speziellen Dienst genutzt, um eine Rolle auszunutzen, die an die Instanz gebunden ist, oder um sensible Daten zu erbeuten, die über den Metadatendienst zugänglich sind. Metabadger kann helfen, zu identifizieren, wo und wie Sie den Instance Metadata Service nutzen, und gibt Ihnen gleichzeitig die Möglichkeit, unerwünschte Angriffsmöglichkeiten zu reduzieren, um Ihr Gesamtrisiko beim Betrieb in EC2 zu senken.

Haftungsausschluss und Rollback

Die Verwendung dieses Tools kann Ihre AWS-Compute-Infrastruktur beeinträchtigen, da nicht alle Dienste und Anwendungen entweder ohne den Metadatendienst oder mit Version 2 funktionieren. Seien Sie vorsichtig beim Einsatz in Ihrer Produktionsumgebung und haben Sie einen Rollback-Plan bereit, falls etwas ungewöhnlich erscheint. Metabadger verfügt über die integrierte Möglichkeit, mit dem Flag -v1 auf die Standardversion 1 des Dienstes zurückzusetzen. Sie können dies verwenden, um Ihre Instanzen schnell wieder auf die Standardeinstellung zurückzusetzen. Idealerweise sollten Sie dieses Tool ausführen und Ihre Metadatenversion in Nicht-Produktionsumgebungen als Testumgebung aktualisieren, bevor Sie es in der Produktion einsetzen.

Geführte Schritte zur Härtung

Schritt 1

Zunächst möchten wir die Gesamtnutzung des Metadatendienstes in einer bestimmten AWS-Region ermitteln. Metabadger bewertet den aktuellen Status Ihrer Nutzung in der Region, auf die Ihre Anmeldeinformationen in Ihrer /.aws/credentials-Datei verweisen, oder die aktuell angenommene Rolle. Sie können auch das Flag --region angeben, wenn Sie den Befehl discover-metadata ausführen, um zu einer anderen als der aktuell konfigurierten Region zu wechseln. Wenn Sie eine gute Vorstellung davon haben, welche Version Ihre Instanzen ausführen und ob der Dienst aktiviert oder deaktiviert ist, können Sie einen viel konkreteren Aktionsplan zur Härtung des Dienstes erstellen. Beachten Sie, dass Sie die genaue Bedeutung jeder Metadatenoption hier nachlesen können.

Schritt 2

Einer der Bereiche, die bei der Umstellung auf Version 2 des Dienstes bewertet werden sollten, ist die Verwendung von IAM-Rollen. Metabadger ermöglicht es Ihnen, Instanzen in einer Region zu identifizieren, die möglicherweise bereits eine IAM-Rolle verwenden. Der Befehl discover-role-usage gibt eine Liste von Instanzen aus, an die Rollen gebunden sind. Wenn Sie viele Instanzen haben, die Rollen verwenden, sollten Sie bei der Aktualisierung des Dienstes auf Version 2 Vorsicht walten lassen, um sicherzustellen, dass die Gesamtfunktionalität Ihrer Workloads nicht beeinträchtigt wird.

Schritt 3

Nach Abschluss der ersten Erkundung und Bewertung können Sie nun einen stufenweisen Ansatz zur Härtung Ihrer Compute-Infrastruktur erstellen, um entweder Version 2 des Metadatendienstes zu verwenden oder ihn dort zu deaktivieren, wo er nicht benötigt wird. Der Befehl harden-metadata ermöglicht es Ihnen, standardmäßig alle Instanzen in einer bestimmten Region zu aktualisieren. Sie können auch Instanz-Tags mit dem Flag --tags oder eine Eingabedatei mit einer CSV-Liste von Instanzen übergeben, für die Sie eine Konfiguration anwenden möchten. Sobald Sie die entsprechenden Aktualisierungen auf Version 2 vorgenommen und den Dienst dort deaktiviert haben, wo er nicht verwendet wird, können Sie mit den Punkten aus Schritt 1 erneut prüfen, ob Ihre Umgebung abgesichert ist. Wenn Sie bestimmte Instanzen nicht aktualisieren möchten, können Sie sie über das Flag --exclusion nach Tag oder Instanz-ID ausschließen.

Voraussetzungen

Metabadger erfordert eine IAM-Rolle oder Anmeldeinformationen mit den folgenden Berechtigungen:

ec2:ModifyInstanceAttribute
ec2:DescribeInstances

Wenn Sie Änderungen am Instance Metadata Service vornehmen, sollten Sie vorsichtig sein und zusätzliche Anleitungen von AWS befolgen, wie Sie sicher auf Version 2 upgraden können. Metabadger wurde entwickelt, um Sie bei diesem Prozess zu unterstützen und Ihre Compute-Infrastruktur in AWS weiter zu sichern.

AWS Best Practice Guide on Updating to IMDSv2

Verwendung & Installation

Installation mit pip

root@kitploit:~
pip3 install --user metabadger

Installation über Github

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

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

  Metabadger is an AWS Security Tool used for discovering and hardening the
  Instance Metadata service.

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  cloudwatch-metrics   Pull CloudWatch Metrics for MetadataNoToken usage
  disable-metadata     Disable the IMDS service on EC2 instances
  discover-metadata    Discover summary of IMDS service usage within EC2
  discover-role-usage  Discover summary of IAM role usage for EC2
  harden-metadata      Harden the AWS instance metadata service from v1 to v2

Befehle

cloudwatch-metrics

Rufen Sie direkt Informationen über Ihre Nutzung von IMDSv1 mit der Metrik MetadataNoToken in AWS CloudWatch ab. Dieser Befehl zeigt Ihnen Instanzen innerhalb der letzten Stunde an, die aktiv Version 1 des Dienstes verwenden. Beachten Sie, dass Sie für die Ausführung dieses Befehls über IAM-Berechtigungen verfügen sollten, um CloudWatch-Metriken anzeigen zu können.

root@kitploit:~
Options:
  -a, --all-region           Pull CloudWatch metrics across all available
                             regions
  -r, --region TEXT          Specify which AWS region you will perform this
                             command in
  -t, --time-period INTEGER  The CloudWatch time period in seconds used to
                             track the IMDS v1 metric
  -p, --profile TEXT         Specify the AWS IAM profile.
  --help                     Show this message and exit.

discover-metadata

Eine Zusammenfassung Ihrer gesamten Instance-Metadata-Service-Nutzung, einschließlich der Version und eines Gesamtdurchsetzungsprozentsatzes. Diese Zahlen helfen Ihnen, die allgemeine Härtung Ihrer Metadatennutzung zu verstehen und zu erkennen, wo Sie Version 2 gegenüber Version 1 durchsetzen.

root@kitploit:~
Options:
  -a, --all-region    Provide a metadata summary for all available regions in the AWS account
  -j, --json          Get metadata summary in JSON format
  -r, --region TEXT   Specify which AWS region you will perform this command in
  -p, --profile TEXT  Specify the AWS IAM profile.

discover-role-usage

Eine Zusammenfassung der Instanzen und der von ihnen verwendeten Rollen. Dies gibt Ihnen eine gute Vorstellung von der Vorsicht, die Sie bei Aktualisierungen des Metadatendienstes selbst walten lassen müssen.

root@kitploit:~
Options:
  -p, --profile TEXT  Specify the AWS IAM profile.
  -r, --region TEXT   Specify which AWS region you will perform this command in

harden-metadata

Die Möglichkeit, Instanzen so zu ändern, dass sie entweder Metadaten v1 oder v2 verwenden, und zu verstehen, wie viele Instanzen durch einen Probelauf (Dry Run) geändert würden.

root@kitploit:~
Options:
  -a, --all-region       Update IMDS across all regions in your account
  -e, --exclusion        The exclusion flag will apply to everything besides what is specified, tags or instances
  -d, --dry-run          Dry run of hardening metadata changes
  -v1, --v1              Enforces v1 of the metadata service
  -i, --input-file PATH  Path of csv file of instances to harden IMDS for
  -t, --tags TEXT        A comma seperated list of tags to apply the hardening setting to
  -r, --region TEXT      Specify which AWS region you will perform this command in
  -p, --profile TEXT     Specify the AWS IAM profile.

disable-metadata

Verwenden Sie diesen Befehl, um den Metadatendienst auf Instanzen vollständig zu deaktivieren.

root@kitploit:~
Options:
  -e, --exclusion        The exclusion flag will apply to everything besides what is specified, tags or instances
  -d, --dry-run          Dry run of disabling the metadata service
  -i, --input-file PATH  Path of csv file of instances to disable IMDS for
  -t, --tags TEXT        A comma seperated list of tags to apply the hardening setting to
  -r, --region TEXT      Specify which AWS region you will perform this command in
  -p, --profile TEXT     Specify the AWS IAM profile.

Protokollierung

Alle von Metabadger vorgenommenen Änderungen werden in einer Datei mit dem Namen metabadger.log im Arbeitsverzeichnis protokolliert. Die Datei enthält für jede Aktion, die das Tool bei der Änderung des Metadatendienstes ausführt, Folgendes:

  • Zeit- und Datumsstempel der Änderung
  • Die durchgeführte Änderung (deaktiviert, gehärtet oder aktualisiert)
  • Die Instanz-ID, an der die Änderung vorgenommen wurde
  • Informationen zum Probelauf (Dry Run)
  • Status, ob die Änderung erfolgreich war oder nicht
Tool herunterladen