Utilizando Cloud Container Attack Tool (CCAT)

Utilizando Cloud Container Attack Tool (CCAT)

Hello Cyber-Spartans!
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.
Interactuando con Cloud Container Attack Tool

Para mas informacion revisar el repositorio oficial de CCAT!

Introducción a Cloud Container Attack Tool

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.

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

Utilizando Docker para interactuar con CCAT

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.

Flujo para utilizar CCAT

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

Seleccion de perfil en AWS

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

Enumeracion de ECR con CCAT

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:

Pull de repositorios de ECR con CCAT

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

Backdorizando de ECR con Docker Malicioso utilizando CCAT

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:

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:

Push de repositorios de ECR con CCAT

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

Revisando los repositorios de ECR antes del ataque

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

Revisando los repositorios de ECR despues del ataque

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:

hacktricks
RhinoSecurityLabs

Tutorial Explicativo

Aprende mas con nuestro curso de pentesting contra AWS