> For the complete documentation index, see [llms.txt](https://books.spartan-cybersec.com/cpna/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://books.spartan-cybersec.com/cpna/tecnicas-ofensivas-contra-lambda/remote-code-execution-en-lambda.md).

# Remote Code Execution en Lambda

{% 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 %}

Este escenario presenta una lambda vulnerable a Remote Code Execution y nos muestra como nosotros debemos abordar esta vulnerabilidad en un entorno serverless totalmente cloud.

Primero, debemos el EndPoint encargado de ejecutar la lambda:

<figure><img src="/files/8YDwcMBu86XNSplt4r9N" alt=""><figcaption></figcaption></figure>

Teniendo en cuenta el código fuente de la lambda, podemos apreciar la existencia del parámetro cmd y este debe ser concatenado al endpoint previamente identificado:

```bash
curl https://padxwhb4f5.execute-api.us-east-1.amazonaws.com/test/?cmd=whoami
```

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

En la evidencia previa, podemos apreciar el retorno del comando whoami y ls.

Si durante una auditoria de seguridad identificas un endpoint que se comunica con una lambda y este es vulnerable a ataques de inyección de comandos o RCE; es recomendable intentar ejecutar el siguiente comando:

```bash
curl https://padxwhb4f5.execute-api.us-east-1.amazonaws.com/test/?cmd=env
```

<figure><img src="/files/7j8YujH2IjY6h3pTiPOP" alt=""><figcaption></figcaption></figure>

Los tiempos de ejecución de Lambda establecen varias variables de entorno durante la inicialización. La mayoría de las variables de entorno proporcionan información sobre la función o el tiempo de ejecución. Las claves para estas variables de entorno están reservadas.

Por medio del RCE, hemos logrado obtener las variables de entorno de la lambda y estas contienen unas credenciales relacionadas al rol de ejecución de la función.

Vamos a autenticarnos con estas credenciales para validar los permisos obtenidos por medio de este rol comprometido.

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

En este punto, el atacante tendría que realizar una enumeración para identificar sus permisos y posteriormente si es necesario proceder realizar una [Escalacion de privilegios en IAM](/cpna/escalacion-de-privilegios-en-iam/que-es-la-escalacion-de-privilegios-basada-en-iam.md)
