Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
red-shadow — Scansiona le configurazioni AWS IAM per gli amministratori ombra rilevando politiche deny configurate in modo errato che non riescono a limitare le azioni degli utenti sui gruppi, consentendo il rilevamento e la correzione dell'escalation dei privilegi. | Kitploit
Strumenti/GitHubGitHub/lightspin-tech/red-shadow
Sicurezza dell'Infrastruttura CloudScanner di VulnerabilitàPenetration TestingSicurezza CloudGestione Identità e Accessi (IAM)Configurazione Errata
GitHublightspin-tech/red-shadow

red-shadow

Scansiona le configurazioni AWS IAM per gli amministratori ombra rilevando politiche deny configurate in modo errato che non riescono a limitare le azioni degli utenti sui gruppi, consentendo il rilevamento e la correzione dell'escalation dei privilegi.

Vedi Repository
95225 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

red-shadow


Red-Shadow

Lightspin AWS IAM Scanner di Vulnerabilità

Descrizione

Scansiona la tua configurazione AWS IAM per individuare shadow admin in AWS IAM basati su policy di negazione configurate in modo errato che non influenzano gli utenti nei gruppi, scoperte dal Team di Ricerca sulla Sicurezza di Lightspin.

Lo strumento rileva le configurazioni errate nei seguenti oggetti IAM:

  • Policies Gestite

  • Policies Inline degli Utenti

  • Policies Inline dei Gruppi

  • Policies Inline dei Ruoli

Riepilogo della Ricerca

La logica di valutazione AWS IAM per le policy di negazione applicate ai gruppi non funziona allo stesso modo a cui la maggior parte degli ingegneri della sicurezza potrebbe essere abituata con altri meccanismi di autorizzazione.

Supponiamo che una policy con una risorsa di gruppo abbia una negazione esplicita. In tal caso, ciò influenzerà solo le azioni di gruppo e non le azioni degli utenti, esponendo le organizzazioni a configurazioni errate e vulnerabilità se presumono che il processo sia lo stesso, ad esempio, di Active Directory.

Esempio di policy json vulnerabile:

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

In questo esempio, la policy dovrebbe negare qualsiasi azione iam eseguita da utenti, gruppi o ruoli a cui è allegata tale policy, verso il gruppo chiamato managers.

Il fatto è che una semplice azione IAM come iam:ChangePassword funzionerebbe perché la policy di negazione è inefficace.

Link al blog completo della ricerca sulla sicurezza

Rilevamento

AWS IAM ha una chiara separazione tra le azioni sugli oggetti utente e le azioni sugli oggetti di gruppo.

La seguente lista include le azioni sugli oggetti utente che lo strumento scansiona sulle policy di negazione che influenzano i gruppi (oltre al 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"]

Molte delle azioni sugli oggetti utente menzionate sopra possono facilmente portare a un escalation di privilegi o al compromissione dell'account, come il ripristino della password dell'amministratore, la disattivazione dell'MFA dell'account root e altro.

Requisiti

Red-Shadow è costruito con Python 3 e Boto3.

Lo strumento richiede:

  • IAM User con Access Key nelle Variabili d'Ambiente del Sistema Operativo
  • Permessi sufficienti per l'IAM User per eseguire lo scanner
  • Python 3 e pip3 installati

Installazione

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

Utilizzo

root@kitploit:~
python3 red-shadow.py

Analisi dei Risultati

I risultati scoprono qualsiasi oggetto IAM vulnerabile a tale bypass di autorizzazione in AWS.

Esempio di output dei risultati:

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 questo output della console, possiamo vedere che la nostra policy di negazione ProtectManagers è inefficace e vulnerabile ad attacchi come l'escalation di privilegi menzionata sopra.

Simulazione e Sfruttamento

Per convalidare la vulnerabilità IAM ed eseguire lo sfruttamento, puoi seguire il seguente flusso:

  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. crea un file policy.json con i contenuti qui sotto (sostituisci l'ID dell'account):

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. Crea una policy per permettere agli utenti di creare chiavi di accesso nel file policy_iam.json per il gruppo 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. Convalida la nostra configurazione usando: aws iam list-attached-group-policies --group backend-dev

  4. aws iam create-access-key --user-name BobAttacker

  5. Configura la nuova chiave di accesso e il segreto nel profilo AWS (ambiente locale)

  6. Ora l'utente BobAttacker può creare una chiave di accesso per tutte le risorse ma ha una negazione esplicita per il gruppo managers.

Sfruttiamo la vulnerabilità usando:

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

Escalation di Privilegi Completata!

Rimedio

Una volta trovate le policy vulnerabili al bypass di autorizzazione, ci sono due possibili modi per rimediare alla vulnerabilità e correggere la policy:

OPZIONE 1: Definisci tutti gli utenti rilevanti nel campo resource invece dei gruppi per evitare azioni iam inefficaci, e nega tutte le azioni di gruppo, come nell'esempio seguente:

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"
        }
    ]
}

OPZIONE 2: Usa una condizione nella policy con iam:ResourceTag al posto, come nell'esempio seguente:

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"
                }
            }
        }
    ]
}

Contattaci

Questa ricerca è stata condotta dal Team di Ricerca sulla Sicurezza di Lightspin. Per maggiori informazioni, contattaci a [email protected].

Licenza

Questo repository è disponibile sotto la Licenza Apache 2.0.

Scarica lo strumento