# 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)


---

# 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/tecnicas-ofensivas-contra-lambda/remote-code-execution-en-lambda.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.
