Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Resumen. Palabras Clave —Firma digital, hash MD5, live http headers Abstract- Keywords—Digital signature, hash MD5 I. INTRODUCCIÓN La criptografía responde a la necesidad de codificar mensajes que sólo pueda descifrar el destinatario y se ha aplicado tanto a defensa, como a secretos industriales y, en los últimos años, sobre todo, al comercio electrónico. Esto es así porque actualmente la seguridad de los sistemas informáticos se ve debilitada por el fuerte crecimiento de las redes y cuando se trata este tema hay que tener en cuenta un aspecto tan importante como la privacidad e integridad de los datos. II. OBJETIVOS Comprender el funcionamiento de la firma digital.y como atacar con http live headers para saber contraseñas III.Generar firma digital de un archivo Ejecutar el siguiente comando en el terminal de Debian: “openssl genrsa” para generar una pareja de claves: Clave privada: rsa_2048.key ➢ Archivo de salida: rsa_2048.key ➢ Tamaño de la pareja de claves en bits: 2048 ➢ Exponente público: “65537” ➢ Cifrado de la clave privada: AES ➢ con una clave de 128 bits ➢ Contraseña: cripto2015 ➢ Comando: openssl genrsa -aes192 -f4 -passout pass:cripto2015 -out rsa_2048.key 2048 Fig. 1 Generación de clave privada La cual genera el siguiente archivo: rsa_2048.key Fig. 2 archivo clave privada Gilbert Jair Sanchez Avila Escuela de Ciencias Básicas, Tecnología e Ingeniería “ECBTI”, Universidad Nacional Abierta y a Distancia “UNAD” Colombia gilbertjair21@yahoo.es Segunda Fase - Diseño y construcción mailto:gilbertjair21@yahoo.es • El siguiente paso es extraer la clave, se debe ejecutar el siguientecomando en el terminal de Debian: “openssl rsa”: Clave pública:rsa_2048_pub.key ➢ Archivo de entrada: rsa_2048.key ➢ Archivo de salida: rsa_2048_pub.key ➢ Comando: openssl rsa -in rsa_2048.key - passin pass:cripto2015 –pubout –out rsa_2048_pub.key Fig. 3 Generación de la clave publica La cual genera el siguiente archivo: rsa_2048_pub.key Fig.4 Archivo clave publica Deberán firmar con el comando “openssl dgst” y la clave “rsa_2048.key” el documento “archivo_2z.ps”. Se hará uso de la función hash (resumen) criptográfica MD5 para calcular la firma. ➢ Archivo que se va a proceder a firmar: archivo_2z.ps ➢ Clave privada: rsa_2048.key ➢ Contraseña: cripto2015 ➢ Función hash (resumen): md5 ➢ Archivo de salida (firma): firma_archivo_2z.txt ➢ Comando a ejecutar en el terminal de Debian para ejecutarel proceso antes mencionado: openssl dgst -sign rsa_2048.key -md5 -passin pass:cripto2015 -out firma_archivo_2z.txt archivo_2z.ps Fig. 5 Generación de la firma digital Fig. Firma digital Fig. 7 archivo de la firma digital Deberán verificar con el comando “openssl dgst” y la clave pública “rsa_2048_pub.key” la firma digital del archivo generado en el proceso anterior “firma_archivo_2z.txt” pero haciendo uso del archivo “archivo_1y.ps” como documento firmado. ➢ Archivo que contiene la firma digital: firma_archivo_2z.txt ➢ Archivo firmado: archivo_2z.ps ➢ Clave pública: rsa_2048_pub.key ➢ Función hash (resumen): md5 ➢ Comando: openssl dgst -verify rsa_2048_pub.key -md5 - signature firma_archivo_2z.txt archivo_1y.ps Fig. 8 verificación de la firma digital PREGUNTAS ¿Qué resultado obtuvieron en este proceso de firma digital, esto sí debería suceder o ser posible? Se generaron un par de claves una privada y una publica para poder firmar el documento. ¿Qué es una función hash MD5? La función hashMD5es un algoritmo que consiguen crear a partir de una entrada ya sea un texto, una contraseña o un archivo una salida alfanumérica de longitud de 128bits (32 dígitoshexadecimales) que representa un resumen de toda la información que se le ha dado. ¿Por qué obtuvieron dicho resultado?¿Cuál es la debilidaden el sistema de firma digital OpenSSL? Se generó un archivo con la firma digital (firma_archivo_2z.txt ) para el archivoarchivo_2z.ps utilizando el hash MD5, pero al verificar la firma digital (firma_archivo_2z.txt) se utilizó otro archivo archivo_1y.ps dando como resulto OK, podemos verificar la función hash MD5 de los dos archivos por medio del siguiente comando md5sum archivo_1y.ps y md5sum archivo_2z.ps podemos observar que son los mismos Fig. 9 comprobación del hash md5 Este es una vulnerabilidad llamada ataque de colisión hash “se produce al aplicar a dos archivos distintos una función hash y que éstos arrojen la misma salida” Configurar un script Ataque diccionario: Los ataques por fuerza bruta suelen utilizarse para superar sistemas criptográficos como los protegidos con contraseñas. Los ciberdelincuentes utilizan programas informáticos para probar una gran cantidad de contraseñas y descifrar el mensaje o acceder al sistema. Programación de scripts: Los scripts (guiones) son meros ficheros de texto ASCII que presentan una serie de órdenes y estructuras organizadassecuencialmente. Así pues el script se ejecuta de forma lineal-secuencial orden tras orden.Los lenguajes scripts son lenguajes "interpretados". Lo que quiere decir que sus órdenes secuenciales son interpretadas porun sistema o programa padre. Descargamos el script dentro de maquina virtual en OS Debian 8.0, a través del navegador Después de descargar el script lo movemos de la carpeta Descarga a la carpeta Escritorio Luego cambiamos permisos al scipt, por la opción de propiedades: Luego ejecutamos la Terminal para ingresar como usuario root Enseguida ingresamos al directorio donde se encuentra el sript IV Ataque de fuerza bruta utilizando un script Fig. 10 script a ejecutar Asignamos privilegios plenos Fig.11 permisos de ejecución Ejecutamos el script para el primer alfabeto Fig. 12 primera clave Editamos el script cambiando el número del alfabeto a trabajar space1 lo cambiamos por space2 Fig.13 edición del script Obtenemos la segunda clave Fig.14 segunda clave La tercera clave no se obtuvo con el script Fig. 15 tercera clave Tabla1. Como este script no pudo descifrar le tercera clave utilizaremos el programa john the ripper, procedemos a instalarlo Fig. 16 instalación de John the ripper Para la obtención de la sexta clave creamos un texto con el hash llamando hash6 Fig. 17 hash6 Procedemos a realizar el ataque Alfabeto Número caracteres Salt Hashcontraseña Contraseña Tiempo Alfabeto 1 3 zz zzxro5xjinmvM yep 57 seg Alfabeto 2 3 OO OOxtB6h5YruaA YEP 7 min 45seg Alfabeto 3 3 U. U./Se8tPqytD2 Alfabeto 4 3 4Y 4Yy77AHdCPNqY Alfabeto 1 5 bb bbzNErQvUSZOI. marta Alfabeto 1 6 uu uuFPJnWAcNys2 madrid 0.2 seg V.PRUEBA CON LIVE HTTP HEADERS PARA HACKEAR CONTRASEÑAS DE FACEBOOK O CORREOS Ya hemos instalado Live Http Headers ahora para hackear la contraseña de alguna victima lo primero que se tiene que hacer antes de que la victima abra su facebook o correos es abrir el live http headers y dejarlo minimizado, en este imagen vemos que no ha capturado ningún código de los encabezados. Vamos a probar esto colocando un correoy password en el facebook, por ejemplo pruebacripto@hotmail.com y un password de prueba (1234) , mientras vamos colocando esos datos vemos que el componente de live headers sigue capturando datos (ver siguiente imagen): En este caso la clave es errónea, pero el componente live http headers sigue capturando los datos enviados a la página, ver siguiente imagen: Ahora supongamos que una víctima se haya metido a su cuenta de facebook, esta vez con la contraseña correcta y mire su facebook normalmente, en este caso mostramos en esta imagen que el componente live http headers sigue trabajando, aunque en la vida real para que el ataque de efecto tenemos que dejar el componente minimizado y esperar que la víctima se vaya del puesto de trabajo para poder tomar los datos (mas adelante mostraremos eso) Ahora supongamos que la víctima se mete a su correo personal el componente de live http headers también captura los datos que toma el formulario de inicio de sesión (correo y password) para acceder a nuestra cuenta de correo electrónico, (aquí vemos a live http headers actuando) en la vida real obviamente tenemos que dejar esto minimizado para que la víctima no se dé cuenta y tener éxito en el ataque: mailto:pruebacripto@hotmail.com Ahora supongamos que la víctima se levanto del puesto de trabajo por alguna razón , en ese momento el atacante abre la aplicación y donde dice guardar todo (recuadro en rojo) le damos un nombre al archivo y una ubicación (incluso esa información se guardar como un documento .txt o bloc de notas y se puede guardar en una memoria USB) una vez hecho esto el atacante se puede ir con la información guardada y analizar para un ataque o acceso a las cuentas de facebook o correos de la víctima. Análisis de la información encontrada Una vez el atacante se ha ido para su casa con el documento guardado en el que se tiene los encabezados de las páginas web que ha accedido la victima a lo largo del día abre ese bloc de notas y en la opción buscar colocamos la palabra pass: Podemos ver que nos aparece el password del usuario en facebook pruebacripto@hotmail.com y la clave es 1234 (ver bien la imagen donde está el color verde) Seguimos dándole buscar la palabra pass a lo largo del documento y vemos que se recoge los encabezados de facebook (ver recuadro verde de la imagen) si vemos el recuadro en rojo de esta imagen vemos el correo asociado a esa cuenta de facebook y en pass la clave de esa cuenta de facebook Aquí podemos ver ahora si en detalle lo anterior, ver esta imagen: Email:coronelturman@hotmail.com Password: gjsa8031 Si seguimos dándole pass ahora vemos que busca la información no solo de facebook o de otras redes sociales sino también de cuentas de correo como la que probamos anteriormente: Aquí vemos los datos de la cuenta de correo usada para este ejercicio en detalle: Cuenta de correo:gilbertuts@hotmail.com Password: jair8031 1. Por que se presenta esta falla de seguridad Live http headers su función es interceptar las cabeceras que manda nuestro navegador a un servidor, esto se puede decir que nosotros cuando por ejemplo escribimos un usuario y clave en un formulario de una página web estos datos se envían hacia un servidor especifico (servidor de Hotmail, servidor de facebook etc...)en ese momento hacemos la función de cliente, los servidores procesan nuestra solicitud y si aceptada pues ejecutan lo que los pedimos en este caso sería dejarnos entrar a nuestro correo o facebook etc.. live http headers funciona como una especie de sniffer interceptando todo el trafico que pasa por el puerto 80,además de eso live http headers no solo analiza las cabeceras sino que nos puede servir para modificarlas y ejecutar diversos ataques de inyección de códigos (XSS por ejemplo). 2. Que se debería encriptar para que no haya este error Se debe encriptar los datos de envió de los formularios de los aplicativos web cuando esto van hacia el servidor buscando solución a las solicitudes de la pagina en cuestión que hace la función cliente, encriptar las peticiones GET o POST. 3. Cual sería la solución para solventar este error Una de las soluciones seria que los programadores de estas aplicaciones web revisaran los códigos fuentes, se pueden guiar por la metodología de OWASP para estos análisis y revisiones. También que el administrador de red este monitoreando el flujo de datos constantemente para ver si hay irregularidades, también podríamos usar un WAF (firewall de aplicaciones web) el cual filtra los envíos de mensajes por HTTP por medio de reglas las cuales bloquean ataques como XSS e inyecciones SQL y usar VPN para que los equipos se conecten entre sí como si fuera una red local. Tambien es recomendable como usuarios revisar nuestro equipo para ver si hay programas extraños instalados si es así desinstalarlos o eliminarlos, actualizar el antivirus , no bajar programas desconocidos ni abrir correos desconocidos ,también podemos una vez nos levantemos de un puesto de trabajo dejar el equipo con sesión de usuario con su respectiva clave o que el protector de pantalla se active al poco tiempo inactividad y al protector de pantalla colocarle una clave mientras llegamos al puesto de trabajo, otra recomendación seria cambiar la contraseña seguido de nuestras cuentas de correo y redes sociales. Conclusiones ✓ En este caso vemos que usa el algoritmo MD5 en openssl el cual vemos que tiene falencias en seguridad lo cual no es recomendable para almacenar contraseñas se aconseja usar SHA512 ya es mas imperceptible con respecto a MD5. ✓ El Salt es útil para almacenar el hash de la contraseña ya que introduce elementos que impiden que un atacante use contraseñas que ya están compilados en hash de contraseñas anteriores. y es muy usado en aplicaciones como seguridad en esquemas de contraseñas protegiendo estos datos. ✓ Tambien como usuarios normales tener presente que a nuestras contraseñas de correo y cuentas sociales no hacerlas de frases o palabras conocidas sino usar combinaciones alfanuméricas ,mayúsculas y minusculas para que dificulte a un potencial atacante incluso cuando use programas para hacer ataques de fuerza bruta (se prueban todas las combinaciones posibles al descifrar una contraseña ) o diccionario (usar palabras comunes por los usuarios) en programas como Hydra o Jhon the Reaper y estar cambiando las contraseñas periódicamente o cuando se tenga sospecha de que nos han accedido a nuestras cuentas de redes sociales y correo, con esto ayudamos a proteger nuestros datos de un potencial atacante. VI. REFERENCIAS [1]https://www.youtube.com/watch?v=6S8FQGGgvZE Instalar las Guest Additions en Debian,. [Último acceso: Septiembre 2015]. [2]https://www.youtube.com/watch?v=Le7lD0RxSI0,Compartir carpetas Windows-8 a Linux-Ubuntu12 (VirtualBox) [Último acceso: Septiembre 2015]. [3]http://www.seguridad.unam.mx/noticia/?noti=2012, El último clavo al ataúd del hash MD5: Generalizan colisiones criptográficas [Último acceso: Septiembre 2015]. [4]http://blog.loretahur.net/2007/07/instalando-john- ripper.html, Instalando John The Ripper-Publicado por Lorena Fernández el 25-07-2007[Último acceso: Septiembre 2015]. [5]. https://www.youtube.com/watch?t=1&v=8Me0yZf4fXY Video sobre el uso de Live Http Headers. [Último acceso: Septiembre 2015]. [6]. http://www.taringa.net/posts/info/13845034/HTTP-al- Descubierto.html. HTTP al descubierto. [Último acceso: Septiembre 2015]. [7] https://platzi.com/blog/como-usar-una-vpn/.Uso de VPN. [Último acceso: Septiembre 2015]. [8] http://www.exceda.com/es/produtos/waf-web-application- firewall/WAF. [Último acceso: Septiembre 2015]. [9]https://www.sophos.com/es-es/threat-center/threat-analyses/threatsaurus/a-to-z-of-threats/b/brute-force- attack.aspx. SOPHOS, 1997-2015. Ataque por fuerza bruta [Último acceso: Septiembre 2015]. [10] https://aurea.es/assets/scriptsenlinux.pdf Rivera Javier. Programación de scripts bajo shell de LINUX Último acceso: Septiembre 2015]. https://www.youtube.com/watch?v=6S8FQGGgvZE https://www.youtube.com/watch?v=Le7lD0RxSI0 http://www.seguridad.unam.mx/noticia/?noti=2012 http://blog.loretahur.net/2007/07/instalando-john-ripper.html http://blog.loretahur.net/2007/07/instalando-john-ripper.html https://www.youtube.com/watch?t=1&v=8Me0yZf4fXY http://www.taringa.net/posts/info/13845034/HTTP-al-Descubierto.html http://www.taringa.net/posts/info/13845034/HTTP-al-Descubierto.html https://platzi.com/blog/como-usar-una-vpn/ http://www.exceda.com/es/produtos/waf-web-application-firewall/ http://www.exceda.com/es/produtos/waf-web-application-firewall/ https://www.sophos.com/es-es/threat-center/threat-analyses/threatsaurus/a-to-z-of-threats/b/brute-force-attack.aspx https://www.sophos.com/es-es/threat-center/threat-analyses/threatsaurus/a-to-z-of-threats/b/brute-force-attack.aspx https://www.sophos.com/es-es/threat-center/threat-analyses/threatsaurus/a-to-z-of-threats/b/brute-force-attack.aspx https://aurea.es/assets/scriptsenlinux.pdf [11] http://www.securitybydefault.com/2013/09/consejos-practicos- la-hora-de-integrar.html. Yago Jesus. consejos practicos a la hora de integrar criptografía. [Último acceso: Septiembre 2015]. . http://www.securitybydefault.com/2013/09/consejos-practicos-la-hora-de-integrar.html http://www.securitybydefault.com/2013/09/consejos-practicos-la-hora-de-integrar.html
Compartir