Secuestrar el rol de la instancia mediante Instance Connect
Puede enviar una clave SSH mediante Instance Connect y robar el rol de una instancia.
Concede escalada solo en combinación. Se necesitan todos estos a la vez:
ec2-instance-connect:SendSSHPublicKeyec2:DescribeInstancesec2-instance-connect:SendSSHPublicKey puede enviar una clave SSH mediante Instance Connect y robar el rol de una instancia, pero solo cuando se combina con ec2:DescribeInstances. Combinados, llegan a acceso de administrador.
Por qué es peligroso
Un principal puede llamar a ec2-instance-connect:SendSSHPublicKey para inyectar una clave SSH efímera en una instancia en ejecución que ya tiene el rol del perfil de instancia, y después entrar por SSH a través de la red y leer las credenciales activas de la instancia desde IMDS. Como la instancia ya está vinculada a la máquina, una shell en ella basta para robar el rol, sin necesidad de iam:PassRole. A diferencia de SSM, esto requiere un puerto SSH (22) accesible en la instancia, así que solo funciona donde existe la ruta de red; si la instancia tiene privilegios, se trata de una escalada total de privilegios contra una instancia en la que ya se confiaba.
En términos de MITRE ATT&CK, esto corresponde a T1578, Modificar la infraestructura de cómputo cloud, bajo la táctica de escalada de privilegios. AWS lo registra en CloudTrail como SendSSHPublicKey, DescribeInstances. La llamada aparece en CloudTrail pero se confunde con la administración normal, así que necesita una regla para destacar.
Detección
SendSSHPublicKeyDescribeInstancesRequisitos previos
Una instancia en ejecución existente con un perfil de instancia, accesible por su puerto SSH (22) desde la posición del atacante; permiso ec2-instance-connect:SendSSHPublicKey. ec2:DescribeInstances enumera los objetivos y se comprueba contra un comodín. Instance Connect, a diferencia de SSM, NO evita la ruta de red ni los grupos de seguridad.
Táctica
Escalada de privilegios
Un control que lo eliminaría: Restringe ec2-instance-connect:SendSSHPublicKey a principales break-glass; cierra el puerto 22 de entrada y da preferencia a SSM Session Manager.
Aplicarla o no depende de cómo se use el permiso en tu entorno, así que es una decisión de negocio y no una corrección automática. El mismo permiso puede ser imprescindible en una cuenta y puro riesgo en otra.
Pathbreak confirma si esta ruta se resuelve en tu cuenta, la clasifica frente a las demás según cuánto abre y usa tu modelo de amenazas y tu contexto de negocio para mostrar qué rutas merece la pena cortar.
Preguntas
¿Qué permite ec2-instance-connect:SendSSHPublicKey?
Puede enviar una clave SSH mediante Instance Connect y robar el rol de una instancia.
¿Qué más hace falta para que ec2-instance-connect:SendSSHPublicKey sea peligroso?
Solo se convierte en escalada cuando se combina con ec2:DescribeInstances. Por sí solo no basta, y eso es lo que hace que la combinación sea fácil de pasar por alto.
¿Cómo se detecta el secuestro del rol de instancia mediante Instance Connect?
Vigila SendSSHPublicKey, DescribeInstances en CloudTrail. La llamada aparece en CloudTrail pero se confunde con la administración normal, así que necesita una regla para destacar.
¿Cómo se rompe esta ruta?
Un control que lo eliminaría es: Restringe ec2-instance-connect:SendSSHPublicKey a principales break-glass; cierra el puerto de entrada 22 y prefiere SSM Session Manager. Aplicarla o no depende de cómo se use el permiso en tu cuenta, así que es una decisión de negocio y no una corrección automática.
¿De qué técnica de MITRE ATT&CK se trata?
T1578, Modificar la infraestructura de cómputo cloud, en la táctica de escalada de privilegios.
Rutas relacionadas
Referencias
Encuéntralo en tu propia cuenta
Ejecutamos un escaneo de solo lectura de una cuenta de AWS y te mostramos cuáles de estas rutas existen, ordenadas por radio de impacto, con el cambio que rompe cada una. Primeras rutas validadas en menos de una hora.