# AddUserToGroup

{% hint style="danger" %}
¿Crees tener lo que se necesita para ser un experto en Pentesting contra AWS? Si nuestro libro te abrió los ojos a las posibilidades de la ciberseguridad ofensiva o si ya cuentas con habilidades en este campo, es momento de subir de nivel. Te retamos a certificarte en el [CPNA - Curso Profesional de Pentesting Contra AWS](https://spartan-cybersec.com/cursos/pentesting-contra-la-nube-de-aws/). No será fácil: te enfrentarás a un examen riguroso de 12 horas donde deberás hackear una infraestructura completa alojada en AWS. ¿Listo para el desafío? Acepta el reto y demuestra tu verdadero potencial.
{% endhint %}

{% hint style="warning" %}
Este laboratorio no se encuentra actualmente disponible en el CPNA.

Puedes practicar esta tecnica desplegando el ambiente en tu propia cuenta de AWS.

<https://github.com/BishopFox/iam-vulnerable>
{% endhint %}

Un atacante con el permiso `iam:AddUserToGroup` puede utilizarlo para añadirse a un grupo IAM existente en la cuenta de AWS.

Luego del despliegue del laboratorio de IAM-Vulnerable, nos vamos a encontrar el siguiente usuario:

<figure><img src="/files/YdMzetQVjZKJsFclzYX1" alt=""><figcaption></figcaption></figure>

Este usuario tiene la siguiente política:

<figure><img src="/files/CebzFjQwZfczX0EN9ytd" alt=""><figcaption></figcaption></figure>

Este usuario tiene el siguiente rol:

<figure><img src="/files/tXyv51OCdSVOUY7AagPG" alt=""><figcaption></figcaption></figure>

Otra manera de validar lo anterior, es por medio del siguiente comando ya explicado:

Listando las políticas del usuario que será auditado:

```
aws iam list-attached-user-policies --user-name privesc13-AddUserToGroup-user
```

<figure><img src="/files/Fg12ruKtbm47oOOlcrrD" alt=""><figcaption></figcaption></figure>

Obteniendo información relevante para nuestra auditoria utilizando el ARN de la política del usuario auditado:

{% code overflow="wrap" %}

```
aws iam get-policy-version --policy-arn arn:aws:iam::651927172911:policy/privesc13-AddUserToGroup --version-id v1
```

{% endcode %}

<figure><img src="/files/bhyNBmHDAWfWEkcOVdrC" alt=""><figcaption></figcaption></figure>

Ahora con nuestro usuario administrador, vamos a generar unas credenciales con STS sobre dicho usuario.

{% code overflow="wrap" %}

```
aws sts assume-role --role-arn arn:aws:iam::651927172911:role/privesc13-AddUserToGroup-role --role-session-name privesc13
```

{% endcode %}

<figure><img src="/files/wC0tK2KgB0F6KZDpZPdS" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
A partir de este momento, estaremos trabajando con el usuario <mark style="color:red;">**privesc13-AddUserToGroup-user**</mark>.

Todos los comandos posteriores deben tener especificado el --profile con su respectivo nombre de perfil.
{% endhint %}

Por lo anterior, tenemos que autenticarnos en AWSCLI y validar con el comando del [El whoami de AWS](/cpna/introduccion-a-aws/el-whoami-de-aws.md)

Primero nos autenticamos:

```
aws configure --profile privesc13
```

<figure><img src="/files/ndLZLBzYOeqoaGQCC0qP" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
El token se especificará dentro del archivo plano de credenciales.
{% endhint %}

Y luego validamos con el whoami de AWS:

```
aws sts get-caller-identity --profile privesc13
```

<figure><img src="/files/DQJXAkeSBswzRNRLEnqw" alt=""><figcaption></figcaption></figure>

Si intentamos agregarnos al grupo de administradores, vamos a obtener una salida vacía que indica que la adicción del usuario al grupo fue exitosa:

{% code overflow="wrap" %}

```
aws iam add-user-to-group --group-name Group-Root-Spartan --user-name privesc13-AddUserToGroup-user --profile privesc13
```

{% endcode %}

<figure><img src="/files/2Jc8eqiwvZwAeMoChyhD" alt=""><figcaption></figcaption></figure>

Si revisamos ahora podemos apreciar que el usuario inicial tiene privilegios de administrador:

<figure><img src="/files/IY4dFQ23XPLuGKcHPEul" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://books.spartan-cybersec.com/cpna/escalacion-de-privilegios-en-iam/permisos-de-iam-en-otros-usuarios/addusertogroup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
