Informe De Proyecto - SQLMap PDF

Title Informe De Proyecto - SQLMap
Course Seguridad Informatica
Institution Universidad Nacional Autónoma de Honduras
Pages 11
File Size 451.1 KB
File Type PDF
Total Downloads 74
Total Views 138

Summary

Informe De Proyecto - SQLMap...


Description

Universidad Nacional Autónoma De Honduras Facultad De Ingeniería Carrera De Ingeniería En Sistemas Asignatura: IS811 | Seguridad Informática Profesor: Ing. Julio Cesar Sandoval Sección: 1700

Informe de proyecto INYECCIÓN SQL CON SQLMAP EN KALI-LINUX Integrante: Allan Fabricio Barahona Andrés Gabriel Espinal Hernández José Javier Vásquez Ramos Kevin Ariel Mejía Deras Salma Alejandra López Escober

Número De Cuenta: 20111003322 20121016226 20111003125 20111012665 20111002869

Fecha De Entrega: 12/Marzo/2017

1

Índice

Introducción

Pág 3

Objetivos

Pág 4

Justificación

Pág 4

Marco Teórico

Conclusiones/Recomendaciones

Pág 5-8

Pág 9

Anexos

Pág 10

Bibliografia

Pág 11

2

Introducción

Hoy en día los sistemas de información están expuestos a una gran cantidad de amenazas contra su seguridad. Una de estas amenazas es la Inyección SQL; que es un método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar consultas a una base de datos. El origen de la vulnerabilidad radica en el incorrecto chequeo y/o filtrado de las variables utilizadas en un programa que contiene, o bien genera, código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o script que esté embebido dentro de otro. Se conoce como Inyección SQL, indistintamente, al tipo de vulnerabilidad, al método de infiltración, al hecho de incrustar código SQL intruso y a la porción de código incrustado. La finalidad del proyecto es demostrar que basado en la vulnerabilidad de una página podremos obtener información de su base de datos, como ser nombre de tablas y campos utilizando SQLMap que es una herramienta desarrollada en python. SQLMap se encarga de realizar peticiones a los parámetros de una URL que se le indiquen, ya sea mediante una petición GET, POST, en las cookies.

3

Objetivos

Objetivos Generales

Objetivos Específicos



Conocer las vulnerabilidades de las bases de datos donde no se tiene la suficiente precaución en la estructura general de redes y diseño, siendo así un blanco fácil para el robo de información

 

Mostrar lo fácil que es detectar si una base es fiable o no Ver la importancia del uso de medidas de seguridad en la creación de bases de datos y redes Poner en evidencia que el bien de la información sin precautorio es equivalente a perder miles de dolares Mostrar la importancia de que los gestores sean protegidos con las debidas medidas

 

Justificación El proyecto abierto de seguridad en aplicaciones Web (OWASP por sus siglas en inglés) coloca en su top 10 a SQLInjection como número uno en ataques en la web; ¿Realmente es tan fácil atacar por este medio?, ¿Por qué un sitio web puede ser tan vulnerable a un ataque de inyección? En la actualidad las pequeñas empresas y grandes corporaciones han dejado las aplicaciones de escritorio para procesos internos, pero para aumentar su mercado y ver a otros horizontes han apostado al desarrollo de sistemas web, esto implica que los sitios web poseen cada vez información que involucra directamente al usuario, por lo tanto, la seguridad es sumamente esencial para proteger toda información sensible que cualquier atacante lucharía por tener. De toda técnica maliciosa SQLInjection es la más común, dado a este hecho realizaremos una demostración para comprarlo, utilizando SQLMap un programa instalado predeterminadamente en KaliLinux.

4

Marco Teórico

El proyecto OWASP (Open Web Application Security Project) es una organización sin fines de lucro cuyo propósito es informar acerca de cómo mejorar la seguridad del software. Esta organización realiza un top 10 de las vulnerabilidades más importantes a las cuales están expuestos los sistemas, identificando sus principales vectores de ataque y haciendo énfasis en las mejores prácticas para evitar o mitigar sus efectos negativos. Actualmente el Top 10 vigente es el que fue liberado por OWASP en el 2013 (Igualmente aplicable para el año actual, según lo indica en su sitio web), y actualmente se encuentran trabajando en una versión renovada del documento. Resulta interesante que, dentro de las 10 vulnerabilidades más importantes, la Inyección SQL ha ocupado el primer lugar en esta categorización en dos años consecutivos (Top 10 2010 y Top 10 2013) como puede observarse en Fig. 1.

Fig. 1 Top 10 de OWASP para los años 2010 y 2013 (Vigente para el año presente, 2017)

5

La Inyección, tal y como la define OWASP ocurre cuando código SQL, OS o LDAP es inyectado desde un origen no confiable en un intérprete como parte de un comando o consulta. El atacante puede engañar al compilador de modo que este ejecute comandos para realizar acciones malintencionadas u obtener acceso a los datos sin la autorización correspondiente. El atacante realiza ataques de texto simple para explotar la capacidad del intérprete de analizar sintaxis.

Las fallas de inyección son fáciles de descubrir cuando se examina el código, pero frecuentemente es difícil identificarlas mediante pruebas. Estas fallas se encuentran comúnmente en consultas SQL, LDAP, XPath, NoSQL, parsers XML, encabezados SMTP, comandos de sistema operativo, entre otros. El impacto negativo que una inyección SQL puede provocar en una organización es severo; ya que el atacante puede provocar pérdida o corrupción de datos, denegación de acceso, acceder a datos sensibles sin autorización o incluso obtener control absoluto sobre un equipo; todo esto puede resultar en un alto costo para la organización. En nuestro caso, estudiaremos un tipo de inyección muy específico: Inyección SQL, por lo cual de ahora en adelante nos enfocaremos en este tema. La inyección SQL ocurre cuando el atacante ingresa comandos malintencionados en los controles de entrada con el propósito de realizar acciones no autorizadas sobre un sistema de bases de datos. Para evitar la inyección SQL es de fundamental importancia sanear las entradas; los datos ingresados en cajas de texto y otros controles son los principales vectores de ataque. Para ello podemos utilizar mecanismos como ser las expresiones regulares o bloqueos de diccionarios. Además, debe evitarse el uso de SQL dinámico, por ejemplo; ya que a través de la entrada de datos pueden emplearse literales que engañen al intérprete de comandos de modo que este ejecute acciones no deseadas. Muchos lenguajes de programación hoy en día permiten parametrizar la entrada a consultas para evitar que comandos maliciosos ingresados por los usuarios en los controles lleguen a ser ejecutados por el intérprete. Si bien podemos realizar inyección SQL ingresando caracteres que invaliden la cadena SQL original y construyendo una nueva cadena con el código malicioso, ya existen herramientas automatizadas para este proceso. Entre estas herramientas destaca en nuestro caso una conocida como SQLMap presente por defecto en la distribución de Linux Kali Linux.

6

A continuación, una breve descripción del software empleado

Kali Linux Kali Linux es una distribución basada en Debian GNU/Linux diseñada principalmente para la auditoría y seguridad informática en general. Fue fundada y es mantenida por Offensive Security Ltd. Mati Aharoni y Devon Kearns, ambos pertenecientes al equipo de Offensive Security, desarrollaron la distribución a partir de la reescritura de BackTrack, que se podría denominar como la antecesora de Kali Linux. Kali Linux trae preinstalados más de 600 programas incluyendo Nmap (un escáner de puertos), Wireshark (un sniffer), John the Ripper (un crackeador de passwords) y la suite Aircrack-ng (software para pruebas de seguridad en redes inalámbricas). Kali puede ser usado desde un Live CD, live-usb y también puede ser instalada como sistema operativo principal. Kali es desarrollado en un entorno seguro; el equipo de Kali está compuesto por un grupo pequeño de personas de confianza quienes son los que tienen permitido modificar paquetes e interactuar con los repositorios oficiales. Todos los paquetes de Kali están firmados por cada desarrollador que lo compiló y publicó. A su vez, los encargados de mantener los repositorios también firman posteriormente los paquetes utilizando GNU Privacy Guard.

SQLMap SQLmap es una herramienta desarrollada en python para realizar inyección de código sql automáticamente. Su objetivo es detectar y aprovechar las vulnerabilidades de inyección SQL en aplicaciones web. Una vez que se detecta una o más inyecciones SQL en el host de destino, el usuario puede elegir entre una variedad de opciones entre ellas, enumerar los usuarios, los hashes de contraseñas, los privilegios, las bases de datos, O todo el volcado de tablas / columnas específicas del DBMS, ejecutar su propio SQL SELECT, leer archivos específicos en el sistema de archivos y mucho más. La herramienta SQLMap viene instalada por defecto en Kali Linux.

Características 

Soporte completo para MySQL, Oracle, PostgreSQL y Microsoft SQL. Además de estos cuatro sistemas de gestión de bases de datos, sqlMap también puede identificar Microsoft Access, DB2, Informix, Sybase y Interbase. 7

Amplia base de datos de sistema de gestión de huellas dactilares basadas en inband error messages, analizar el banner, las funciones de salida de comparación y características específicas tales como MySQL comment injection. También es posible forzar a la base de datos de sistema de gestión de nombre si ya lo saben.  Soporte completo para 2 técnicas de SQL injection: blind SQL injection y inband SQL injection. 

Proceso de inyección SQL empleando SQLMap 1. Primero debemos instalar Kali Linux, que contiene la herramienta SQLMap para realizar inyección SQL (Para instalación de Kali Linux vea: Anexos). 2. Luego debemos identificar un sitio web vulnerable a SQL, para ello podemos asistirnos de algunas páginas donde se publican listados de páginas vulnerables a inyección (Para páginas vulnerables a inyección SQL vea: Anexos). 3. Una vez instalado correctamente Kali Linux abrimos una terminal de comandos y empezamos a ejecutar los siguientes comandos para realizar la inyección SQL en la página seleccionada (Si SQLMap indica que la inyección fallo busque otra página vulnerable, estas páginas suelen sufrir de ataques de denegación de servicio ya que son constantemente atacadas):  sqlmap –u URL: Prueba la URL brindada para ver si esta es vulnerable a inyección SQL. Brinda información acerca del gestor de base de datos utilizado.  sqlmap –u URL --dbs: Prueba la URL brindada para listar las bases de datos encontradas.  sqlmap –u URL –D BD –-tables: Prueba la URL brindada para listar las tablas presentes en la base de datos seleccionada (BD).  sqlmap –u URL –D BD –T TB –-columns: Prueba la URL brindada para listar las columnas presentes en la tabla (TB) y base de datos (DB) seleccionada.  sqlmap –u URL –D BD –T TB –-dump –-start=IN --stop=FN: Prueba la URL brindada consultar los datos contenidos desde el primer registro (IN) hasta el último registro (FN) de la tabla (TB) y base de datos (DB) seleccionada. (Para ver una demostración de este proceso vea: Anexos).

8

Conclusiones Si bien hay muchos sitios web que proporcionan listados de páginas vulnerables, puede tomarnos una considerable cantidad de tiempo encontrar una que página que funcione. Esto se debe a muchos factores: exceso de intentos de inyección equivalentes a una denegación de servicio (Por lo cual la página parece estar caída), implementación de protección por parte de los sitios web (En vista a que han sido catalogados como vulnerables), entre otros.  Es relativamente fácil rastrear quien intento realizar un ataque de inyección SQL a un sitio web.  Hoy en día las páginas web están expuestas a las inyecciones SQL que puede ocasionar la exposición de la información de la base de datos o la transmisión de contenido malicioso. Para esto un desarrollador web debe informarse de cómo evitar esos ataques y hacer el respectivo proceso de pruebas para validar que el sistema no cuenta con vulnerabilidades.  SQLInjection es realmente uno de los ataques más frecuentes utilizados por hackers para el robo de información. Debido a que no es necesario ser un experto para realizar este ataque y basta con tener conocimientos básicos del lenguaje SQL.



Recomendaciones No debemos desesperarnos si tardamos en encontrar un sitio web inyectable y disponible; si bien la inyección es una de las vulnerabilidades más difundidas en los sistemas de información los constantes ataques realizados a estas páginas provocan que estas estén usualmente fuera de servicio.  Si pretendemos realizar un ataque de inyección SQL, debemos procurar hacerlo con precaución ya que es relativamente fácil identificar el origen de un ataque de este tipo, y las consecuencias legales podrían ser graves.  Los usuarios que se utilicen para conectarse a la base de datos desde código deben tener los privilegios justos para realizar las acciones que necesiten. No utilizar nunca un usuario root (usuario por defecto) con acceso a todas las bases de datos ya que de esta forma estaremos dando facilidades a los hackers para que puedan acceder a toda la información.  Toda información que se desea almacenar en las bases datos, todos esos datos confidenciales deben ser transferidos por medio del método POST de los formularios, ya que no es visible por el usuario como al ser enviados por GET.



9

Anexos Recursos Obtención de Kali Linux e instalación Imágenes ISO del SO https://www.kali.org/downloads/  Instalación de Kali Linux http://docs.kali.org/category/installation



Listados de páginas vulnerables a inyección SQL  

http://www.allhackingtools.com/2015/02/SQL-VULNERABLE-websites-List.html https://toxicmask.blogspot.com/2016/06/fresh-list-of-sql-injection-vulnerable.html

Enlace a video del proyecto (Realizado por nosotros) 

https://www.youtube.com/watch?v=R4hdbsZfFd0

Imágenes

Distribución Kali-Linux

10

Herramienta SQLMap

Bibliografía Haciendo Inyecciones SQL Con SQLMap. (s.f.). Obtenido de https://stories.devacademy.la/haciendo-inyecciones-sql-con-sqlmap-parte13053bad29c0e#.xxeb8mcxf Kali. (s.f.). Obtenido de https://www.kali.org OWASP. (s.f.). Obtenido de https://www.owasp.org/index.php/Main_Page SQLMap Manual. (s.f.). Obtenido de https://github.com/sqlmapproject/sqlmap/wiki

11...


Similar Free PDFs