AWS Pentesting
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Bevor du mit dem Pentesting einer AWS-Umgebung beginnst, gibt es einige grundlegende Dinge, die du wissen musst, wie AWS funktioniert, um zu verstehen, was du tun musst, wie du Fehlkonfigurationen findest und wie du sie ausnutzen kannst.
Konzepte wie Organisationshierarchie, IAM und andere grundlegende Konzepte werden erklärt in:
AWS - Basic InformationTools zur Simulation von Angriffen:
Um eine AWS-Umgebung zu auditieren, ist es sehr wichtig zu wissen: welche Dienste verwendet werden, was exponiert wird, wer Zugriff auf was hat und wie interne AWS-Dienste mit externen Diensten verbunden sind.
Aus der Sicht eines Red Teams ist der erste Schritt, um eine AWS-Umgebung zu kompromittieren, die Erlangung von Anmeldeinformationen. Hier sind einige Ideen, wie du das tun kannst:
Leaks in GitHub (oder ähnlichem) - OSINT
Soziale Ingenieurkunst
Passwort-Wiederverwendung (Passwort-Leaks)
Schwachstellen in AWS-gehosteten Anwendungen
Server Side Request Forgery mit Zugriff auf den Metadaten-Endpunkt
Lokales Datei-Lesen
/home/USERNAME/.aws/credentials
C:\Users\USERNAME\.aws\credentials
3rd Party gehackt
Interner Mitarbeiter
Cognito Anmeldeinformationen
Oder durch Kompromittierung eines nicht authentifizierten Dienstes, der exponiert ist:
AWS - Unauthenticated Enum & AccessOder wenn du eine Überprüfung machst, könntest du einfach nach Anmeldeinformationen mit diesen Rollen fragen:
AWS - Permissions for a PentestNachdem du es geschafft hast, Anmeldeinformationen zu erhalten, musst du wissen, zu wem diese Anmeldeinformationen gehören, und auf was sie Zugriff haben, also musst du einige grundlegende Aufzählungen durchführen:
Wenn du ein SSRF auf einer Maschine innerhalb von AWS gefunden hast, überprüfe diese Seite für Tricks:
Eine der ersten Dinge, die du wissen musst, ist, wer du bist (in welchem Konto du bist und andere Informationen über die AWS-Umgebung):
Beachten Sie, dass Unternehmen canary tokens verwenden könnten, um zu identifizieren, wann Tokens gestohlen und verwendet werden. Es wird empfohlen, zu überprüfen, ob ein Token ein canary token ist oder nicht, bevor Sie es verwenden. Für weitere Informationen diese Seite überprüfen.
Wenn Sie genügend Berechtigungen haben, wird das Überprüfen der Berechtigungen jeder Entität im AWS-Konto Ihnen helfen zu verstehen, was Sie und andere Identitäten tun können und wie Sie Berechtigungen eskalieren können.
Wenn Sie nicht genügend Berechtigungen haben, um IAM zu enumerieren, können Sie sie bruteforcen, um sie herauszufinden. Überprüfen Sie wie man die Enumeration und das Brute-Forcing durchführt in:
AWS - IAM, Identity Center & SSO EnumJetzt, da Sie einige Informationen über Ihre Anmeldeinformationen haben (und wenn Sie ein Red Team sind, hoffen wir, dass Sie nicht entdeckt wurden). Es ist Zeit herauszufinden, welche Dienste in der Umgebung verwendet werden. Im folgenden Abschnitt können Sie einige Möglichkeiten überprüfen, um einige gängige Dienste zu enumerieren.
AWS hat eine erstaunliche Anzahl von Diensten. Auf der folgenden Seite finden Sie grundlegende Informationen, Enumeration Cheatsheets**,** wie man Erkennung vermeidet, Persistenz erlangt und andere Post-Exploitation Tricks über einige von ihnen:
AWS - ServicesBeachten Sie, dass Sie nicht die gesamte Arbeit manuell durchführen müssen. Unten in diesem Beitrag finden Sie einen Abschnitt über automatische Tools.
Darüber hinaus könnten Sie in diesem Stadium weitere Dienste entdeckt haben, die für nicht authentifizierte Benutzer exponiert sind. Möglicherweise können Sie diese ausnutzen:
AWS - Unauthenticated Enum & AccessWenn Sie mindestens Ihre eigenen Berechtigungen über verschiedene Ressourcen überprüfen können, könnten Sie überprüfen, ob Sie weitere Berechtigungen erhalten können. Sie sollten sich mindestens auf die in folgendem Abschnitt angegebenen Berechtigungen konzentrieren:
AWS - Privilege EscalationWährend Sie AWS-Dienste enumerieren, haben Sie möglicherweise einige von ihnen gefunden, die Elemente ins Internet exponieren (VM/Container-Ports, Datenbanken oder Warteschlangendienste, Snapshots oder Buckets...). Als Pentester/Red Teamer sollten Sie immer überprüfen, ob Sie sensible Informationen / Schwachstellen auf ihnen finden können, da sie Ihnen weiteren Zugang zum AWS-Konto bieten könnten.
In diesem Buch sollten Sie Informationen darüber finden, wie man exponierte AWS-Dienste findet und wie man sie überprüft. Um Schwachstellen in exponierten Netzwerkdiensten zu finden, empfehle ich Ihnen, nach dem spezifischen Dienst zu suchen in:
Wenn das Management-Konto neue Konten in der Organisation erstellt, wird eine neue Rolle im neuen Konto erstellt, standardmäßig benannt OrganizationAccountAccessRole
und gibt der Management-Konto die AdministratorAccess-Richtlinie, um auf das neue Konto zuzugreifen.
Um also als Administrator auf ein Kindkonto zuzugreifen, benötigen Sie:
Kompromittieren Sie das Management-Konto und finden Sie die ID der Kindkonten und die Namen der Rolle (OrganizationAccountAccessRole standardmäßig), die dem Management-Konto den Zugriff als Administrator ermöglicht.
Um Kindkonten zu finden, gehen Sie zum Abschnitt Organisationen in der AWS-Konsole oder führen Sie aws organizations list-accounts
aus.
Sie können die Namen der Rollen nicht direkt finden, also überprüfen Sie alle benutzerdefinierten IAM-Richtlinien und suchen Sie nach solchen, die sts:AssumeRole
über die zuvor entdeckten Kindkonten erlauben.
Kompromittieren Sie einen Principal im Management-Konto mit sts:AssumeRole
-Berechtigung über die Rolle in den Kindkonten (auch wenn das Konto jedem im Management-Konto erlaubt, sich auszugeben, sind spezifische sts:AssumeRole
-Berechtigungen erforderlich, da es sich um ein externes Konto handelt).
aws-recon: Ein mehrthreadiges, auf AWS-Sicherheit fokussiertes Inventarsammlungstool, geschrieben in Ruby.
cloudlist: Cloudlist ist ein Multi-Cloud-Tool zum Abrufen von Assets (Hostnamen, IP-Adressen) von Cloud-Anbietern.
cloudmapper: CloudMapper hilft Ihnen, Ihre Amazon Web Services (AWS) Umgebungen zu analysieren. Es enthält jetzt viel mehr Funktionen, einschließlich der Überprüfung auf Sicherheitsprobleme.
cartography: Cartography ist ein Python-Tool, das Infrastrukturressourcen und die Beziehungen zwischen ihnen in einer intuitiven grafischen Ansicht konsolidiert, die von einer Neo4j-Datenbank unterstützt wird.
starbase: Starbase sammelt Assets und Beziehungen von Diensten und Systemen, einschließlich Cloud-Infrastruktur, SaaS-Anwendungen, Sicherheitskontrollen und mehr, in einer intuitiven grafischen Ansicht, die von der Neo4j-Datenbank unterstützt wird.
aws-inventory: (Verwendet python2) Dies ist ein Tool, das versucht, alle AWS-Ressourcen zu entdecken, die in einem Konto erstellt wurden.
aws_public_ips: Es ist ein Tool, um alle öffentlichen IP-Adressen (sowohl IPv4/IPv6) abzurufen, die mit einem AWS-Konto verbunden sind.
SkyArk: Entdecken Sie die privilegiertesten Benutzer in der gescannten AWS-Umgebung, einschließlich der AWS Shadow Admins. Es verwendet PowerShell. Sie können die Definition privilegierter Richtlinien in der Funktion Check-PrivilegedPolicy
in https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1 finden.
pacu: Pacu ist ein Open-Source-AWS-Exploitation-Framework, das für offensive Sicherheitstests gegen Cloud-Umgebungen entwickelt wurde. Es kann enumerieren, Fehlkonfigurationen finden und diese ausnutzen. Sie können die Definition privilegierter Berechtigungen in https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134 im user_escalation_methods
dict finden.
Beachten Sie, dass pacu nur Ihre eigenen Privesc-Pfade überprüft (nicht kontoweit).
PMapper: Principal Mapper (PMapper) ist ein Skript und eine Bibliothek zur Identifizierung von Risiken in der Konfiguration von AWS Identity and Access Management (IAM) für ein AWS-Konto oder eine AWS-Organisation. Es modelliert die verschiedenen IAM-Benutzer und -Rollen in einem Konto als gerichteten Graphen, was Überprüfungen auf Privilegieneskalation und alternative Wege ermöglicht, die ein Angreifer nutzen könnte, um Zugriff auf eine Ressource oder Aktion in AWS zu erhalten. Sie können die Berechtigungen, die verwendet werden, um privesc-Pfad zu finden, in den Dateinamen, die mit _edges.py
enden, in https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing überprüfen.
cloudsplaining: Cloudsplaining ist ein AWS IAM-Sicherheitsbewertungstool, das Verstöße gegen das Prinzip der minimalen Berechtigung identifiziert und einen risikopriorisierten HTML-Bericht erstellt. Es zeigt Ihnen potenziell überprivilegierte Kunden, Inline- und AWS-Richtlinien und welche Prinzipale Zugriff darauf haben. (Es überprüft nicht nur auf Privesc, sondern auch auf andere interessante Berechtigungen, die empfohlen werden zu verwenden).
cloudjack: CloudJack bewertet AWS-Konten auf Subdomain-Hijacking-Schwachstellen aufgrund von entkoppelten Route53- und CloudFront-Konfigurationen.
ccat: Liste ECR-Repos -> Ziehe ECR-Repo -> Hintertür einfügen -> Hintertüriges Bild pushen
Dufflebag: Dufflebag ist ein Tool, das in öffentlichen Elastic Block Storage (EBS)-Snapshots nach Geheimnissen sucht, die möglicherweise versehentlich hinterlassen wurden.
cloudsploit: CloudSploit von Aqua ist ein Open-Source-Projekt, das entwickelt wurde, um Sicherheitsrisiken in Cloud-Infrastruktur-Konten zu erkennen, einschließlich: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI) und GitHub (es sucht nicht nach ShadowAdmins).
Prowler: Prowler ist ein Open Source-Sicherheitswerkzeug zur Durchführung von Bewertungen der besten Sicherheitspraktiken in AWS, Audits, Incident Response, kontinuierlicher Überwachung, Härtung und forensischer Bereitschaft.
CloudFox: CloudFox hilft Ihnen, situative Wahrnehmung in unbekannten Cloud-Umgebungen zu erlangen. Es ist ein Open-Source-Befehlszeilenwerkzeug, das entwickelt wurde, um Penetrationstestern und anderen Fachleuten für offensive Sicherheit zu helfen, ausnutzbare Angriffswege in der Cloud-Infrastruktur zu finden.
ScoutSuite: Scout Suite ist ein Open-Source-Tool zur Sicherheitsprüfung für mehrere Clouds, das die Bewertung der Sicherheitslage von Cloud-Umgebungen ermöglicht.
cs-suite: Cloud Security Suite (verwendet python2.7 und sieht unwartbar aus)
Zeus: Zeus ist ein leistungsstarkes Tool für AWS EC2 / S3 / CloudTrail / CloudWatch / KMS beste Härtungspraktiken (sieht unwartbar aus). Es überprüft nur standardmäßig konfigurierte Anmeldeinformationen im System.
cloud-custodian: Cloud Custodian ist eine Regel-Engine zur Verwaltung öffentlicher Cloud-Konten und -Ressourcen. Es ermöglicht Benutzern, Richtlinien zu definieren, um eine gut verwaltete Cloud-Infrastruktur zu ermöglichen, die sowohl sicher als auch kosteneffizient ist. Es konsolidiert viele der Ad-hoc-Skripte, die Organisationen haben, in ein leichtgewichtiges und flexibles Tool mit einheitlichen Metriken und Berichterstattung.
pacbot: Policy as Code Bot (PacBot) ist eine Plattform für kontinuierliche Compliance-Überwachung, Compliance-Berichterstattung und Sicherheitsautomatisierung für die Cloud. In PacBot werden Sicherheits- und Compliance-Richtlinien als Code implementiert. Alle von PacBot entdeckten Ressourcen werden gegen diese Richtlinien bewertet, um die Konformität mit den Richtlinien zu überprüfen. Das PacBot Auto-Fix-Framework bietet die Möglichkeit, automatisch auf Richtlinienverletzungen zu reagieren, indem vordefinierte Aktionen ausgeführt werden.
streamalert: StreamAlert ist ein serverloses, Echtzeit-Datenanalyse-Framework, das es Ihnen ermöglicht, Daten aus jeder Umgebung zu erfassen, zu analysieren und zu alarmieren, unter Verwendung von Datenquellen und Alarmierungslogik, die Sie definieren. Computer-Sicherheitsteams verwenden StreamAlert, um täglich Terabytes von Protokolldaten auf Vorfallserkennung und -reaktion zu scannen.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)