Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
red-shadow — 扫描 AWS IAM 配置以检测影子管理员,通过发现未限制用户对组操作的错误配置拒绝策略,实现权限提升检测与修复。 | Kitploit
工具/GitHubGitHub/lightspin-tech/red-shadow
云基础设施安全漏洞扫描器渗透测试云安全身份与访问管理 (IAM)错误配置
GitHublightspin-tech/red-shadow

red-shadow

扫描 AWS IAM 配置以检测影子管理员,通过发现未限制用户对组操作的错误配置拒绝策略,实现权限提升检测与修复。

查看仓库
9522395年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

red-shadow

Red-Shadow

Lightspin AWS IAM 漏洞扫描器

描述

扫描您的 AWS IAM 配置,查找基于错误配置的拒绝策略(该策略不会影响组中的用户)而出现的影子管理员,由 Lightspin 安全研究团队发现。

该工具检测以下 IAM 对象中的配置错误:

  • 托管策略

  • 用户内联策略

  • 组内联策略

  • 角色内联策略

研究摘要

AWS IAM 对应用于组的拒绝策略的评估逻辑,与大多数安全工程师在其他授权机制中习惯的工作方式不同。

假如一个针对组资源的策略有显式拒绝,那么它只会影响组操作,而不会影响用户操作。如果组织假设该过程与例如 Active Directory 相同,则可能面临配置错误和漏洞的风险。

易受攻击的 JSON 策略示例:

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

在此示例中,该策略应拒绝任何附加了该策略的用户、组或角色对名为 managers 的组执行的任何 iam 操作。

事实是,像 iam:ChangePassword 这样的简单 IAM 操作仍然有效,因为拒绝策略无效。

查看完整的安全研究博客

检测

AWS IAM 在用户对象操作和组对象操作之间有明确的区分。

以下列表包含了该工具针对影响组的拒绝策略(除通配符外)所扫描的用户对象操作:

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

上述许多用户对象操作都可能导致权限提升或账户受损,例如重置管理员密码、停用根账户 MFA 等。

要求

Red-Shadow 基于 Python 3 和 Boto3 构建。

该工具需要:

  • 环境变量中配置了访问密钥的 IAM 用户
  • IAM 用户拥有运行扫描器的足够权限
  • 已安装 Python 3 和 pip3

安装

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

用法

root@kitploit:~
python3 red-shadow.py

分析结果

该结果会揭示 AWS 中任何易受此类授权绕过攻击的 IAM 对象。

结果输出示例:

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

在此控制台输出中,我们可以看到我们的 ProtectManagers 拒绝策略无效,并且容易受到上文提到的权限提升等攻击。

模拟与利用

要验证该 IAM 漏洞并执行利用,您可以按以下步骤操作:

  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. 创建一个 policy.json 文件,内容如下(替换 account id):
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. 创建一个策略,允许用户为 backend-dev 组创建访问密钥,将其保存在 policy_iam.json 文件中:
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. 使用以下命令验证我们的配置: aws iam list-attached-group-policies --group backend-dev
  4. aws iam create-access-key --user-name BobAttacker
  5. 在 AWS 配置文件(本地环境)中配置新的访问密钥和秘密。
  6. 现在用户 BobAttacker 可以为所有资源创建访问密钥,但针对 managers 组有显式拒绝。

让我们利用此漏洞:

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

权限提升完成!

修复方法

一旦发现易受授权绕过攻击的策略,有两种方法可以修复漏洞并修正策略:

选项 1: 在资源字段中定义所有相关用户而非组,以避免无效的 IAM 操作,并拒绝所有组操作,例如以下示例:

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

选项 2: 在策略中使用带 iam:ResourceTag 的条件,例如以下示例:

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

联系我们

本研究由 Lightspin 安全研究团队进行。 更多信息,请联系 [email protected]。

许可证

本仓库基于 Apache License 2.0 许可。

下载工具