AWS - SSM Privesc
Last updated
Last updated
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE) Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Pour plus d'infos sur SSM, consultez :
AWS - EC2, EBS, ELB, SSM, VPC & VPN Enumssm:SendCommand
Un attaquant avec la permission 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 élever les privilèges à l'intérieur d'une instance EC2 déjà compromise, vous pourriez simplement capturer le rev shell localement avec :
Impact potentiel : Privesc direct 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
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 le SessionManagerPlugin installé : https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html
Impact potentiel : Privesc direct aux rôles IAM EC2 attachés aux instances en cours d'exécution avec des agents SSM en cours d'exécution.
Lorsque les tâches ECS s'exécutent avec ExecuteCommand
activé, les utilisateurs ayant suffisamment de permissions peuvent utiliser ecs execute-command
pour exécuter une commande à l'intérieur du conteneur.
Selon la documentation, cela se fait 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. (Plugin SSM Session Manager nécessaire pour que cela fonctionne)
Par conséquent, les utilisateurs avec ssm:StartSession
pourront obtenir un shell à l'intérieur des tâches ECS avec cette option activée en exécutant simplement :
Impact potentiel : Privesc direct aux rôles ECS
IAM attachés aux tâches en cours avec ExecuteCommand
activé.
ssm:ResumeSession
Un attaquant avec la permission ssm:ResumeSession
peut re-démarrer une session similaire à SSH dans des 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 : Privesc direct aux 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
)Un attaquant avec les permissions mentionnées sera en mesure de lister les paramètres SSM et de les lire en texte 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
Un attaquant avec cette permission peut lister toutes les commandes envoyées et espérer trouver des informations sensibles à leur sujet.
Impact potentiel : Trouver des informations sensibles dans les lignes de commande.
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 dessus.
Impact potentiel : Trouver des informations sensibles dans la sortie des lignes de commande.
Vous pouvez également utiliser SSM pour accéder à un projet codebuild en cours de construction :
AWS - Codebuild PrivescApprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE) Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)