Skip to main content

aws-iam-enum

Enumerate AWS IAM policies, detect privilege escalation paths per Rhino Security Labs canonical 21 primitives.

インストールへ移動

ソース情報

リポジトリ
BitterSecurity/Decepticon
ソースの最終更新活動
2026年6月2日 17:24
検出された SKILL.md の言語
英語
スター
5,565
フォーク
1,053

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
aws-iam-enum
description
Enumerate AWS IAM policies, detect privilege escalation paths per Rhino Security Labs canonical 21 primitives.
metadata
{"subdomain":"cloud","when_to_use":"aws iam enumeration privesc rhino security labs 21 primitives policy escalation","mitre_attack":["T1087.004","T1069.003","T1078.004","T1098.003"]}
# AWS IAM Enumeration + Privesc ## 1. Identity check ```bash aws sts get-caller-identity aws iam get-account-summary ``` ## 2. Attached policies ```bash aws iam list-attached-user-policies --user-name ME --output json > /tmp/attached.json aws iam list-user-policies --user-name ME --output json > /tmp/inline.json aws iam list-groups-for-user --user-name ME --output json > /tmp/groups.json ``` For each attached policy ARN: ```bash aws iam get-policy --policy-arn ARN --query 'Policy.DefaultVersionId' aws iam get-policy-version --policy-arn ARN --version-id VID > /tmp/policy.json ``` Then: ``` iam_policy_audit(open("/tmp/policy.json").read()) ``` ## 3. Check each privesc primitive Rhino Security's canonical 21 paths — any `Allow` on these is a chain step: 1. iam:CreateAccessKey (other user) 2. iam:CreateLoginProfile 3. iam:UpdateLoginProfile 4. iam:AttachUserPolicy / iam:AttachGroupPolicy / iam:AttachRolePolicy 5. iam:PutUserPolicy / iam:PutGroupPolicy / iam:PutRolePolicy 6. iam:CreatePolicyVersion (if SetAsDefault=true) 7. iam:SetDefaultPolicyVersion 8. iam:PassRole + lambda:CreateFunction + lambda:InvokeFunction 9. iam:PassRole + ec2:RunInstances 10. iam:PassRole + ecs:RunTask / UpdateService 11. glue:CreateDevEndpoint / UpdateDevEndpoint 12. cloudformation:CreateStack with iam:PassRole 13. datapipeline:CreatePipeline 14. lambda:UpdateFunctionCode (existing function with priv role) 15. iam:AddUserToGroup 16. iam:UpdateAssumeRolePolicy 17. iam:CreateRole + sts:AssumeRole 18. codebuild:CreateProject with iam:PassRole 19. sagemaker:CreateTrainingJob with iam:PassRole 20. aws-marketplace:Subscribe (rare, but noted) 21. sts:AssumeRole (direct) ## 4. Graph promotion ``` kg_add_node(kind="vulnerability", label="IAM:CreateAccessKey → account takeover", props={"severity":"critical","source":"aws-iam"}) kg_add_node(kind="crown_jewel", label="AWS Account 1234") kg_add_edge(src=<vuln>, dst=<crown_jewel>, kind="grants", weight=0.3) ``` ## 5. Common chains - Dev user has `iam:PassRole` + `lambda:CreateFunction` + a Lambda role with admin → create malicious Lambda → assume admin - `iam:UpdateLoginProfile` + `sts:GetFederationToken` → temporary console access as another user
GitHubで見る