Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
red-shadow — Сканирует конфигурации AWS IAM на наличие теневых администраторов, выявляя неправильно настроенные политики deny, которые не ограничивают действия пользователей в группах, что позволяет обнаруживать и устранять эскалацию привилегий. | Kitploit
Инструменты/GitHubGitHub/lightspin-tech/red-shadow
Безопасность облачной инфраструктурыСканеры уязвимостейТестирование на ПроникновениеБезопасность облачных средУправление идентификацией и доступом (IAM)Неправильная Конфигурация
GitHublightspin-tech/red-shadow

red-shadow

Сканирует конфигурации AWS IAM на наличие теневых администраторов, выявляя неправильно настроенные политики deny, которые не ограничивают действия пользователей в группах, что позволяет обнаруживать и устранять эскалацию привилегий.

Репозиторий
95225 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

red-shadow

Red-Shadow

Сканер уязвимостей AWS IAM от Lightspin

Описание

Сканируйте вашу конфигурацию AWS IAM на наличие теневых администраторов (shadow admins) в AWS IAM на основе неверно настроенных политик deny, не влияющих на пользователей в группах, обнаруженных исследовательской группой безопасности Lightspin.

Инструмент обнаруживает неверные конфигурации в следующих объектах IAM:

  • Управляемые политики

  • Встраиваемые политики пользователей

  • Встраиваемые политики групп

  • Встраиваемые политики ролей

Краткое описание исследования

Логика оценки AWS IAM для политик deny, применяемых к группам, работает не так, как привыкли большинство инженеров по безопасности в других механизмах авторизации.

Предположим, что политика с ресурсом группы содержит явный запрет (deny). В этом случае она повлияет только на действия с группой, а не на действия пользователей, что открывает организации для неверных конфигураций и уязвимостей, если они предполагают, что процесс такой же, как, например, в Active Directory.

Пример уязвимой политики JSON:

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

В этом примере политика должна запрещать любые действия IAM, выполняемые пользователями, группами или ролями, к которым эта политика прикреплена, в отношении группы с именем managers.

Дело в том, что простое действие IAM, такое как iam:ChangePassword, будет работать, поскольку политика deny неэффективна.

Ссылка на полный блог по исследованию безопасности

Обнаружение

AWS IAM имеет четкое разделение между действиями над объектами пользователей и действиями над объектами групп.

Следующий список включает действия над объектами пользователей, которые инструмент сканирует в политиках deny, затрагивающих группы (кроме 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"]

Многие из перечисленных выше действий над объектами пользователей могут легко привести к повышению привилегий или компрометации учетной записи, например, сброс пароля администратора, деактивация 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

Анализ результатов

Результаты обнаруживают любые объекты IAM, уязвимые для такого обхода авторизации в AWS.

Пример вывода результатов:

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

В этом выводе консоли мы видим, что наша политика deny 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. create a policy.json file with the contents below (replace the 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. Create a policy to allow the users to create access keys in policy_iam.json file for the backend-dev group:
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. Configure the new access key and secret in aws profile (locan env)
  6. Теперь пользователь BobAttacker может создавать ключи доступа для всех ресурсов, но имеет явный запрет (deny) для группы managers.

Давайте воспользуемся уязвимостью с помощью:

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

Повышение привилегий выполнено!

Исправление

После того как вы нашли политики, уязвимые для обхода авторизации, есть два возможных способа устранить уязвимость и исправить политику:

ВАРИАНТ 1: Определите всех соответствующих пользователей в поле resource вместо групп, чтобы избежать неэффективных действий 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.

Скачать инструмент