BlogWonderHowTo

Cómo hackear bases de datos: extracción de datos de bases de datos en línea usando Sqlmap

¡Bienvenidos de nuevo, mis hackers novatos!

En un tutorial anterior sobre piratería de bases de datos, le mostré cómo encontrar bases de datos en línea y luego cómo enumerar las bases de datos, tablas y columnas. En esta guía, ahora exfiltraremos, extraeremos, eliminaremos (cualquier término que prefiera) los datos de una base de datos en línea.

Como MySQL, la base de datos de código abierto ahora propiedad de Oracle, es probablemente la base de datos de back-end de sitios web en línea más utilizada, la usaremos como ejemplo. Se pueden utilizar técnicas similares para SQL Server, Oracle, DB2, Postgresql, etc. de Microsoft.

Hackear bases de datos con Sqlmap

Usaremos sqlmap, una vez más, que es una herramienta versátil y poderosa para piratear bases de datos. Se ha utilizado en una serie de ataques exitosos y muy publicitados por miembros de Anonymous y otros piratas informáticos contra bases de datos basadas en la web.

Cualquier hacker que se respete a sí mismo (y para el caso, que se odie a sí mismo) debe estar familiarizado con sqlmap. Como tal, quiero dedicar algunos tutoriales a mostrarles su poder y capacidades. Aquí nos centraremos en la exfiltración, pero puede hacer mucho más.

Extrayendo datos con Sqlmap

En este tutorial, trabajaremos en cómo extraer los datos después de encontrar la base de datos y enumerarla. Dado que los datos en el servidor de la base de datos son el “Vellocino de oro” del pirata informático, la capacidad de encontrarlos y extraerlos es una de las habilidades más críticas para un pirata informático eficaz.

Paso 1: Inicie Sqlmap en BackTrack

Abramos sqlmap en BackTrack y miremos la pantalla de ayuda escribiendo:

Si necesita ayuda para encontrar sqlmap, consulte mi tutorial anterior.

Como podemos ver, las capacidades y opciones para usar sqlmap son numerosas.

En mi tutorial anterior, habíamos usado una URL para apuntar a la base de datos usando el interruptor -u (como ./sqlmap.py -u “http://www.someURL.com), pero observe que en la captura de pantalla anterior tenemos la opción de hacer mucho más.

Podemos usar una conexión directa (-d), el archivo de registro (-l), un archivo masivo (-m), solicitudes HTTP (-r), usar googledorks (-g) o usar un archivo .ini de configuración (-c) . Por ahora, continuaremos usando la opción URL, o la opción -u, en nuestro ataque aquí, pero exploraremos las otras opciones de ataque en guías futuras.

Si nos desplazamos un poco hacia abajo en la pantalla de ayuda, veremos otra sección llamada “Enumeración”. Estas son las opciones disponibles para enumerar varios objetos en la base de datos de destino. En nuestro ejemplo anterior, habíamos enumerado; primero, las bases de datos (-dbs); luego, las tablas (–tables); y finalmente, las columnas (–columns).

Sin embargo, tenga en cuenta que también podemos enumerar los usuarios y los hashes de contraseñas, entre muchos otros objetos de la base de datos.

Paso 2: enumere los usuarios de la base de datos

Echemos un vistazo a la enumeración de los usuarios de la base de datos. Si podemos obtenerlos, es posible que podamos conectarnos directamente a la base de datos (aquí estamos usando una vulnerabilidad en la aplicación web) incluso si el administrador de la base de datos nota y repara esta vulnerabilidad de seguridad en el sitio web. Simplemente escribimos:

Ahora, ejecute este comando para obtener una lista de usuarios.

Como puede ver en la captura de pantalla anterior, sqlmap nos dijo que el DBMS es MySQL, la tecnología de la aplicación web es PHP 5.3.3, el servidor web es Apache y, finalmente, donde resalté, pudo enumerar un usuario ‘scanme’ @ ‘%’.

En la sintaxis de MySQL, esto significa que el nombre del usuario es “scanme” y pueden iniciar sesión desde (@) el siguiente host o IP. En este caso, el usuario “scanme” puede iniciar sesión desde cualquier host o IP, ya que el administrador de la base de datos ha utilizado el comodín “%” que significa “cualquiera o ninguno”.

Si el administrador de la base de datos hubiera utilizado una dirección IP aquí, como ‘scanme@192.168.1.100’, el usuario “scanme” solo podría iniciar sesión desde esa dirección IP. En este caso, scanme puede iniciar sesión desde cualquier IP, lo que nos facilita mucho piratear la base de datos en el futuro utilizando la cuenta de scanme, ya que permitirá que scanme inicie sesión desde cualquier dirección IP. Entonces, podemos usar las credenciales de scanme desde cualquier dirección IP e ingresar a la base de datos “legítimamente”.

Paso 3: enumerar tablas y columnas

Como estoy seguro de que recordará de mi tutorial anterior de sqlmap, pudimos enumerar las bases de datos, las tablas y las columnas del sitio web. http://webscantest.com, como vemos a continuación.

Cuando enumeramos las columnas en la tabla de pedidos, pudimos ver que esta tabla incluye información MUY valiosa, lo más importante, los números de tarjetas de crédito utilizados para los pedidos en ese sitio web. Es esa información la que queremos extraer a nuestro sistema.

Paso 4: Extraiga los datos

Si miras hacia atrás en mi guía anterior de MySQL, verás que te mostré cómo hacer una copia de seguridad de los datos de una base de datos MySQL usando el comando sqldump. Esta es una de las muchas formas en que un administrador de base de datos puede hacer una copia de seguridad de los datos en MySQL. Lo que haremos aquí es esencialmente lo mismo, pero aquí usaremos la herramienta sqlmap para producir casi el mismo resultado.

Las partes críticas aquí son; (1) use la palabra clave –dump; (2) luego defina la base de datos (-D); y (3) defina la tabla (-T) de la que queremos extraer los datos con una declaración como esta:

Cuando ejecutamos este comando, obtenemos resultados como el siguiente, donde los datos de la base de datos escanean la tabla pedidos se ha “volcado” a un archivo de valores separados por comas (CSV) y se ha almacenado en:

Por supuesto, la ubicación del archivo dependerá del nombre del sitio web, el nombre de la base de datos y el nombre de la tabla.

Ahora que tenemos los números de las tarjetas de crédito, hemos logrado lo que Jason nunca pudo, ¡tenemos el “Vellocino de Oro”!

Estén atentos para más aventuras en piratería de bases de datos aquí en Null Byte para más guías en el futuro.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar