AWS - SSM Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Para más información sobre SSM, consulta:
ssm:SendCommand
Un atacante con el permiso ssm:SendCommand
puede ejecutar comandos en instancias que ejecutan el Amazon SSM Agent y comprometer el IAM Role que se ejecuta dentro de él.
En caso de que estés utilizando esta técnica para escalar privilegios dentro de una instancia EC2 ya comprometida, podrías simplemente capturar el rev shell localmente con:
Impacto Potencial: Privesc directo a los roles IAM de EC2 adjuntos a instancias en ejecución con agentes SSM en funcionamiento.
ssm:StartSession
Un atacante con el permiso ssm:StartSession
puede iniciar una sesión similar a SSH en instancias que ejecutan el agente Amazon SSM y comprometer el rol IAM que se ejecuta dentro de él.
Para iniciar una sesión, necesitas tener instalado el SessionManagerPlugin: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html
Impacto Potencial: Privesc directo a los roles de IAM de EC2 adjuntos a instancias en ejecución con SSM Agents en funcionamiento.
Cuando las tareas de ECS se ejecutan con ExecuteCommand
habilitado, los usuarios con suficientes permisos pueden usar ecs execute-command
para ejecutar un comando dentro del contenedor.
Según la documentación, esto se hace creando un canal seguro entre el dispositivo que usas para iniciar el comando “exec” y el contenedor objetivo con SSM Session Manager. (SSM Session Manager Plugin necesario para que esto funcione)
Por lo tanto, los usuarios con ssm:StartSession
podrán obtener un shell dentro de las tareas de ECS con esa opción habilitada simplemente ejecutando:
Impacto Potencial: Privesc directo a los roles de ECS
IAM adjuntos a tareas en ejecución con ExecuteCommand
habilitado.
ssm:ResumeSession
Un atacante con el permiso ssm:ResumeSession
puede re-iniciar una sesión similar a SSH en instancias que ejecutan el Agente SSM de Amazon con un estado de sesión SSM desconectado y comprometer el Rol IAM que se ejecuta dentro de él.
Impacto Potencial: Privesc directo a los roles de IAM de EC2 adjuntos a instancias en ejecución con agentes SSM en ejecución y sesiones desconectadas.
ssm:DescribeParameters
, (ssm:GetParameter
| ssm:GetParameters
)Un atacante con los permisos mencionados podrá listar los parámetros SSM y leerlos en texto claro. En estos parámetros frecuentemente se puede encontrar información sensible como claves SSH o claves API.
Impacto Potencial: Encontrar información sensible dentro de los parámetros.
ssm:ListCommands
Un atacante con este permiso puede listar todos los comandos enviados y, con suerte, encontrar información sensible en ellos.
Impacto Potencial: Encontrar información sensible dentro de las líneas de comando.
ssm:GetCommandInvocation
, (ssm:ListCommandInvocations
| ssm:ListCommands
)Un atacante con estos permisos puede listar todos los comandos enviados y leer la salida generada, con la esperanza de encontrar información sensible en ella.
Impacto Potencial: Encontrar información sensible dentro de la salida de las líneas de comando.
También puedes usar SSM para acceder a un proyecto de codebuild que se está construyendo:
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)