AWS - SSM Privesc
SSM
Pour plus d'informations sur SSM, consultez :
AWS - EC2, EBS, ELB, SSM, VPC & VPN Enumssm:SendCommand
ssm:SendCommand
Un attaquant ayant l'autorisation ssm:SendCommand
peut exécuter des commandes dans des instances exécutant l'Agent Amazon SSM et compromettre le rôle IAM s'exécutant à l'intérieur.
Dans le cas où vous utilisez cette technique pour escalader les privilèges à l'intérieur d'une instance EC2 déjà compromise, vous pourriez simplement capturer le shell inversé localement avec :
Impact potentiel : Élévation de privilèges directe vers les rôles IAM EC2 attachés aux instances en cours d'exécution avec des agents SSM en cours d'exécution.
ssm:StartSession
ssm:StartSession
Un attaquant avec la permission ssm:StartSession
peut démarrer une session similaire à SSH dans les instances exécutant l'Agent Amazon SSM et compromettre le rôle IAM s'exécutant à l'intérieur.
Pour commencer une session, vous devez avoir installé le plugin SessionManagerPlugin : https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html
Impact potentiel : Élévation de privilèges directe vers les rôles IAM EC2 attachés aux instances en cours d'exécution avec des agents SSM actifs.
Élévation de privilèges vers ECS
Lorsque les tâches ECS s'exécutent avec ExecuteCommand
activé, les utilisateurs disposant des autorisations suffisantes peuvent utiliser ecs execute-command
pour exécuter une commande à l'intérieur du conteneur.
Selon la documentation, cela est réalisé en créant un canal sécurisé entre l'appareil que vous utilisez pour initier la commande "exec" et le conteneur cible avec SSM Session Manager. (Le plugin SSM Session Manager est nécessaire pour que cela fonctionne)
Par conséquent, les utilisateurs disposant de ssm:StartSession
pourront obtenir un shell à l'intérieur des tâches ECS avec cette option activée en exécutant simplement :
Impact potentiel : Élévation de privilèges directe vers les rôles IAM
d'ECS attachés aux tâches en cours d'exécution avec ExecuteCommand
activé.
ssm:ResumeSession
ssm:ResumeSession
Un attaquant avec la permission ssm:ResumeSession
peut re-démarrer une session similaire à SSH dans les instances exécutant l'Agent Amazon SSM avec un état de session SSM déconnecté et compromettre le rôle IAM s'exécutant à l'intérieur.
Impact potentiel : Élévation de privilèges directe vers les rôles IAM EC2 attachés aux instances en cours d'exécution avec des agents SSM en cours d'exécution et des sessions déconnectées.
ssm:DescribeParameters
, (ssm:GetParameter
| ssm:GetParameters
)
ssm:DescribeParameters
, (ssm:GetParameter
| ssm:GetParameters
)Un attaquant avec les autorisations mentionnées pourra lister les paramètres SSM et les lire en clair. Dans ces paramètres, vous pouvez fréquemment trouver des informations sensibles telles que des clés SSH ou des clés API.
Impact potentiel : Trouver des informations sensibles à l'intérieur des paramètres.
ssm:ListCommands
ssm:ListCommands
Un attaquant avec cette autorisation peut lister toutes les commandes envoyées et espérons trouver des informations sensibles à leur sujet.
Impact potentiel : Trouver des informations sensibles à l'intérieur des lignes de commande.
ssm:GetCommandInvocation
, (ssm:ListCommandInvocations
| ssm:ListCommands
)
ssm:GetCommandInvocation
, (ssm:ListCommandInvocations
| ssm:ListCommands
)Un attaquant avec ces autorisations peut lister toutes les commandes envoyées et lire la sortie générée, en espérant trouver des informations sensibles à ce sujet.
Impact potentiel : Trouver des informations sensibles dans la sortie des lignes de commande.
Codebuild
Vous pouvez également utiliser SSM pour accéder à un projet codebuild en cours de construction :
AWS - Codebuild PrivescLast updated