Mostrando entradas con la etiqueta sqlmap. Mostrar todas las entradas
Mostrando entradas con la etiqueta sqlmap. Mostrar todas las entradas

13 mayo 2014

Cheatsheet para SQLMap

¡Nos hacemos mayores! Ayer mismo cumplíamos ya los 6 añitos. Bueno, 6 años no es nada. ¡Aún nos quedan muchos para seguir dando caña!

Nos encantaría celebrarlo con vosotros e invitaros a todos a una gran fiesta con una tarta tan apetecible como la de la foto, una piñata y unos cuanto 0days de regalo. Desgraciadamente no podemos permitírnoslo y tendréis que conformaros con un chuletón sin patatas.

En este caso es para LA herramienta sqlmap, un proyecto muy maduro y realmente bueno, tanto en la detección como en la explotación de vulnerabilidades SQ y pese a que es sencilla de usar, tiene bastantes parámetros. Una guía rápida que tener a mano seguro que nos viene bien.

He colgado el PDF en github, y os dejo por aquí las dos páginas de las que se compone, para el que quiera pegarle un vistazo antes de decidir si se la descarga.

Página 1 de la cheat sheet de SqlMap

Página 2 de la cheat sheet de SqlMap

¡Feliz cumpleaños familia SBD!


Leer más...

12 septiembre 2012

SQLMap, algo más que Dump



SQLMap es una herramienta muy completa y flexible. Fue creada por Bernardo Damele Assumpcao Guimaraes y Miroslav Stampar. Se caracteriza por permitir la realización de ataques de SQL Injection automatizados contra un sitio web vulnerable y, debido a su gran variedad de opciones, se podrá personalizar las técnicas usadas dependiendo del objetivo. 

SQLMap agrupa sus comandos por categorías, denominadas de la siguiente forma: Target, Request, Optimization, Injection, Detection, Techniques, Fingerprint, Enumeration, Brute force, User-defined function injection, File system access, Operating system access, Windows registry access, General y Miscellaneous. Todas estas categorías se encuentran detalladas en el manual de esta herramienta, que esta disponible en el siguiente enlace sqlmap.sourceforge.net/doc/README.pdf.

A pesar de las múltiples funciones que trae consigo SQLMap, el comando mas usado y conocido por muchos es dump, con el cual se podrá bajar o dumpear la base de datos. En esta ocasión haré caso omiso de dump, y "jugaré" con otras opciones que también me parecen interesantes; sin embargo, no hablaré de todas, puesto que no pretendo realizar un manual. Mirando el --help de esta herramienta podremos encontrar todos los comandos que nos permitirán personalizar las técnicas usadas dependiendo de la aplicación en que nos encontremos.

Tomaré como ejemplo un sitio vulnerable a SQL Injection para la realización de esta practica. Con el fin de proteger la identidad y los datos sensibles que puedan ser expuestos, algunas imágenes y consultas han sido modificadas.

Teniendo ya mi sitio con una variable vulnerable a SQL Injection, lo primero que se me vino a la mente fue saber con qué usuario se están realizando las peticiones, para ello uso el  parámetro --Current-user y armo mi consulta de la siguiente forma:



Como respuesta, el servidor trae el nombre del usuario como se presenta en la siguiente imagen:





Ya identificado el usuario, quiero saber si este es el administrador de la base de datos, para lo cual use --is-dba. Y si quiero saber a qué base de datos se está conectando usaré: --Current-db





La consulta anterior nos dice que no es el dba.




Ahora se necesita saber qué privilegios posee el usuario que realiza dicha consulta dentro del servidor, para así poder enfocar mejor nuestro vector de ataque. El comando a usar para la enumeración de los privilegios es --privileges






Se encontraron varios "administradores", pero con distintos privilegios. A continuación presento solo el resultado de nuestro usuario:




Como se observa en la imagen anterior, se poseen muchos privilegios; ahora sí todo depende de la imaginación y del objetivo del atacante.

Al momento de identificar si el sitio era vulnerable o no a la técnica de SQL Injection, se generaron errores en la aplicación y gracias a que hay un mal manejo de ellos se pudo obtener la ruta raíz del servidor (Full path disclosure). Ésta será de ayuda más adelante para la lectura y escritura de algunas páginas, siempre y cuando el usuario de la consulta tenga los permisos suficientes en el servidor web.

Para realizar la lectura de ficheros se usa el comando --file-read acompañado de la ruta en que se encuentra este, para este caso "/etc/passwd"





Como respuesta, SQLMap lo descarga y lo guarda en la carpeta files.





Además, esta herramienta permite la lectura del código fuente de las páginas de la aplicación que se le especifique. Para este ejemplo, el objetivo era conseguir los datos de conexión de la base de datos. Para ello, le pedí a SQLMap leer la pagina de inicio, index.php






En el código fuente extraído, se muestra que hay una pagina que está incluyendo, conn.php. Posiblemente ésta nos brinde más información.





Leyendo conn.php





Y ésta nos da más datos, esta vez la ruta donde se encuentra la información que se está buscando.




Leyendo Ruta/local_db.inc






y como respuesta tenemos los datos de conexión de la base de datos:



Y si lo que se quiere es tener una shell sql, con el siguiente comando --sql-shell se puede obtener de la siguiente forma:






Como respuesta nos da una shell sql en donde se podrá realizar consultas, como se muestra a continuación:





En caso de poseer los suficientes privilegios, se podrá ejecutar comandos en el sistema operativo, entre otra multitud de acciones. Para no hacer muy extenso este post solo usaré el comando --os-shell, que nos permitirá conseguir una shell en el servidor.






Después de ejecutar la sentencia anterior, SQLMap nos arrojará información sobre el sistema operativo en el que corre la aplicación y pedirá que se le especifique el lenguaje de la misma y la ruta raíz del servidor.



Y finalmente, crea una página, en este caso en php, en el servidor con la ruta especificada con el siguiente código:





Esta página que se insertó en el servidor web nos permitirá subir cualquier archivo, en este caso una phpshell, para así tener control completo del sitio.





Estas son unas pocas muestras de la potencia y flexibilidad de las opciones no tan populares de esta fantástica herramienta. Es aconsejable investigar con mayor profundidad las posibilidades de SQLMap, ya que serán de gran utilidad en próximas auditorías.

Contribución cortesía de Karina Padilla Torres


Leer más...

30 junio 2012

Interfaz gráfica para SQLMap

SQLMap es una de las herramientas más completa y funcional para realizar ataques de tipo 'SQL Injection' que hay disponibles actualmente.

Además es una herramienta OpenSource que se actualiza con muchísima frecuencia y evoluciona a un ritmo de vértigo. 

El único y muy pequeño 'pero' que se le podía poner era la falta de una interfaz gráfica para la gente que prefiere no usar complejos comandos.

Parece que ya eso ha dejado de ser un handicap, dado que se ha publicado, por fin, una interfaz gráfica con una pinta estupenda.

El proyecto, llamado gui-for-sqlmap provee de la parte gráfica a SQLMap. 









Disponible tanto para Windows como para Linux

Leer más...