Enumeración y explotación de recursos internos mediante Javascript/AJAX (y II)
Explotación y escenario de ataque
Esta técnica tiene un gran potencial, no solo por el hecho de permitir la enumeración, sino sobre todo, por aprovechar la propia enumeración para realizar ataques de explotación desde el exterior utilizando el navegador web de la víctima que visita la página web "maliciosa". Existen muchos tipos de ataques posibles. A continuación se expone un ataque diferente al expuesto en la NoConName y que muestra la flexibilidad a la hora de atacar sistemas.
Un usuario (víctima1) que utiliza navegador web Chrome (WebRTC) actualizado en su última versión, visita una página web (atacante). Este hecho desencadena la enumeración de direcciones IP vivas y la identificación de productos vulnerables a través de la identificación de rutas conocidas:
- Wordpress: wp-admin/images/w-logo-blue.png
- Moodle: /theme/standardwhite/favicon.ico
- …
Se identificará en la red un CMS (víctima2) vulnerable a una inyección SQL. El atacante utilizará a la víctima1 para inyectar el "exploit" en la víctima2 y conseguir extraer las credenciales de la base de datos al exterior. La víctima2 comunicará la información a la víctima1 y esta al atacante (otras configuraciones son posibles).
Esquema de ataque El exploit creado es muy sencillo. Consiste en la introducción en la página web visitada de un
iframe con la inyección SQL y además una etiqueta HTML concreta que se concatenara con los resultados obtenidos de la base datos. Estos datos son leídos de la tabla "test" de una base de datos MySQL, que es accesible a través de una aplicación vulnerable a SQL y que simplificará la comunicación de estos datos al exterior.
Ejemplo de exploit
Nótese que se codifica en hexadecimal la etiqueta:
Una vez ejecutada la inyección en la víctima2, la víctima1 tendrá en su iframe una etiqueta de tipo img por cada credencial (name, passwd) extraída de la base de datos. La ejecución de estas etiquetas permitirá el envío de las credenciales al atacante.
Detalle del código JavaScript del exploit
Conclusiones
La técnica de enumeración basada en el comportamiento temporal o de carga de un navegador web cuando localiza recursos, puede ser utilizada en la actualidad con gran provecho. Especialmente reseñable es su funcionamiento en cualquier navegador actual en su última versión y la posibilidad de utilizar el propio navegador web como si de una herramienta más de pentesting se tratará, identificando recursos internos y facilitando la explotación de vulnerabilidades, como puede deducirse evitando medidas de seguridad perimetral clásicas.
Hoy, el único remedio contra estos ataques es buscar mitigaciones en la configuración de los navegadores web (por defecto deshabilitadas), limitando la ejecución de código JavaScript/AJAX o definiendo políticas que limiten la acción de contenido cargado desde Internet.
* Enumeración y explotación de recursos internos mediante Javascript/AJAX (I)
Cloud Híbrida
Ciberseguridad & NaaS
AI & Data
IoT y Conectividad
Business Applications
Intelligent Workplace
Consultoría y Servicios Profesionales
Pequeña y Mediana Empresa
Sanidad y Social
Industria
Retail
Turismo y Ocio
Transporte y Logística
Energía y Utilities
Banca y Finanzas
Deporte
Ciudades Inteligentes


