martes, 20 de septiembre de 2016

Unidad 2 - Tarea 2: SQL Injection



La segunda tarea de la unidad 2 trata de realizar un ataque SQL Injection a la máquina vulnerable DVWA, con el fin de conseguir los usuarios y contraseñas que contiene la base de datos.

Dejo el enlace a una entrada que publiqué hace un tiempo en el blog que participo sobre seguridad informática, en dicha entrada explico como vulnerar las diferentes vulnerabilidades que tiene DVWA, entre ellas SQLi.



Un saludo, vasco.

Unidad 2 - Tarea 1: Capturando tráfico con Wireshark




En la primera tarea de esta segunda unidad tenemos que analizar unas capturas de tráfico con Wireshark para buscar información sensible.

  • Primera parte: Analizar un protocolo inseguro - Telnet 
Telnet se trata de un protocolo que nos permite controlar una máquina a distancia a través de una consola (sin entorno gráfico). El fallo de éste es que envía la información en texto plano, es decir, se puede leer perfectamente en una captura al no ir cifrado.


Abrimos el archivo .cap con Wireshark, lo primero que haremos será poner un filtro para que muestre solo los paquetes relacionados con Telnet



En esta sesión de Telnet en concreto hemos obtenido la siguiente información:

Entre el paquete 36 y el 50 podemos ver las letras que componen el nombre de usuario y entre el 58 y el 64 la contraseña ingresada.
    • Usuario: fake
    • Contraseña: user

Paquete 74: en él vemos el sistema operativo que está corriendo la máquina.



Paquetes 78 - 84: aquí tenemos el primer comando que se ejecutó en la sesión. Se trata de un "ls", que no muestra resultado alguno puesto que la carpeta en la que se encuentra tiene los archivos y/o carpetas ocultas.


Paquetes 92 - 110: el segundo comando ejecutado "ls -a", debido a que el comando anterior no mostró nada, se hizo un "ls -a" para mostrar los archivos ocultos, obteniendo la siguiente lista.



Paquetes 122 - 214: el comando ejecutado en esta ocasión es "/sbin/ping www.yahoo.com", un ping apuntado a la web de Yahoo en el que envía 13 paquetes, de los cuales 11 son recibidos y 2 perdidos.



Por último se ejecuta un "exit" para salir de la sesión.


  • Segunda Parte: analizando SSL
El protocolo SSL (Secure Sockets Layer - Capa de puertos seguros) y su sucesor TLS (Transport Layer Security - Seguridad de la capa de transporte), son protocolos criptográficos que proporcionan comunicaciones seguras, impidiendo así que terceros puedan leerla.


Una vez abierta la captura con Wireshark, si nos fijamos en el paquete número 2 podemos ver el certificado X.509 que utiliza, al autoridad emisora del mismo es VeriSign.



El certificado se envía encriptado y asegura la identidad del servidor.




  • Tercera Parte: analizando SSH
El protocolo SSH, al igual que Telnet, nos permite conectarnos a otra máquina y controlarla como si estuviéramos delante de ella, con la diferencia de que mediante este protocolo la información va cifrada, impidiendo que terceros puedan leerla.

Abrimos la captura con Wireshark. A partir del paquete 13 comienza el tráfico cifrado.


Es el protocolo SSH el que va cifrado en la conexión, por lo que no es posible obtener información alguna (usuario, contraseña, etc).




Hasta aquí la primera tarea de la segunda semana de este MOOC.

Un saludo, vasco.

domingo, 18 de septiembre de 2016

Unidad 1 - Tarea 3: Una sencilla práctica sobre criptografía


En este ejercicio veremos cómo cifrar y firmar digitalmente un archivo mediante la clave pública de un segundo para posteriormente enviárselo a esta persona y que pueda descifrarlo con su clave privada. Para ello, en este caso, he utilizado gpgv2.

Para instalar gpgv2 ejecutamos en una terminal: sudo apt-get install gpgv2 .
 

Una vez instalado, el primer paso es generar nuestra clave pública y privada mediante el comando: gpg2 --gen-key .



Con nuestras claves creadas, el siguiente paso es exportar la pública para enviarla a una segunda persona y que encripte su archivo con ella, al igual que nosotros encriptaremos nuestro archivo con la clave pública que ha generado esa persona. De ésta forma, cada uno luego será capaz de descifrar el archivo del otro con su clave privada.

Exportaremos nuestra clave usando el siguiente comando:
gpg2 --export nombre_usuario > nombre_usuario-pub.gpg 

Enviamos el archivo generado y recibimos el de la otra persona. Importamos la clave recibida mediante: gpg2 --import nombre_usuario2-pub.gpg .

Creamos el archivo que posteriormente vamos a cifrar y enviar.


Con el archivo creado, lo firmamos y ciframos con la clave importada mediante el comando: gpg2 --recipient nombre_usuario2 --sign --encrypt crypt-file.txt 

Ya solo nos falta enviar el archivo cifrado a la otra persona para que lo descifre con la clave privada y recibir su archivo para descifrarlo y ver el mensaje que nos ha enviado. 
  • Descifrar archivo

  • Contenido del archivo

Hasta aquí el tercer ejercicio, a la espera de la segunda semana.

Un saludo, vasco.