Cuando se trata de hacer un ataque a los servidores internos de una empresa siempre hay que buscar un punto de apoyo en el que apuntalar el ataque. Hace tiempo, antes de que Apple arreglara en iOS 6 las opciones de seguridad por defecto en la carga de las imágenes en los correos electrónicos que se visualizaban en el cliente iOS Mail, escribí un artículo sobre cómo aprovechar esto para hacer ataques de SQL Injection a la web de la empresa usando al jefe o hacer ataques de CSRF, y después salió alguna prueba de concepto que hacía algo similar con un CSRF usando passwords por defecto y debilidades en alertas de navegadores. Pequeñas debilidades que sumadas dan owned!.
Figura 1: Cómo robar la base de datos de la empresa usando a un empleado de la organización |
En este caso, para el Security Innovation Day 2014 en Eleven Paths preparamos un ataque similar, pero usando un fichero Excel, una macro VBA (Visual Basic for Applications) y una cadena de conexión con autenticación del lado del servidor. Os lo explico.
La idea era demostrar como un atacante podría utilizar pequeñas debilidades en una empresa para conseguir robar una base de datos completa SQL Server sin ni tan siquiera hacer mucho ruido. Para ello, el primer paso es sencillo, un correo dirigido con una buena excusa, y adjuntar en él un fichero Excel.
Si es un jefe, seguro que se te ocurren mil y una excusas para enviar un correo electrónico con un Excel adjunto. Así que usa tu imaginación en esta parte del proceso. Nosotros no le dimos demasiada importancia a esto, pero si encima el target tiene una configuración relajada del registro SPF podrás incluso suplantar a algún empleado interno de la empresa con facilidad.
Figura 4: El fichero se guarda en el equipo local con un Drag & Drop para evitar la alerta de zona de Internet |
Una vez que el fichero adjunto se abra se mostrará una alerta indicando que hay algún contenido que ha sido deshabilitado, para conseguir engañar al usuario, de nuevo, puedes hacer uso de algún truco de ingeniería social. En este caso el truco es que se está cargando una imagen externa.
Figura 5: Falta una imagen porque no has aceptado la alerta de seguridad |
Si el jefe activa el contenido, lo que realmente sucede es que se carga una macro VBA que realiza todo el trabajo. Para la demo hicimos una cadena de conexión con Autenticación Integrada, al igual que realizábamos en los ataques de Connection String Parameter Pollution. Para que el usuario se quede tranquilo, nosotros le mostramos la imagen como si fuera lo único que hubiera pasado en su equipo.
Figura 6: Ahora aparece la imagen en el fichero Excel |
Como para la demo sabíamos el nombre del servidor SQL Server, la forma en la que se hace la cadena de conexión es muy sencilla, pero se podría haber realizado un escaneo de toda la red al estilo de Scanner CSPP que creamos, probando a conectarse a todo el rango de direcciones IP de la red.
Figura 7: La macro que se conecta al Servidor SQL Server con Autenticación Integrada, roba los datos y los manda al C&C |
Cuando encuentre el servidor SQL Server y se pueda autenticar en él con las credenciales que la víctima haya utilizado para abrir su sistema operativo Windows, entonces se podría hacer un recorrido completo por el diccionario de datos y traer absolutamente todo. Para este ejemplo, tiramos una consulta contra una tabla de la base de datos y listo, eso sí, usando el For XML al estilo de los ataques de Serialized SQL Injection.
Figura 8: Datos reportados al C&C |
El último paso es fácil, reportar todo a un panel de control en la web de la forma más silenciosa o sencilla. Para esta demo no quisimos complicarlo y se enviaba como parámetro GET de una petición, lo que permitía recoger la info que había en la base de datos.
Al final era un pequeño ejemplo de cómo la suma de pequeñas debilidades, como fugas de información de versiones utilizadas, nombres de personas de la organización, reglas relajadas en los filtros anti-spoofing SPF, políticas de seguridad de la aplicación Excel o el uso de Autenticación Integrada en SQL Server, podrían llevar a un atacante a tener éxito en el robo de datos de tu organización de forma sencilla.
Figura 10: Bosses Love Excel, Hackers Too!
Por supuesto, este fichero Excel cocinado a medida para este ejemplo no es detectado por ningún motor antimalware como algo malicioso o sospechoso. Solo es un Excel, y como dijimos Juan Garrido y yo en la charla de Defcon 19 donde explicábamos la cantidad de cosas que se pueden hacer con él, "Bosses love Excel, Hackers Too!".
Saludos Malignos!
Gracias Chema como siempre; sorprende la cantidad de empresas que aún a fecha de hoy, no tienen o sin incapaces de entender, la de problemas que podríamos evitar entre todos con un simple registro SPF bien publicado,
ResponderEliminar¿es que acaso las empresas no saben qué servidores de correo mandan sus e-mails? Es bochornoso...
Un saludo
Una duda, igual que Apple tiene delito en tener el SPf como lo tiene, ¿el de la propia telefónica no debería ya también cambiarse en lugar de dejarlo en softfail?
ResponderEliminar"v=spf1 a mx include:cmail1.com ?all"
¿No hay algún medio/mecanismo oficial para alertar de este peligro?.
Gracias!
Excelente información. Sería genial que os enseñaras cómo protegernos y aprender a identificar amenazas como éstas.
ResponderEliminarSaludos {}
De donde puedo descargar el fichero exel?
ResponderEliminarExcelente entrada, pero me quedo con: Spanish is better!! jajaja
ResponderEliminarSaludos!
Excelente chema, hmm pero queriendo profundizar el escaneo de toda la red con SCANNER CSPP herramienta que me lo baje de informatica64 no me muestra las cajas de texto solo los labels. Ejemplo:
ResponderEliminarExecute Query
tiene controles labels como:
* connection string:
* selected query:
empero no muestra las cajas te texto.
PD. Estoy usando INTERNET EXPLORER en su version de 11.0