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
iam-vulnerable — Verwenden Sie Terraform, um Ihren eigenen, bewusst anfälligen AWS-IAM-Privilegienerweiterungs-Übungsplatz zu erstellen. | Kitploit
Tools/GitHubGitHub/bishopfox/iam-vulnerable
Privilege EscalationSchwachstellenanalysePenetrationstestsCloud-SicherheitIdentitäts- & Zugriffsmanagement (IAM)Lernen & BildungLabs & Praxis
GitHubbishopfox/iam-vulnerable

iam-vulnerable

Verwenden Sie Terraform, um Ihren eigenen, bewusst anfälligen AWS-IAM-Privilegienerweiterungs-Übungsplatz zu erstellen.

Repository anzeigen
585107vor 11 MonatenVon 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
Webseite

IAM Vulnerable

Nutzen Sie Terraform, um Ihren eigenen absichtlich unsicher gestalteten AWS-IAM-Privilegieneskalations-Übungsplatz zu erstellen.

IAM Vulnerable verwendet die Terraform-Binärdatei und Ihre AWS-Anmeldeinformationen, um über 250 IAM-Ressourcen in Ihrem ausgewählten AWS-Konto bereitzustellen. Innerhalb weniger Minuten können Sie lernen, wie Sie anfällige IAM-Konfigurationen identifizieren und ausnutzen, die eine Privilegieneskalation ermöglichen.

IAM Vulnerable's großer Bruder - CloudFoxable

Hallo zusammen. IAM Vulnerable ist nach wie vor äußerst nützlich, um die grundlegenden Bausteine der AWS IAM-Privilegieneskalation zu verstehen. Einige Jahre nach der Erstellung von IAM Vulnerable habe ich jedoch CloudFoxable entwickelt, eine CTF-ähnliche Version, die Ihnen die Grundlagen des Cloud-Penetrationstests ganzheitlicher vermittelt. - @sethsec

Absichtlich unsicherer Übungsplatz

  • CloudFoxable - Eine gamifizierte Cloud-Hacking-Sandbox

Möchten Sie über IAM-Vulnerable, CloudFox und CloudFoxable chatten?

Treten Sie unserem RedSec-Discord-Server bei.

🦊 Derzeit unterstützte Privilegieneskalationspfade: 31

Inhaltsverzeichnis

  • IAM Vulnerable
  • Empfohlene Vorgehensweise
  • Detaillierte Nutzungsanleitung
  • Schnellstart
    • Welche Ressourcen wurden gerade erstellt?
    • Wieviel wird das kosten?
  • Ein modularer Ansatz
    • Kostenlose Ressourcenmodule
    • Nicht kostenlose Ressourcenmodule
  • Unterstützte Privilegieneskalationspfade
  • Weitere Anwendungsfälle
  • FAQ

Empfohlene Vorgehensweise

  1. Wählen Sie ein AWS-Konto aus oder erstellen Sie eines - Verwenden Sie KEIN Konto, das Produktionsressourcen oder sensible Daten enthält.
  2. Erstellen Sie Ihren unsicheren Übungsplatz - Verwenden Sie dieses Repo, um die IAM-Prinzipale und -Richtlinien zu erstellen, die 31 einzigartige AWS IAM-Privilegieneskalationspfade unterstützen.
  3. Erledigen Sie Ihre Hausaufgaben - Lernen Sie die 21 ursprünglichen Privilegieneskalationspfade kennen, die von Spencer Gietzen entwickelt wurden.
  4. Hacken Sie los - Üben Sie die Ausnutzung in Ihrem neuen Übungsplatz mithilfe von Gerben Kleijns Anleitung.
  5. Steigern Sie sich - Führen Sie Ihre Tools gegen Ihr neues IAM-Privilegieneskalations-Übungskonto aus (z. B. Cloudsplaining, AWSPX, Principal Mapper, Pacu).

Detaillierte Nutzungsanleitung

Blogbeitrag: IAM Vulnerable - Ein AWS IAM-Privilegieneskalations-Übungsplatz

Schnellstart

Dieser Schnellstart skizziert eine bestimmte Vorgehensweise, um IAM Vulnerable so schnell wie möglich in Ihrem AWS-Konto zum Laufen zu bringen. Möglicherweise haben Sie viele dieser Schritte bereits durchgeführt oder möchten Anpassungen vornehmen, damit es mit Ihrer aktuellen Konfiguration funktioniert. Weitere Konfigurationsoptionen finden Sie im Abschnitt Weitere Anwendungsfälle in diesem Repository.

  1. Wählen Sie ein AWS-Konto aus oder erstellen Sie eines. (Verwenden Sie KEIN Konto, das Produktionsressourcen oder sensible Daten enthält!)
  2. Erstellen Sie einen Nicht-Root-Benutzer mit Administratorzugriff, den Sie bei der Ausführung von Terraform verwenden werden.
  3. Erstellen Sie einen Zugriffsschlüssel für diesen Benutzer.
  4. Installieren Sie die AWS CLI.
  5. Konfigurieren Sie Ihre AWS CLI mit Ihrem neu erstellten Admin-Benutzer als Standardprofil.
  6. Bestätigen Sie, dass Ihre CLI wie erwartet funktioniert, indem Sie aws sts get-caller-identity ausführen.
  7. Installieren Sie die Terraform-Binärdatei und fügen Sie den Pfad zur Binärdatei zu Ihrer PATH-Variable hinzu.
  8. git clone https://github.com/BishopFox/iam-vulnerable
  9. cd iam-vulnerable/
  10. terraform init
  11. (Optional) export TF_VAR_aws_local_profile=PROFILE_IN_AWS_CREDENTIALS_FILE_IF_OTHER_THAN_DEFAULT
  12. (Optional) export TF_VAR_aws_local_creds_file=FILE_LOCATION_IF_NON_DEFAULT

Bereinigung

Wenn Sie alle von IAM Vulnerable erstellten Ressourcen entfernen möchten, können Sie diese Befehle ausführen:

  1. cd iam-vulnerable/
  2. terraform destroy

Alternative Bereinigung (wenn Terraform-Status verloren gegangen ist)

Falls Sie iam-vulnerable mit Terraform bereitgestellt haben, aber keinen Zugriff mehr auf die Statusdatei haben (und terraform destroy nicht funktioniert), können Sie die folgenden Bereinigungsskripts verwenden:```bash

Python version (requires boto3)

./cleanup-scripts/cleanup_iam_vulnerable.py --dry-run

Bash version (requires AWS CLI and jq)

./cleanup-scripts/cleanup_iam_vulnerable.sh --dry-run

root@kitploit:~
Diese Skripte werden:
- Automatisch alle IAM-anfälligen Ressourcen in Ihrem AWS-Konto identifizieren
- Ihnen genau anzeigen, was gelöscht wird, bevor Sie fortfahren
- Ressourcen in der richtigen Reihenfolge löschen, um Abhängigkeitskonflikte zu vermeiden
- AWS-Profile unterstützen und detaillierte Protokollierung bieten

**Wichtig**: Führen Sie immer zuerst `--dry-run` aus, um zu sehen, was gelöscht würde. Siehe `cleanup-scripts/CLEANUP_README.md` für detaillierte Nutzungshinweise.

---

## Welche Ressourcen wurden gerade erstellt?

Das Terraform-Binary hat gerade die Anmeldeinformationen Ihres standardmäßigen AWS-Kontoprofils verwendet, um Folgendes zu erstellen:
* **31 Benutzer, Rollen und Richtlinien**, jede mit einem einzigartigen Exploit-Pfad zum administrativen Zugriff auf das Playground-Konto
* Einige zusätzliche Benutzer, Gruppen, Rollen und Richtlinien, die erforderlich sind, um bestimmte Exploit-Pfade vollständig zu realisieren
* Einige zusätzliche Benutzer, Rollen und Richtlinien, die die Erkennungsfähigkeiten anderer Tools testen

Standardmäßig kann jede Rolle, die von diesem Terraform-Modul erstellt wurde, von dem Benutzer oder der Rolle übernommen werden, die Sie zum Ausführen von Terraform verwendet haben.
* Wenn Sie möchten, dass Terraform ein anderes Profil als das Standardprofil verwendet, oder Sie die `assume_role_policy`-ARN fest codieren möchten, siehe [Andere Anwendungsfälle](#other-use-cases).

---

## Wie viel wird das kosten?

Das Bereitstellen von IAM-anfällig in der **Standardkonfiguration kostet nichts**. Lesen Sie den nächsten Abschnitt, um zu erfahren, wie Sie nicht standardmäßige Module aktivieren, die Kosten verursachen, und wie viel jedes Modul pro Monat kostet, wenn Sie es bereitstellen.

---

# Ein modularer Ansatz

IAM-anfällig gruppiert bestimmte Ressourcen in Modulen. Einige Module sind standardmäßig aktiviert (diejenigen, die keine Kosten verursachen), andere sind standardmäßig deaktiviert (diejenigen, die Kosten verursachen, wenn sie bereitgestellt werden). Auf diese Weise können Sie bei Bedarf bestimmte Module aktivieren.

Wenn Sie beispielsweise bereit sind, mit Exploit-Pfaden wie `ssm:StartSession` zu spielen, die Ressourcen außerhalb von IAM betreffen, können Sie diese Ressourcen bei Bedarf bereitstellen und wieder abbauen, indem Sie das Modul in der Datei `iam-vulnerable/main.tf` auskommentieren und `terraform apply` erneut ausführen:```
# Uncomment the next four lines to create an ec2 instance and related resources
#module "ec2" {
#  source = "./modules/non-free-resources/ec2"
#  aws_assume_role_arn = (var.aws_assume_role_arn != "" ? var.aws_assume_role_arn : data.aws_caller_identity.current.arn)
#}

Nachdem Sie das ec2-Modul auskommentiert haben, führen Sie Folgendes aus:``` terraform init terraform apply

root@kitploit:~
Sie haben nun die erforderlichen Komponenten bereitgestellt, um die SSM-Privilegienausweitungs-Pfade zu testen.

## Free Resource Modules

Für alles, was innerhalb von `free-resources` bereitgestellt wird, entstehen keine Kosten:

| Name | Standardstatus | Geschätzte Kosten | Beschreibung |
| --- | --- | --- | --- |
| privesc-paths  | Aktiviert | Keine | Enthält alle IAM-Privilegienausweitungs-Pfade |
| tool-testing  | Aktiviert | Keine | Enthält Testfälle, die die Fähigkeiten der verschiedenen IAM-Privilegienausweitungs-Tools bewerten |

## Non-free Resource Modules

Das Bereitstellen dieser zusätzlichen Module kann Kosten verursachen:

| Name | Standardstatus | Geschätzte Kosten | Beschreibung | Erforderlich für |
| --- | --- | --- | --- | --- |
| EC2  | Deaktiviert | :heavy_dollar_sign: <br> $4,50/Monat | Erstellt eine EC2-Instanz und eine Sicherheitsgruppe, die SSH von überall erlaubt | `ssm-SendCommand` <br> `ssm-StartSession` <br> `ec2InstanceConnect-SendSSHPublicKey` |
| Lambda | Deaktiviert | :slightly_smiling_face: <br> Monatliche Kosten abhängig von der Nutzung (Kosten sollten Null sein) | Erstellt eine Lambda-Funktion  | `Lambda-EditExistingLambdaFunctionWithRole` |
| Glue | Deaktiviert | :heavy_dollar_sign::heavy_dollar_sign::heavy_dollar_sign::heavy_dollar_sign: <br> $4/Stunde | Erstellt einen Glue-Dev-Endpunkt | `Glue-UpdateExistingGlueDevEndpoint` |
| SageMaker | Deaktiviert | Noch nicht bekannt | Erstellt ein SageMaker-Notebook | `sageMakerCreatePresignedNotebookURL` |
| CloudFormation | Deaktiviert |  :slightly_smiling_face: <br> $0,40/Monat für das über CloudFormation erstellte Secret. Kaum oder nichts für den Stack selbst | Erstellt einen CloudFormation-Stack, der ein Secret in Secret Manager erstellt | `privesc-cloudFormationUpdateStack` |

# Unterstützte Privilegienausweitungs-Pfade

| Pfadname | IAM-angreifbares Profil | Nicht-Standardmodule erforderlich | Ausbeutungsreferenzen |
| --- | --- | --- | --- |
| **Kategorie: IAM-Berechtigungen auf andere Benutzer** |   |   |   |
| IAM-CreateAccessKey | privesc4  | Keine  | :fox_face: [Well, That Escalated Quickly - Privesc 04](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 3](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-3) |
| IAM-CreateLoginProfile | privesc5  | Keine  | :fox_face: [Well, That Escalated Quickly - Privesc 05](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 3](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-3)  |
| IAM-UpdateLoginProfile | privesc6  | Keine  | :fox_face: [Well, That Escalated Quickly - Privesc 06](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 3](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-3)  |
| **Kategorie: PassRole an Dienst** |   |  |   |
| CloudFormation-PassExistingRoleToCloudFormation | privesc20  | Keine  |:fox_face: [Well, That Escalated Quickly - Privesc 20](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)   |
| CodeBuild-CreateProjectPassRole| privesc-codeBuildProject  | Keine  |   |
| DataPipeline-PassExistingRoleToNewDataPipeline| privesc21  | Keine  | :fox_face: [Well, That Escalated Quickly - Privesc 21](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| EC2-CreateInstanceWithExistingProfile| privesc3  | Keine  | :fox_face: [Well, That Escalated Quickly - Privesc 03](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 2](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-2) |
| Glue-PassExistingRoleToNewGlueDevEndpoint | privesc18  | Keine  | :fox_face: [Well, That Escalated Quickly - Privesc 18](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| Lambda-PassExistingRoleToNewLambdaThenInvoke | privesc15  |  Keine | :fox_face: [Well, That Escalated Quickly - Privesc 15](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)   |
| Lambda-PassRoleToNewLambdaThenTrigger | privesc16  |  Keine | :fox_face: [Well, That Escalated Quickly - Privesc 16](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| SageMaker-CreateNotebookPassRole |  privesc-sageNotebook | Keine  | :rhinoceros: [AWS IAM Privilege Escalation - Method 2](https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation-part-2/)  |
| SageMaker-CreateTrainingJobPassRole | privesc-sageTraining  |  Keine  |   |
| SageMaker-CreateProcessingJobPassRole |  privesc-sageProcessing | Keine   | |
| **Kategorie: Berechtigungen auf Richtlinien** |    |   |
| IAM-AddUserToGroup | privesc13  |  Keine  |:fox_face: [Well, That Escalated Quickly - Privesc 13](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)   |
| IAM-AttachGroupPolicy| privesc8  | Keine   | :fox_face: [Well, That Escalated Quickly - Privesc 08](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-AttachRolePolicy| privesc9  | Keine   | :fox_face: [Well, That Escalated Quickly - Privesc 09](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-AttachUserPolicy| privesc7  | Keine   | :fox_face:  [Well, That Escalated Quickly - Privesc 07](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-CreateNewPolicyVersion| privesc1  |  Keine | :fox_face: [Well, That Escalated Quickly - Privesc 01](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 1](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable) |
| IAM-PutGroupPolicy | privesc11  | Keine  | :fox_face: [Well, That Escalated Quickly - Privesc 11](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-PutRolePolicy | privesc12  | Keine | :fox_face:  [Well, That Escalated Quickly - Privesc 12](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) |
| IAM-PutUserPolicy | privesc10  | Keine   | :fox_face: [Well, That Escalated Quickly - Privesc 10](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-SetExistingDefaultPolicyVersion | privesc2  | Keine  |  :fox_face: [Well, That Escalated Quickly - Privesc 02](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 2](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-2)|
| **Kategorie: Privilegienausweitung mithilfe von AWS-Diensten**|    |   |   |
| EC2InstanceConnect-SendSSHPublicKey | privesc-instanceConnect  |  EC2  | 🔑 [AWS IAM privilege escalation paths](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| CloudFormation-UpdateStack | privesc-cfUpdateStack | CloudFormation | 🔑 [AWS IAM privilege escalation paths](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| Glue-UpdateExistingGlueDevEndpoint| privesc19  |  Glue | :fox_face: [Well, That Escalated Quickly - Privesc 19](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| Lambda-EditExistingLambdaFunctionWithRole| privesc17  |  Lambda  | :fox_face: [Well, That Escalated Quickly - Privesc 17](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 4](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-4)  |
| SageMakerCreatePresignedNotebookURL | privesc-sageUpdateURL | Sagemaker | :rhinoceros: [AWS IAM Privilege Escalation - Method 3](https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation-part-2/) |
| SSM-SendCommand| privesc-ssm-command  |  EC2  | 🔑 [AWS IAM privilege escalation paths](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| SSM-StartSession | privesc-ssm-session  |  EC2  | 🔑 [AWS IAM privilege escalation paths](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| STS-AssumeRole | privesc-assumerole  | Keine   | 🔑 [AWS IAM privilege escalation paths](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| **Kategorie: Aktualisieren einer AssumeRole-Richtlinie** |   |   |   |
| IAM-UpdatingAssumeRolePolicy |  privesc14 | Keine  | :fox_face: [Well, That Escalated Quickly - Privesc 14](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)   |

# Andere Anwendungsfälle

#### Standard - Kein `terraform.tfvars` konfiguriert
* Bereitstellung mit Ihrem Standard-AWS-Profil (Default)
* Alle erstellten Rollen können von dem Principal übernommen werden, der zum Ausführen von Terraform verwendet wird (festgelegt in Ihrem Standard-Profil)

#### Verwenden eines anderen als des Standard-Profils zum Ausführen von Terraform
* Kopieren Sie `terraform.tfvars.example` nach `terraform.tvvars`
* Entfernen Sie den Kommentar von der Zeile `#aws_local_profile = "profile_name"` und geben Sie den gewünschten Profilnamen ein
* Wenn Sie ein nicht standardmäßiges Profil verwenden und dennoch die Datei `aws_credentails_file_example` nutzen möchten, können Sie diesen Befehl verwenden, um eine AWS-Anmeldedatendatei zu generieren, die mit Ihrem nicht standardmäßigen Profilnamen funktioniert (Dank an @scriptingislife)
   * Denken Sie daran, `nondefaultuser` durch den von Ihnen verwendeten Profilnamen zu ersetzen):
   * `tail -n +7 aws_credentials_file_example | sed -e "s/111111111111/$(aws sts get-caller-identity | grep Account | awk -F\" '{print $4}')/g;s/default/nondefaultuser/g" >> ~/.aws/credentials`

#### Verwenden einer anderen ARN als des Aufrufers als Principal, der die neu erstellten Rollen übernehmen kann

* Kopieren Sie `terraform.tfvars.example` nach `terraform.tvvars`
* Entfernen Sie den Kommentar von der Zeile `#aws_assume_role_arn = "arn:aws:iam::112233445566:user/you"` und geben Sie die gewünschte ARN ein

Nach der Erstellung kann jede der Privesc-Rollen von dem von Ihnen angegebenen Principal (ARN) übernommen werden.

#### Ressource in Konto X erstellen, aber eine ARN aus Konto Y als Principal verwenden, der die neu erstellten Rollen übernehmen kann

Wenn Sie AWS-CLI-Profile konfiguriert haben, die Rollen in anderen Konten annehmen, möchten Sie den Profilnamen angeben UND manuell die ARN angeben, die Sie zum Einloggen in die verschiedenen Rollen verwenden möchten.

Im folgenden Beispiel werden die Ressourcen in dem Konto erstellt, das mit `"prod-cross-org-access-role"` verbunden ist, aber jede von Terraform erstellte Rolle kann von `"arn:aws:iam::112233445566:user/you"` verwendet werden, das zu einem anderen Konto gehört.```
aws_local_profile = "prod-cross-org-access-role"
aws_assume_role_arn = "arn:aws:iam::112233445566:user/you"

Häufig gestellte Fragen (FAQ)

Wie schneidet IAM Vulnerable im Vergleich zu CloudGoat, Terragoat und SadCloud ab?

Alle diese Tools verwenden Terraform, um absichtlich angreifbare Infrastruktur in AWS bereitzustellen. Der Fokus von IAM Vulnerable liegt jedoch auf IAM-Privilege-Escalation, während die anderen Tools entweder IAM-Privilege-Escalation nicht abdecken oder nur einige Szenarien behandeln.

  • CloudGoat stellt acht einzigartige Szenarien bereit, von denen einige IAM-Privilege-Escalation-Pfade abdecken, während andere sich auf andere Bereiche wie Secrets in EC2-Metadaten konzentrieren.
  • Terragoat und SadCloud konzentrieren sich beide auf die vielen Möglichkeiten, wie man Cloud-Konten falsch konfigurieren kann, decken jedoch keine IAM-Privilege-Escalation-Pfade ab. Tatsächlich kann man IAM Vulnerable fast als fehlendes Puzzlestück betrachten, wenn es zusammen mit Terragoat oder SadCloud eingesetzt wird. Die absichtlich angreifbaren Konfigurationen ergänzen sich gegenseitig.

Wie schneidet IAM Vulnerable im Vergleich zu Cloudsplaining, AWSPX, Principal Mapper, Pacu, Cloudmapper oder ScoutSuite ab?

Alle diese Tools helfen dabei, bestehende Fehlkonfigurationen in Ihrer AWS-Umgebung zu identifizieren. Einige, wie Pacu, helfen auch dabei, Fehlkonfigurationen auszunutzen. Im Gegensatz dazu erstellt IAM Vulnerable absichtlich angreifbare Infrastruktur. Wenn Sie wirklich lernen möchten, wie man Tools wie Principal Mapper (PMapper), AWSPX, Pacu und Cloudsplaining einsetzt, ist IAM Vulnerable genau das Richtige für Sie.

Ich habe noch nie Terraform verwendet und habe Angst davor. Hilfe!?

Ich hatte auch Angst vor Terraform und Projekten, die Ressourcen in meinem Konto erstellen, bevor ich wusste, wie Terraform funktioniert. Hier sind einige Dinge, die Ihre Bedenken lindern könnten:

  • Indem Sie ein AWS-Konto nur für diesen Zweck verwenden, können Sie sicher sein, dass dieses Repository keine negativen Auswirkungen auf andere Dinge hat, die Ihnen wichtig sind. Selbst wenn Sie IAM Vulnerable in einem separaten Konto innerhalb einer AWS-Organisation bereitstellen, können Sie sicher sein, dass die anderen Konten der Organisation außerhalb des Explosionsradius dieses Spielplatzkontos liegen.
  • Der Befehl terraform plan ist ein Probelauf. Er zeigt Ihnen genau an, was bereitgestellt wird, wenn Sie terraform apply ausführen, bevor Sie es tatsächlich tun.
  • Seien Sie beruhigt, dass Sie mit terraform destroy alles rückgängig machen können, was Sie mit terraform apply bereitgestellt haben, und einen sauberen Zustand erhalten.
  • Wenn Ihre Sorge die Kosten betrifft, schauen Sie sich Infracost an. Sie laden diese Binärdatei herunter, registrieren sich für einen kostenlosen API-Schlüssel und führen sie in einem Terraform-Verzeichnis wie iam-vulnerable aus. Dieses Tool führt terraform plan aus und berechnet die monatlichen Kosten des Plans in seiner aktuellen Konfiguration. Dieses Tool habe ich verwendet, um die Tabelle mit den Modulkostenschätzungen oben zu erstellen.

Kann ich dieses Tool zusammen mit einem anderen Tool wie CloudGoat, Terragoat oder SadCloud im selben AWS-Konto ausführen?

Ja. Jedes Tool verwaltet seinen Terraform-Zustand separat, aber alle Ressourcen werden im selben Konto erstellt, aktualisiert und gelöscht und können nebeneinander existieren.

Vorherige Arbeiten und gute Referenzen

  • https://github.com/RhinoSecurityLabs/AWS-IAM-Privilege-Escalation
  • https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/
  • https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation-part-2/
  • https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws
  • https://ermetic.com/whats-new/blog/aws/auditing-passrole-a-problematic-privilege-escalation-permission/
Tool herunterladen
  • (Optional) terraform plan
  • terraform apply
  • (Optional) Fügen Sie die IAM-Vulnerable-Profile zu Ihrer AWS-Anmeldeinformationsdatei hinzu und ändern Sie die Kontonummer.
    • Die folgenden Befehle erstellen eine Sicherungskopie Ihrer aktuellen AWS-Anmeldeinformationsdatei, entnehmen dann die Beispiel-Anmeldeinformationsdatei aus dem Repository, ersetzen den Platzhalterkontonummer durch Ihre Zielkontonummer und fügen schließlich alle IAM-Vulnerable-Privilegieneskalationsprofile zu Ihrer Anmeldeinformationsdatei hinzu, sodass Sie sie verwenden können:
    • cp ~/.aws/credentials ~/.aws/credentials.backup
    • tail -n +7 aws_credentials_file_example | sed s/111111111111/$(aws sts get-caller-identity | grep Account | awk -F\" '{print $4}')/g >> ~/.aws/credentials