OBJETIVO. Manejo de comandos básicos de SQL. Creación de una base de datos en mysql. Uso de tablas InnoDB: integridad referencial, actualización y borrado. Gestión de transacciones. El sistema de privilegios mysql (1-conexión, 2-operaciones). Creación/eliminación de usuarios. Establecimiento/eliminación de permisos. Ataque por inyección de código SQL y Sniffing. METODOLOGÍA. Las sesiones son desarrolladas en forma teórica-practica, la estrategia de aprendizaje a utilizar será el aprendizaje colaborativo. El desarrollo de las actividades de aprendizaje está basado en el aprendizaje individual y colaborativo como una estrategia de aprendizaje y de trabajo de grupo que es usado en los cursos que se ofertan en el campus virtual de la UNAD, se requieren estas características para realizar un trabajo realmente efectivo. ACTIVIDADES A REALIZAR. PRIMERA PARTE: Instale MySql y realizar la practica con la información suministrada. A continuación se muestran las tablas que se deben crear para la BD universidad:
PERSONA UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD La estructura de las tablas es la siguiente: Campo Tipo dato Tamaño Otros DNI Texto-Varchar2 9 Primary Key Nombre Texto 25 Requerido - Not Null Apellido Texto 50 Requerido - Not Null Ciudad Texto 25 DireccionCalle Texto 50 DireccionNum Texto 3 Telefono Texto 9 FechaNacimiento Fecha/Hora Fecha corta Fecha corta Varon Texto 1 Check (Varon In ('0','1')) ASIGNATURA Campo Tipo dato Tamaño Otros IdAsignatura Texto 6 Primary Key Nombre Texto 50 Not Null Creditos Numérico Simple Check (Creditos In (4.5,6,7.8,9)) Cuatrimestre Texto 1 Check (Cuatrimestre In ('1','2')) CosteBasico Numérico Simple Number(3,2) IdProfesor Texto 4 References PROFESOR(IdProfesor) IdTitulacion Texto 6 References TITULACION(IdTitulacion) Curso Fecha/Hora Fecha corta Check (Curso In ('1','2','3','4')) ALUMNO Campo Tipo dato Tamaño Otros IdAlumno Texto 7 Primary Key DNI Texto 9 References PERSONA(DNI) PROFESOR Campo Tipo dato Tamaño Otros IdProfesor Texto 4 Primary Key DNI Texto 9 References PERSONA(DNI)
TITULACIÓN Campo Tipo dato Tamaño Otros IdTitulacion Texto 6 Primary Key Nombre Texto 20 Not Null - Unique UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ALUMNO_ASIGNATURA Campo Tipo dato Tamaño Otros IdAlumno Texto 7 References ALUMNO(IdAlumno) IdAsignatura Texto 6 References ASIGNATURA(IdAsignatura) NumeroMatricula Numérico Entero Not Null - Check(NumeroMatricula>=1 AND NumeroMatricula<=6) Crear la estructura de la Base de Datos anterior utilizando la consola mysql, usando el motor de Base de Datos InnoDB. Cargar las tablas con varios registros de datos a criterio del estudiante. Crear las tablas vacías con la misma estructura de las tablas de la base de datos universidad y realizar una copia de seguridad de la base de datos utilizando la herramienta mysqldump. Demostrar con un ejemplo que las tablas InnoDB implementan la integridad referencial, la actualización en cascada y el borrado en cascada. Demostrar con un ejemplo que las tablas InnoDB implementan control de transacciones. Crear un usuario llamado alumno que tenga acceso a las tablas PERSONA, ALUMNO, ASIGNATURA, ALUMNO_ASIGNATURA desde cualquier lugar. Crear un usuario llamado profesor que tenga permiso de lectura a toda la base de datos desde localhost. Crear un usuario llamado profesor_priv con los privilegios anteriores y los privilegios de inserción y borrado en la tabla persona. Crear un usuario llamado administrador que tenga todos los privilegios a todas las bases de datos de nuestro servidor mysql. Este administrador no tendrá la posibilidad de dar privilegios. Crear un usuario llamado superadmin con los privilegios anteriores y con posibilidad de dar privilegios. Crear un usuario llamado usr_ocasional con permiso para realizar una consulta a la BD universidad por hora. Cambiar la contraseña de root a 654321. Quitar los privilegios al usuario profesor_priv para actualizar la tabla persona. Eliminar todos los privilegios al usuario alumno. Actualizar los privilegios. Muestra los privilegios de usuario alumno.
Nota: En cada uno de los puntos se debe evidenciar en el informe el desarrollo de la práctica, suministrando de forma detallada cada uno de los comandos utilizados en el desarrollo de la actividad. Por ejemplo para crear una tabla se evidencia con los comandos así: CREATE TABLE `universidad` ( `idtitulo` VARCHAR( 6 ) PRIMARY KEY, `nombre` VARCHAR( 20 ) NOT NULL UNIQUE ) ENGINE = innodb; SEGUNDA PARTE: Ataque por inyección de código SQL. 1. Descargue e instale la máquina virtual Virtualbox. Para descargar la máquina virtual lo puede hacer desde la página https://www.virtualbox.org/wiki/downloads. Link de videos de como descargar e instalar Virtualbox: www.youtube.com/watch?v=orrixrwkc3y http://www.youtube.com/watch?v=vfyqm6gva3k http://carloszuluaga.wikidot.com/instalacion:virtualbox-windows-xp http://www.youtube.com/watch?v=nqir5_igvji http://www.youtube.com/watch?v=mfbzlouse2c 2. Descargue BadStore, para descargar Badstore lo puede hacer desde la página web http://www.badstore.net y presionamos donde dice DOWNLOAD THE DEMO (necesitaremos registrarnos para poder descargar). 3. Una vez instalada la máquina virtual se procede a la configuración. Al ejecutar Virtualbox se tendrá algo como se ve en la figura siguiente.
Para crear una nueva máquina virtual hacemos clic en el botón New. Hacer click sobre Siguiente hasta que nos pida nombre y tipo de SO. Hacer clic sobre Siguiente y le asignar la cantidad de memoria ram para la máquina virtual, se puede dejar el valor predeterminado, aunque para BadStore con 100MB es suficiente Hacer clic sobre Siguiente y elegir el disco duro (dejar como esta). Hacer clic sobre Siguiente y dejar esta opción como está. Hacer clic sobre Siguiente y elegir el tipo de almacenamiento.
Hacer clic en Siguiente y elegimos el tamaño para el disco, yo usare 70MB. Hacer clic sobre Siguiente y luego sobre crear. Ahora ir a Configuración. Y en Red, elegir adaptador de puente:
Y ya tenemos la máquina virtual configurada. Ahora la iniciaremos, saldrá el asistente para la primera ejecución, hacemos clic en Siguiente y a partir de acá ocurrirán dos cosas: Si tiene en CD el LiveCd, entonces deja esta opción como esta, inserta el CD y deja que botee. Si quieres trabajar con el iso seguiremos los siguientes pasos. En la interfaz actual hacer clic sobre el botón amarillo de la derecha. Ahora buscar y seleccionar la iso Hacer click en Siguiente y luego en Iniciar. Una vez aparezca esta pantalla, presionamos Enter y escribir el comando ifconfig Y copiar la dirección ip inet addr por ejemplo: 192.168.0.30.
Nota: Para 'sacar' el cursor de la máquina virtual debes presionar Ctrl Derecho Ahora en el navegador escribimos la dirección ip y ya se tiene BadStore lista para ser atacada 4. Descargue un programa para realizar ataque por inyección de código SQL se sugiere SQLMAP ( http://sqlmap.org/ ) o Nmap ( http://nmap.org/download.html ), para documentación sobre el manejo del software y del tema, existen infinidades de vídeos en Youtube que podrán ser de ayuda. http://www.youtube.com/watch?feature=player_embedded&v=_wwyuilkn8m http://paraisolinux.com/que-es-y-como-usar-nmap/ 5. Realizar un ataque a la base de datos de Badstore, con lo cual se debe obtener toda la información sobre la base de datos por ejemplo servidor de BD y Versión, Nombre de la base de datos, nombre de las tablas, información de las tablas, información de las columnas, etc. Nota: En el informe se debe evidenciar el desarrollo de la práctica, suministrando de forma detallada cada uno de los pasos y comandos utilizados en el desarrollo de la actividad. Por ejemplo para conocer el nombre de la base de datos se evidencia con los comandos así: C:\sqlmap-0.9\sqlmap>sqlmap.py -u http://pagina.vulnerable.com/listproducts.php?cat=1 --current-db
TERCERA PARTE: Ataque con inyección de código SQL a sitio web. Realizar un ataque a la base de datos del sitio http://testphp.vulnweb.com, con lo cual se debe obtener toda la información sobre la base de datos por ejemplo servidor de BD y Versión, Nombre de la base de datos, nombre de las tablas, información de las tablas, información de las columnas, etc. Nota: En el informe se debe evidenciar el desarrollo de la práctica, suministrando de forma detallada cada uno de los pasos y comandos utilizados en el desarrollo de la actividad. Por ejemplo para conocer el nombre de la base de datos se evidencia con los comandos así: C:\sqlmap-0.9\sqlmap>sqlmap.py -u http://pagina.vulnerable.com/listproducts.php?cat=1 --current-db Una vez culminado el proceso de análisis por inyección de código SQL, se debe proponer soluciones de configuración de los equipos y las bases de datos para mitigar este tipo de ataque o amenaza en la red. CUARTA PARTE: Ataque por Sniffing. Para esta práctica se debe descargar el software Wireshark desde el sitio web http://www.wireshark.org/download.html, este está catalogada como una de las mejor herramientas para el análisis de datos de transmisión de redes. Solo se hará una mínima práctica de sus bondades como herramienta hacking y/o de auditoría. Toda la práctica sirve para descubrir que las aplicaciones por lo general envían cierta información en Texto plano, como usuario y contraseña de la Base de datos y consultas SQL. La práctica consiste en la instalación del software Wireshark, luego con el software en ejecución tomar una observación prolongada, generando tráfico ftp, telnet, http, icmp, entre otro, observar que se muestran los passwords en claro y observar las capacidades para obtener datos estadísticos por parte de wireshark. Para ampliar la información sobre Wireshark visite: http://blog.underc0de.org/2013/07/sniffingcon-wireshark.html. Arranque un navegador Internet y realice algunos accesos con él a cualquier dirección web, preferiblemente donde se requiere la utilización de usuario y contraseña, también sería importante que se realizara un envío y recepción de información para ver el comportamiento del software. Una vez terminado el proceso de captura inicie el análisis de los paquetes e identifique que tipo de información se puede obtener a través de este tipo de ataque. Una vez culminado el proceso de análisis del ataque Sniffing con Wireshark, se debe proponer soluciones de configuración de los equipos y las bases de datos para mitigar este tipo de ataque o amenaza en la red.
PRODUCTO ESPERADO A ENTREGAR: UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD El producto es un documento que debe evidenciar detalladamente la realización de la practica (todos los puntos antes mencionados) y debe ser elaborado en un procesador de palabras (openoffice write o Microsoft Word), también se debe adjuntar la base de datos creada en el foro correspondiente.