AWS - SSM Privesc
Last updated
Last updated
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
有关 SSM 的更多信息,请查看:
AWS - EC2, EBS, ELB, SSM, VPC & VPN Enumssm:SendCommand
具有权限 ssm:SendCommand
的攻击者可以 在运行 Amazon SSM Agent 的实例中执行命令 并 危害其中运行的 IAM 角色。
在您使用此技术在已被攻陷的 EC2 实例中提升权限的情况下,您可以通过以下方式在本地捕获 rev shell:
潜在影响: 直接提升权限到附加在运行实例上的 EC2 IAM 角色,这些实例运行着 SSM 代理。
ssm:StartSession
拥有权限 ssm:StartSession
的攻击者可以 在运行 Amazon SSM 代理的实例中启动类似 SSH 的会话,并 破坏其中运行的 IAM 角色。
要开始会话,您需要安装 SessionManagerPlugin: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html
潜在影响: 直接提升权限到附加到运行实例的 EC2 IAM 角色,这些实例运行着 SSM 代理。
当 ECS 任务 以 ExecuteCommand
启用 运行时,具有足够权限的用户可以使用 ecs execute-command
在容器内 执行命令。
根据 文档,这是通过在您用来启动“exec”命令的设备与目标容器之间创建安全通道来完成的,使用 SSM 会话管理器。(SSM 会话管理器插件是实现此功能所必需的)
因此,具有 ssm:StartSession
权限的用户将能够通过运行以下命令 在启用该选项的 ECS 任务中获取 shell:
潜在影响: 直接提升权限到附加到运行任务的 ECS
IAM 角色,且启用了 ExecuteCommand
。
ssm:ResumeSession
拥有权限 ssm:ResumeSession
的攻击者可以在运行 Amazon SSM Agent 的实例中重新启动 SSH 类会话,并且在断开的 SSM 会话状态下危害其中运行的 IAM 角色。
潜在影响: 直接提升权限到附加到运行实例的 EC2 IAM 角色,这些实例运行着 SSM Agents 并且有断开的会话。
ssm:DescribeParameters
, (ssm:GetParameter
| ssm:GetParameters
)拥有上述权限的攻击者将能够列出 SSM 参数 并 以明文读取它们。在这些参数中,您经常可以 找到敏感信息,例如 SSH 密钥或 API 密钥。
潜在影响: 在参数中找到敏感信息。
ssm:ListCommands
拥有此权限的攻击者可以列出所有发送的 命令,并希望在其中找到 敏感信息。
潜在影响: 在命令行中查找敏感信息。
ssm:GetCommandInvocation
, (ssm:ListCommandInvocations
| ssm:ListCommands
)拥有这些权限的攻击者可以列出所有发送的 命令 并 读取生成的输出,希望能找到 敏感信息。
潜在影响: 在命令行输出中查找敏感信息。
您还可以使用 SSM 进入正在构建的 codebuild 项目:
AWS - Codebuild Privesc学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)