Cómo usar SQLMAP (Nivel principiante)


Usar SQLmap puede ser complicado cuando no estás familiarizado con él. Este tutorial de SQLmap tiene como objetivo presentar las funcionalidades más importantes de esta popular herramienta de inyección SQL de una manera rápida y sencilla. Antes de usar SQLmap, primero debe obtener la versión más reciente de la herramienta e instalar un intérprete de Python. La mayoría de las distribuciones de Linux tienen Python instalado por defecto. Si no es el caso o si no está utilizando Linux, deberá descargar e instalar Python. Finalmente, necesitarás un sitio web vulnerable para probar. En este tutorial estamos utilizando nuestro entorno de simulación (alojado en la máquina local y disponible en el puerto 8888).
SQLmap es una herramienta de prueba de penetración de código abierto que automatiza el proceso de detección y explotación de fallas de inyección de SQL y toma el control de los servidores de bases de datos. Viene con un potente motor de detección, muchas características de nicho para el último comprobador de penetración y una amplia gama de conmutadores que duran desde la toma de huellas dactilares hasta la obtención de datos de la base de datos, el acceso al sistema de archivos subyacentes y la ejecución de los comandos en el sistema operativo y conexiones de banda.
¿CÓMO PUEDES UTILIZARLO?
Primero, tendrá que descargarlo, si aún no está instalado y configurado. Puede visitar el sitio web oficial de SQLmap para consultar la última versión y descargarla:.
Una cosa a tener en cuenta es que SQLmap es una herramienta basada en Python, esto significa que generalmente se ejecutará en cualquier sistema con Python; sin embargo, nos gusta Linux y específicamente Ubuntu, simplemente hace que sea fácil hacer las cosas. Python viene ya instalado en Ubuntu. Para comenzar con SQLmap, es una cuestión de descargar la herramienta, desempaquetarla y ejecutar el comando con las opciones necesarias.
Si está ejecutando Microsoft Windows como su sistema operativo principal, probablemente le resulte más conveniente y simple ejecutar una instalación de Ubuntu Linux (o Kali Linux) en una máquina virtual. Luego puede jugar con SQLmap, Nmap, Nikto y Openvas junto con otras cien potentes herramientas de seguridad de código abierto. Si desea realizar un escaneo remoto como el proporcionado por Hackertarget.com, puede pagar un VPS de menor costo basado en Ubuntu de uno de los cientos de proveedores, Linode es ideal para esto, ya que ofrece sistemas sólidos y de alta calidad por buen precio.
CARACTERISTICAS
  • Soporte completo para sistemas de administración de bases de datos MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB, HSQLDB y Informix.
  • Soporte completo para seis técnicas de inyección SQL: boolean-based blind, time-based blind, error-based, UNION query-based, stacked queries and out-of-band.
  • Soporte para conectarse directamente a la base de datos sin pasar por una inyección SQL, proporcionando credenciales DBMS, dirección IP, puerto y nombre de la base de datos.
  • Soporte para enumerar usuarios, password hashes, privilegios, roles, bases de datos, tablas y columnas.
  • Reconocimiento automatico de los formatos password hash y soporte para descifrarlos usando un dictionary-based attack.
  • Soporte para vaciar completamente las tablas de la base de datos, un rango de entradas y opciones específicas según la elección del usuario. El usuario también puede elegir un solo rango de caracteres desde la entrada de cada columna.
  • Soporte para buscar nombres de bases de datos específicos, tablas específicas en todas las bases de datos o columnas específicas en todas las tablas de las bases de datos. Esto es útil, por ejemplo, para identificar tablas que contienen credenciales de aplicaciones personalizadas donde los nombres de columnas relevantes contienen cadenas como nombre y pass.
  • Soporte para descargar y cargar cualquier archivo del sistema de archivos subyacente del servidor de base de datos cuando el software de base de datos es MySQL, PostgreSQL o Microsoft SQL Server.
  • Soporte para ejecutar comandos arbitrarios y recuperar su salida estándar en el sistema operativo subyacente del servidor de bases de datos cuando el software de base de datos es MySQL, PostgreSQL o Microsoft SQL Server.
  • Soporte para establecer una conexión TCP con estado out-of-band entre la máquina atacante y el sistema operativo subyacente del servidor de base de datos. Este canal puede ser un símbolo del sistema interactivo, una sesión de Meterpreter o una sesión de interfaz gráfica de usuario (VNC) según la elección del usuario.
  • Soporte para el escalamiento de privilegios de usuario del proceso de base de datos a través del comando Meterpreter getsystem de Metasploit.
Fuente: sqlmap.org
DESCARGAR SQLMAP
Paso 1: obtener un sistema operativo basado en Linux
Si vas a ejecutar SQLmap en Windows con Python, asegúrate de tener instalado Python y saltar al próximo paso, de lo contrario, enciende tu sistema Linux. Instale una máquina virtual Linux (se recomienda Ubuntu o Kali) en Windows (Virtualbox/VMware/Parrallels) o inicie su escritorio Linux.
Paso 2: Instalación de SQLmap
Python está preinstalado en Ubuntu, por lo que todo lo que necesita hacer es descargar SQLmap desde Sourceforge, descomprimirlo en un directorio y comenzar su prueba.
De lo contrario, si ya tiene instalado git, puede obtener la última copia con el siguiente comando. También puede descargar directamente el último ZIP del sitio web oficial de SQLmap.
$ git clone --depth 1 https://github.com/SQLmapproject/SQLmap.git sqlmap
Cloning into 'sqlmap'...
remote: Counting objects: 633, done.
remote: Compressing objects: 100% (602/602), done.
remote: Total 633 (delta 170), reused 171 (delta 20), pack-reused 0
Receiving objects: 100% (633/633), 7.17 MiB | 2.44 MiB/s, done.
Resolving deltas: 100% (170/170), done.
Vaya al directorio “sqlmap” y ejecute el script python para asegurarse de que todo se vea bien.
cd sqlmap
$ python SQLmap.py
Si no ve algo como el resultado anterior, asegúrese de que python esté funcionando (intente python -V) para verificar la versión y si se encuentra en la ubicación correcta. Ahora sigamos adelante, esta fue la parte fácil.
Para obtener una lista completa de las opciones disponibles, ejecuta python sqlmap.py -h.
EJECUTANDO SQLMAP
Prueba basada en HTTP GET simple
En esta prueba simple usaremos una solicitud basada en HTTP GET estándar contra un URI con un parámetro (?Id =5). Esto probará diferentes métodos de inyección SQL contra el parámetro id.
$ python SQLmap.py -u 'http://mytestsite.com/page.php?id=5'
En los resultados podemos ver los diferentes métodos usados contra el parámetro.
Recuperar las tablas de la base de datos
SQLmap puede usarse no solo para probar sino también para explotar la Inyección SQL, haciendo cosas tales como extraer datos de bases de datos, actualizar tablas e incluso abrir shells en hosts remotos si todos los ducks están en línea.
Vamos a recuperar las tablas de la base de datos utilizando la vulnerabilidad de Inyección SQL que hemos confirmado anteriormente. Como verá en el resultado a continuación, podemos continuar probando contra el objetivo sin tener que volver a probar la vulnerabilidad. SQLmap usa información que conoce sobre el sitio para explotar aún más la base de datos de destino. Para recuperar datos simplemente agregamos un parámetro al comando anterior. Al agregar –tables, podemos intentar recuperar todas las tablas.
$ python SQLmap.py -u 'http://mytestsite.com/page.php?id=5' --tables
Vaciar los datos
Para obtener datos, simplemente ampliamos nuestro comando. Agregar usuarios -T se enfocará en la tabla de usuarios donde podríamos obtener algunas credenciales. Añadiendo –dump le dirá a SQLmap que tome todos los datos de la tabla de usuarios, primero las columnas serán enumeradas y luego los datos serán arrojados de las columnas.
$ python SQLmap.py -u 'http://mytestsite.com/page.php?id=5' --columns -D DATABASE-NAME -T TABLE-NAME --dump
CONSEJOS SQLMAP
Salida Detallada
Cuando se prueba la inyección de SQL, a menudo es necesario profundizar en las solicitudes para determinar problemas con la prueba o para confirmar o incluso explotar una inyección descubierta. Ser capaz de aumentar la verbosidad de su salida de SQLmap ayudará con esta prueba.
Al aumentar la verbosidad a 4, puede obtener las solicitudes HTTP, con 5 también verá los encabezados de respuesta HTTP y 6 mostrará la respuesta HTTP completa. Obviamente, esto puede ser muy ruidoso, pero a veces es necesario ver lo que está sucediendo.
Credenciales de Base de Datos
Este práctico consejo le permite conectarse a la base de datos directamente y vaciar datos tales como usuarios, bases de datos o tablas. Lo bueno de esto es que no tiene que recordar la sintaxis de SQL para la base de datos o tener un cliente instalado. SQLmap hará el trabajo pesado actuando como un cliente de base de datos para vaciar datos.
Cadenas de conexión DB
MySQL, Oracle, Microsoft SQL Server, PostgreSQL.
SQLite, Microsoft Access
Estallar Shells y mas
SQLmap tiene una gran cantidad de opciones, y es una herramienta increíble. Además de mostrar shells en el host de destino, puede enviar solicitudes a través de Tor, buscar inyecciones en respuestas de páginas automáticamente, sitios web de arañas y, por supuesto, realizar pruebas basadas en HTTP POST. Estos ejemplos simplemente tocan la superficie. Hay más ejemplos disponibles en la excelente página wiki de github.
Fuente: hackertarget.comNo olvides Compartir...Siguenos en twitter: @disoftin

Publicar un comentario

0 Comentarios