Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
red-shadow — Escaneia configurações de IAM da AWS em busca de shadow admins, detectando políticas de negação mal configuradas que não restringem ações de usuários em grupos, permitindo detecção e remediação de escalonamento de privilégios. | Kitploit
Ferramentas/GitHubGitHub/lightspin-tech/red-shadow
Segurança de Infraestrutura em NuvemScanners de VulnerabilidadesTestes de PenetraçãoSegurança na NuvemGerenciamento de Identidade e Acesso (IAM)Configuração Incorreta
GitHublightspin-tech/red-shadow

red-shadow

Escaneia configurações de IAM da AWS em busca de shadow admins, detectando políticas de negação mal configuradas que não restringem ações de usuários em grupos, permitindo detecção e remediação de escalonamento de privilégios.

Ver Repositório
9522há 5 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

red-shadow

Red-Shadow

Scanner de Vulnerabilidades AWS IAM da Lightspin

Descrição

Examine sua Configuração AWS IAM em busca de administradores ocultos no AWS IAM com base em políticas de negação mal configuradas que não afetam usuários em grupos, descoberto pela Equipe de Pesquisa de Segurança da Lightspin.

A ferramenta detecta as configurações incorretas nos seguintes Objetos IAM:

  • Políticas Gerenciadas
  • Políticas Inline de Usuários
  • Políticas Inline de Grupos
  • Políticas Inline de Funções

Resumo da Pesquisa

A lógica de avaliação do AWS IAM para políticas de negação aplicadas a grupos não funciona da mesma forma que a maioria dos engenheiros de segurança pode estar acostumada com outros mecanismos de autorização.

Suponha que uma política com um recurso de grupo tenha uma negação explícita. Nesse caso, isso afetará apenas as ações do grupo e não as ações do usuário, abrindo as organizações para má configuração e vulnerabilidades se elas assumirem que o processo é o mesmo que com o Active Directory, por exemplo.

Exemplo de política json vulnerável:

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

Neste exemplo, a política deve negar qualquer ação do IAM feita por usuários, grupos ou funções com essa política anexada, em relação ao grupo chamado managers.

O fato é que uma ação simples do IAM como iam:ChangePassword funcionaria, pois a política de negação é ineficaz.

Link para o blog completo da pesquisa de segurança

Detecção

O AWS IAM tem uma clara separação entre ações de objetos de usuário e ações de objetos de grupo.

A lista a seguir inclui as ações de objetos de usuário que a ferramenta está verificando em políticas de negação que afetam grupos (além de curinga):

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

Muitas das ações de objetos de usuário mencionadas acima podem facilmente levar a uma escalada de privilégios ou comprometimento da conta, como redefinir a senha do administrador, desativar o MFA da conta raiz e mais.

Requisitos

Red-Shadow é construído com Python 3 e Boto3.

A ferramenta requer:

  • Usuário IAM com Chave de Acesso no Ambiente do SO
  • Permissões suficientes para o usuário IAM executar o scanner
  • Python 3 e pip3 instalados

Instalação

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

Uso

root@kitploit:~
python3 red-shadow.py

Analisar Resultados

Os resultados descobrem qualquer objeto IAM que esteja vulnerável a tal bypass de autorização na AWS.

Exemplo de saída de resultados:

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

Nesta saída do console, podemos ver que nossa política de negação ProtectManagers é ineficaz e vulnerável a ataques como escalada de privilégios mencionada acima.

Simulação & Exploração

Para validar a Vulnerabilidade IAM e executar a exploração, você pode executar o seguinte fluxo:

  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. Crie um arquivo policy.json com o conteúdo abaixo (substitua o id da conta):
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. Crie uma política para permitir que os usuários criem chaves de acesso no arquivo policy_iam.json para o grupo 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. Valide nossa configuração usando: aws iam list-attached-group-policies --group backend-dev
  4. aws iam create-access-key --user-name BobAttacker
  5. Configure a nova chave de acesso e segredo no perfil AWS (ambiente local)
  6. Agora o usuário BobAttacker pode criar chave de acesso para todos os recursos, mas tem uma negação explícita para o grupo managers.

Vamos explorar a vulnerabilidade usando:

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

Escalada de Privilégios Completa!

Remediação

Depois de encontrar as políticas vulneráveis ao bypass de autorização, existem duas maneiras possíveis de remediar a vulnerabilidade e corrigir a política:

OPÇÃO 1: Defina todos os usuários relevantes no campo resource em vez de grupos para evitar ações ineficazes do IAM e negar todas as ações do grupo, como no exemplo a seguir:

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

OPÇÃO 2: Use condição na política com iam:ResourceTag no lugar, como no exemplo a seguir:

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

Entre em Contato

Esta pesquisa foi realizada pela Equipe de Pesquisa de Segurança da Lightspin. Para mais informações, entre em contato conosco pelo e-mail [email protected].

Licença

Este repositório está disponível sob a Apache License 2.0.

Baixar ferramenta