Metadaten und SSRF
Cloud-spezifische Angriffe
Metadaten und SSRF ist eine kostenlose Ethical Hacking Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ethical Hacking Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ethical Hacking Academy-Kurs umfasst insgesamt 4 Lektionen.
Der Instance Metadata Service
Jede Cloud-VM kann einen speziellen internen Endpunkt abfragen, um Informationen über sich selbst zu erhalten: den Instance Metadata Service (IMDS). Entscheidend ist, dass dieser Dienst auch die temporären Zugangsdaten der Rolle ausgeben kann, die der Instanz zugewiesen ist.
- AWS / GCP / Azure stellen Metadaten unter
169.254.169.254bereit - Der Dienst ist nur innerhalb der Instanz erreichbar
- Lokale Prozesse benötigen dafür keine Authentifizierung
Diese praktische Funktion wird in Kombination mit SSRF zur Waffe.
AWS-Metadaten lesen (IMDSv1)
Bei der älteren Version IMDSv1 liefert eine einzige GET-Anfrage Metadaten, einschließlich der Zugangsdaten der Rolle. Es wird kein Token benötigt.
Genau das macht IMDSv1 gefährlich, wenn eine Anwendung für SSRF anfällig ist.
# List roles attached to the instance
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
# Retrieve the temporary credentials for a role
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/app-roleWas SSRF ist
Server-Side Request Forgery (SSRF) ist eine Schwachstelle, bei der ein Angreifer einen Server dazu bringt, HTTP-Anfragen in seinem Namen zu stellen. Der Server wird dadurch zu einem Proxy in Bereiche, die der Angreifer nicht direkt erreichen kann.
- Ein URL-Parameter, den der Server abruft
- Ein Webhook, ein PDF-Generator oder eine Funktion zur Bildgrößenanpassung
- Alles, was eine vom Benutzer angegebene URL verarbeitet
Das klassische SSRF-Ziel in der Cloud ist der Metadaten-Endpunkt.
SSRF trifft auf Metadaten
Die gefährliche Kombination: Eine Anwendung mit SSRF ermöglicht es dem Angreifer, den Server auf 169.254.169.254 zu verweisen. Der Server ruft die IAM-Zugangsdaten der Instanz ab und gibt sie zurück.
Der Angreifer verfügt nun über Cloud-Zugangsdaten – oft ist das der Beginn einer vollständigen Übernahme des Kontos.
# Vulnerable endpoint fetches any URL the user supplies
GET /fetch?url=http://example.com/image.png
# Attacker redirects it to the metadata service
GET /fetch?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/app-roleGestohlene Zugangsdaten verwenden
Die Metadatenantwort enthält einen Zugriffsschlüssel, einen geheimen Schlüssel und ein Sitzungstoken. Der Angreifer exportiert diese Daten und handelt sofort als Rolle der Instanz.
Anschließend ermittelt er die Berechtigungen und sucht nach Wegen zur Rechteausweitung.
export AWS_ACCESS_KEY_ID=ASIA...
export AWS_SECRET_ACCESS_KEY=...
export AWS_SESSION_TOKEN=...
# Confirm the stolen identity
aws sts get-caller-identityIMDSv2 als Schutzmaßnahme
AWS hat IMDSv2 eingeführt, um SSRF-Angriffe abzumildern. Zuerst muss ein Sitzungstoken über eine HTTP-PUT-Anfrage abgerufen werden. Die meisten SSRF-Möglichkeiten können das nicht – sie unterstützen nur GET.
Die Erzwingung von IMDSv2 und ein niedriges Hop-Limit verringern den Diebstahl von Metadaten über SSRF erheblich.
# IMDSv2: first PUT to get a session token
TOKEN=$(curl -X PUT 'http://169.254.169.254/latest/api/token' \
-H 'X-aws-ec2-metadata-token-ttl-seconds: 21600')
# Then GET using that token
curl -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/Azure- und GCP-Metadaten
Auch die anderen Anbieter stellen Metadaten bereit, jeweils mit eigenen Besonderheiten. Beide erfordern einen speziellen Header, was bereits eine kleine SSRF-Abwehr darstellt.
- Azure erfordert
Metadata: true - GCP erfordert
Metadata-Flavor: Google
# Azure: fetch a managed-identity access token
curl -H 'Metadata: true' \
'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/'
# GCP: fetch a service-account token
curl -H 'Metadata-Flavor: Google' \
'http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token'Techniken zum Umgehen von SSRF-Schutzmaßnahmen
Verteidiger blockieren häufig 169.254.169.254. Angreifer umgehen naive Filter mit alternativen IP-Darstellungen und Weiterleitungen.
- Dezimale IP-Adresse:
2852039166 - Oktale oder hexadezimale Darstellungen derselben Adresse
- DNS-Rebinding auf einen Namen, der zur Metadaten-IP aufgelöst wird
- Offene Weiterleitungen, die die Anfrage an die Metadaten-URL umleiten
Robuste Schutzmaßnahmen müssen die aufgelöste IP-Adresse überprüfen, nicht die ursprüngliche Zeichenkette.
# The metadata IP in alternate notations (all 169.254.169.254)
http://2852039166/latest/meta-data/
http://0251.0376.0251.0376/latest/meta-data/Weitere SSRF-Ziele
Metadaten sind das bekannteste Ziel, aber SSRF ermöglicht auch den Zugriff auf weitere interne Ressourcen:
- Interne Admin-Oberflächen und Dashboards, die an localhost gebunden sind
- Interne Datenbanken und Caches (Redis, Elasticsearch)
- Kubernetes-API-Server und kubelet-Endpunkte
- Andere Microservices, die nicht extern verfügbar sind
SSRF durchdringt den Netzwerkperimeter effektiv aus einer vertrauenswürdigen Position heraus.
Die Angriffskette abwehren
Um die Kette von SSRF zu Metadaten zu unterbrechen, ist ein mehrschichtiger Schutz erforderlich:
- IMDSv2 erzwingen und das Hop-Limit für Metadaten auf 1 setzen
- Ausgehende URLs in Abruffunktionen überprüfen und anhand einer Allowlist zulassen
- Anfragen an Link-Local- und private IP-Bereiche nach der DNS-Auflösung blockieren
- Das Prinzip der geringsten Rechte auf Instanzrollen anwenden, damit gestohlene Zugangsdaten nur begrenzten Schaden anrichten können
Rollen mit minimalen Berechtigungen stellen sicher, dass selbst ein erfolgreicher Diebstahl nur wenig bewirkt.
Testen Sie nur, wozu Sie berechtigt sind
SSRF-Tests können konstruktionsbedingt sensible interne Systeme erreichen. Gehen Sie diszipliniert vor:
- Bestätigen Sie, dass der Zielhost und das Cloud-Konto zum Testumfang gehören
- Greifen Sie nicht auf Systeme außerhalb des Auftrags über
- Beenden Sie den Test und melden Sie das Ergebnis, sobald Sie den Zugriff auf Zugangsdaten nachgewiesen haben
Der Zugriff auf Metadaten hat erhebliche Auswirkungen. Weisen Sie ihn sorgfältig nach und gehen Sie mit gestohlenen Schlüsseln nicht weiter vor.
Kurze Überprüfung
Warum hilft die Erzwingung von IMDSv2 beim Schutz vor dem Diebstahl von Zugangsdaten über SSRF?
Zusammenfassung: Metadaten und SSRF
Sie haben die wirkungsvollste Cloud-spezifische Angriffskette kennengelernt.
- Der Metadaten-Service unter 169.254.169.254 gibt die Zugangsdaten der Instanzrolle aus
- SSRF ermöglicht es einem Angreifer, den Server diesen Endpunkt abrufen zu lassen
- Gestohlene temporäre Zugangsdaten ermöglichen die Übernahme eines Kontos
- IMDSv2 blockiert die meisten SSRF-Angriffe, da ein tokenbasiertes PUT erforderlich ist
- Schützen Sie sich mit URL-Allowlists, IP-Validierung und Rollen mit minimalen Berechtigungen
Damit ist Cloud Pentesting abgeschlossen. Der nächste Kurs ist Bug Bounty Hunting.
Häufig gestellte Fragen
Ist die Lektion „Metadaten und SSRF“ kostenlos?
Ja — der vollständige Text von „Metadaten und SSRF“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ethical Hacking Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ethical Hacking Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Metadaten und SSRF“?
Cloud-spezifische Angriffe Du übst Ethical Hacking Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Ethical Hacking Academy zu starten?
Keine Vorkenntnisse erforderlich. Ethical Hacking Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Metadaten und SSRF“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Ethical Hacking Academy-Lektion Code schreiben und ausführen?
Ja. Jede Ethical Hacking Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Cloud-Angriffsfläche
- IAM-Fehlkonfigurationen
- S3- und Speicher-Exposure
- Metadaten und SSRF