Analizando IAM desde el punto de vista de un pentester
Conceptos basicos de IAM para realizar auditorias sobre entornos AWS
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.
Para mas informacion revisar el repositorio oficial de CCAT!
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.
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.
Después de ejecutar el comando previo, debemos especificar dentro de la Shell del CCAT el nombre del perfil de nuestras credenciales de 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.).
En la evidencia previa, podemos apreciar la existencia de un repositorio con la siguiente URI:
Ahora vamos a realizar el proceso de PULL sobre la ultima imagen almacenada en el repositorio localizado:
Luego de lo anterior, vamos a realizar el proceso de backdorizar la imagen de docker y para ello debemos ejecutar lo siguiente:
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:
Luego de configurar el dockerfile malicioso, simplemente debemos realizar un PUSH para enviar los cambios al repositorio localizado:
Antes de realizar la backdorizacion sobre la imagen del docker alojado en el repositorio del ECR, solo existían 2 imágenes:
Después de ejecutar el PUSH, lograremos apreciar la existencia de una nueva imagen con el tag especificado:
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.