# Cloud Container Attack Tool - (CCAT)

{% 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 contenido se adentra en una técnica avanzada de post-explotación, crucial para entender cómo maximizar el impacto de un ataque una vez que se ha conseguido penetrar en un sistema. Es importante recalcar que la ejecución de esta técnica presupone que el atacante o consultor ya ha obtenido ciertos niveles de privilegios dentro de la infraestructura objetivo. Sin estos privilegios, llevar a cabo el ataque explicado aquí no sería posible. Proceder con cautela y siempre dentro del marco legal y ético es fundamental.
{% endhint %}

Aunque ha habido investigaciones y desarrollo de herramientas sobre contenedores y su seguridad, la mayoría de ellas se centran en el análisis de imágenes y la búsqueda de vulnerabilidades conocidas. En el 2020 surgió la creación de una herramienta llamada Cloud Container Attack Tool y esta fue desarrollada por el equipo de Rhyno Security Labs. CCAT utiliza contenedores para la explotación en la nube a través de puertas traseras (backdoors) e imágenes de Docker maliciosas.

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

Enlace para acceder:&#x20;

{% embed url="<https://github.com/RhinoSecurityLabs/ccat>" %}

## <mark style="color:orange;">Introducción a Cloud Container Attack Tool</mark> <a href="#introduccion-a-cloud-container-attack-tool" id="introduccion-a-cloud-container-attack-tool"></a>

Dependiendo de los módulos a ejecutar, se requieren privilegios `ECR:PutImage` – `ECR:InitiateLayerUpload`.\
Para configurar CCAT, debemos clonar el repositorio y luego ejecutar el siguiente comando utilizando Docker.

{% code overflow="wrap" %}

```bash
docker run -it -v ~/.aws:/root/.aws/ -v /var/run/docker.sock:/var/run/docker.sock -v ${PWD}:/app/ rhinosecuritylabs/ccat:latest
```

{% endcode %}

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

Para demostrar cómo usar CCAT, analizaremos un pequeño escenario de ejemplo a continuación, donde un atacante usa CCAT para abusar de las credenciales de AWS comprometidas para una mayor explotación en el entorno de AWS.

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

Después de ejecutar el comando previo, debemos especificar dentro de la Shell del CCAT el nombre del perfil de nuestras credenciales de AWS.

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

Posteriormente, vamos a seleccionar la opción Enumerate ECR para que CCAT recopile los diferentes repositorios existentes en la cuenta de AWS. Es importante mencionar, que se debe especificar la región de AWS con la que se estará trabajando (Para evitar problemas con el menú, se debe realizar un click sobre la región.).

<figure><img src="/files/1ukqGQhjYHXzZr4Gc8Cl" alt=""><figcaption></figcaption></figure>

En la evidencia previa, podemos apreciar la existencia de un repositorio con la siguiente URI:

```
037572360634.dkr.ecr.us-east-1.amazonaws.com/spartan-cpna
```

Ahora vamos a realizar el proceso de PULL sobre la ultima imagen almacenada en el repositorio localizado:

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

Luego de lo anterior, vamos a realizar el proceso de backdorizar la imagen de docker y para ello debemos ejecutar lo siguiente:

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

Es importante resaltar, que en el campo de instrucción del Docker se debe especificar los múltiples comandos que nosotros queremos ejecutar. Para este ejemplo, estaremos realizando una petición GET contra una página web y el dockerfile debería quedar de la siguiente manera:

```docker
FROM 037572360634.dkr.ecr.us-east-1.amazonaws.com/spartan-cpna:latest
RUN echo "HELLO_SPARTANCYBERSECURITY"
RUN apt-get update && apt-get install curl -y
RUN curl https://spartan-cybersec.com/
```

Luego de configurar el dockerfile malicioso, simplemente debemos realizar un PUSH para enviar los cambios al repositorio localizado:

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

Antes de realizar la backdorizacion sobre la imagen del docker alojado en el repositorio del ECR, solo existían 2 imágenes:

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

Después de ejecutar el PUSH, lograremos apreciar la existencia de una nueva imagen con el tag especificado:

<figure><img src="/files/05iDZCWSUDjyXjO7G915" alt=""><figcaption></figcaption></figure>

Ahora si un arquitecto de AWS o cualquier servicio que tenga acceso al repositorio realiza un PULL sobre la imagen.

Se implementará el contenedor con las características y comandos que especificamos en el Dockerfile.

### Referencias para realizar un dockerfile malicioso: <a href="#referencias-para-realizar-un-dockerfile-malicioso" id="referencias-para-realizar-un-dockerfile-malicioso"></a>

* [hacktricks](https://book.hacktricks.xyz/network-services-pentesting/5000-pentesting-docker-registry#backdooring-wordpress-image)
* [RhinoSecurityLabs](https://github.com/RhinoSecurityLabs/ccat/blob/master/docs/SCENARIO_README.md)

## Tutorial Explicativo <a href="#tutorial-explicativo" id="tutorial-explicativo"></a>

{% embed url="<https://www.youtube.com/watch?v=HLt2xEKXbXM>" %}


---

# 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/introduccion-a-ecs-eks-ecr/cloud-container-attack-tool-ccat.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.
