Ir al contenido
Nuevo informe: Consiga su copia del Informe sobre el estado de Internet 2024. | Descargar hoy
Blogs

Uso de Censys para encontrar S3 mal configurado

Conclusiones TL;DR

En menos de una hora utilizando los datos de Censys , encontramos 7.640 buckets S3 potenciales, 49 completamente abiertos (World Read + Write), 16 buckets con escritura anónima, 1.235 con acceso de lectura anónimo, y mucho más.

Encontrar objetivos S3 con Censys

Amazon S3 (Amazon Simple Storage Service) es un producto que proporciona almacenamiento de objetos a través de la web y es utilizado por innumerables personas y organizaciones en todo el mundo. Es fácil de usar, pero por desgracia, es muy fácil de configurar mal. El 20 de diciembre de 2022, saltó la noticia de que los buckets S3 de la editorial educativa McGraw Hill estaban expuestos a Internet sin la configuración adecuada, dejando la información personal de más de 100.000 estudiantes en manos de piratas informáticos. Y esto no es un suceso raro; ocurre una y otra y otra vez.

Aunque Censys no dispone actualmente de un escáner S3 nativo, podemos utilizar los datos que recopilamos para alimentar otras herramientas. Cuando un usuario crea un bucket, se le da un nombre único que luego se traduce en DNS; por ejemplo, si yo llamo a un bucket de S3 "censys," entonces ese bucket estaría disponible a través del nombre DNS "censys.s3.amazonaws.com". Así que antes de que podamos determinar si un cubo de S3 es de acceso público, debemos saber qué nombre se le dio al objeto de almacenamiento en sí.

Muchas herramientas de seguridad pueden ayudar a los usuarios a encontrar buckets S3 abiertos, pero una de las partes más difíciles es el descubrimiento de los objetivos (los nombres de los buckets). Un método estándar es utilizar la creación de nombres por fuerza bruta o combinaciones aleatorias de palabras e intentar solicitar el nombre a AWS. Este método es la forma en que muchos atacantes maliciosos encuentran la fruta madura de los cubos S3 inseguros.

Dado que Censys ha escaneado e indexado un gran número de hosts en Internet (alrededor de 276 millones de hosts y 2.100 millones de servicios en el momento de escribir estas líneas), podemos aprovechar estos datos para encontrar posibles nombres de cubos S3, que luego podemos introducir en la herramienta de escaneo S3 de código abierto S3Scanner para determinar los tipos de acceso disponibles.

En primer lugar, creamos una consulta SQL que volcaba el contenido de cualquier cuerpo HTTP que incluyera la palabra "s3" en Internet en otra base de datos que contenía metadatos sobre el host. A continuación, escribimos un script python que recorría cada uno de estos cuerpos de respuesta HTTP y analizaba las URL similares a s3 para extraer los nombres de los buckets de s3, que luego se escribían en un archivo.

Una vez finalizada la ejecución de este script, utilizamos el archivo de salida que sólo contenía los nombres de los buckets como entrada para la herramienta S3Scanner:

~$ s3scanner --threads 8 scan --buckets-file .txt | tee s3scanner_ouput.txt

Por último, necesitábamos una forma de generar un informe sobre la salida de S3Scanner mediante la creación de un pequeño script bash que procesa los datos y crea una vista agregada de los resultados.

Hallazgos

Pudimos identificar positivamente 7.640 objetivos S3 potenciales en poco tiempo sin recurrir a la generación aleatoria de nombres. Después de ejecutar S3Scanner en estos resultados, encontramos lo siguiente:

  • 49 Los buckets de S3 permitían a los usuarios anónimos un control total sobre la instancia (Lectura/Escritura/ACP Lectura/ACP Escritura).
  • 16 buckets de S3 permitían a usuarios anónimos escribir en la instancia
  • 18 buckets de S3 permitieron a un usuario anónimo escribir en la política de control de acceso (ACP)
  • 515 buckets S3 permitieron a un usuario anónimo leer el ACP
  • 1.235 buckets S3 eran legibles por todo el mundo

 

Sobre el autor

Mark Ellzey
Senior Security Researcher Todos los puestos de Mark Ellzey
Mark Ellzey es investigador principal de seguridad en Censys. Antes de ocupar su puesto actual, Mark ha trabajado como ingeniero de seguridad de redes y desarrollador de software para varios proveedores de servicios de Internet e instituciones financieras durante más de 22 años.
Soluciones de gestión de la superficie de ataque
Más información