Este blog ya no está activo, sigue informándote aquí:

Mostrando entradas con la etiqueta Hash. Mostrar todas las entradas
Mostrando entradas con la etiqueta Hash. Mostrar todas las entradas

lunes, 10 de abril de 2017

Hashea como puedas pero hazlo bien.

Yo no se casi nada sobre funciones de hash, de como se han de programar o de por qué no debemos crear nuestro propio sistema de cifrado. Pero últimamente, con el tema de las colisiones en SHA1, estoy bastante interesado así que, me he buscado un poco la vida, y he ido a parar con la siguiente guía que nos responde a muchas dudas. Sobre todo a mi que soy un novato en esto.


En serio, es buena y empieza desde cero, casi mostrándonos el workflow que hará un usuario al conectarse y los pasos que hará el hash:
  1. El usuario crea una cuenta.
  2. Su contraseña es hasheada y se almacena en la base de datos. En ningún momento la contraseña estará en texto plano (sin cifrar).
  3. Cuando el usuario intenta iniciar sesión, se genera un hash para la contraseña cuando que se indico en el login y se compara con el hash de la contraseña real (recuperado de la base de datos).
  4. Si los hashes coinciden, se le concede acceso al usuario. Si no es así, se le dice al usuario que las credenciales de inicio de sesión no válidas.
  5. Los pasos 3 y 4 se repiten cada vez que alguien intenta acceder a su cuenta.
Después ya entra en buenas practicas y en como se deben solventar ciertos ataques a un nivel mucho mas técnico. Esta guía merece toda mi atención:

miércoles, 1 de marzo de 2017

SHA1.- Colisión de documentos en Python

Python se esta consolidando como el lenguaje predominante en el campo de la seguridad informática y cada vez me cuesta encontrar herramientas que no tengan parte de este lenguaje de programación en ellas. Como sabéis, esto me gusta mucho y me asusta ya que creo que debería estar aprendiendo a programar en otro lenguaje antes de que obsesione mas por el. 


Dicho esto y como hace [un par o tres de días] hablamos sobre la "primera" colisión de SHA1, hoy podemos jugar con sha1collider. Una herramienta de [Robert Xiao], que dándole dos archivos PDFs diferentes (Aunque deben tener el mismo tamaño de página y numero de páginas) nos genera dos PDFs diferentes con el mismo Hash y sí, lo hace mediante la manipulación de los archivos tratándolo como JPGs

Ademas, como siempre, el comando a usar es muy sencillo, aunque tendremos que instalar algunas dependencias:
  • python3 collide.py PDF1.pdf PDF2.pdf
Enlace a la herramienta: 
Sed Buenos con esto 0;) 

viernes, 24 de febrero de 2017

La "primera" colisión de SHA1

Hoy Google ha anunciado la primera colisión de la función de Hash SHA1. Bueno, la primera colisión pública desde que se [anunciara la vulnerabilidad teórica] en el año 2005. Me acuerdo que en la certificación sobre peritaje telemático forense ya teníamos como recomendación no usar SHA1 y nos prohibían el uso de MD5.

Para empezar, SHA1 es una función de hash muy famosa. Cuando pasamos una entrada (una cadena de caracteres por ejemplo) por dicha función ella nos devuelve un digest o salida en forma de cadena de caracteres que debería de ser única y de una longitud determinada.

Pues si al generar este digest con dos cadenas o documentos diferentes, el resultado es el mismo. Se dice que ha habido una colisión, que por definición en una función de hash segura no debería de pasar.




Pues eso es lo que ha conseguido Google aunque les ha costado un año conseguir. La verdad es que la entrada que han publicado al respecto es muy entretenida así que os recomiendo echarle un ojo ya que SHA1 no solo se usa para verificar documentos:

Sed Buenos ;) 

jueves, 5 de enero de 2017

Pass the Hash & PowerShell

Cada vez tengo mas claro que con PowerShell se puede hacer de todo es mas ya la estoy substituyendo por la consola típica de Windows. Pues ahora y gracias a [Kevin-Robertson] podemos utilizar esta shell para realizar ataques de Pass the Hash. Que, en mi opinión siempre es un Win si accedemos a un servidor con poderes.



Para los que no sepáis de lo que va esta técnica aquí tenéis mas info: 
Es una técnica de hacking que permite a un atacante autenticarse en un servidor / servicio remoto mediante el hash NTLM y / o LanMan de la contraseña de un usuario, en lugar de requerir la contraseña de texto el caso.
Enlace a la herramienta:
Sed Buenos ;) 

martes, 8 de marzo de 2016

El Arte del Hashing de Passwords

Ya hemos hablado en este blog sobre los hash de contraseñas y como darles fuerte y flojo. Sobretodo a las del archivo SAM de Windows. Pero alguien habrá que no sepa el porqué es importarte "hashear" la contraseñas de su aplicación.

Siempre al pasar las contraseñas por un algoritmo de hash antes de almacenarlas en una base de datos podremos hacerle la vida imposible o al menos hacérsela mas difícil al atacante que quiera hacerse con ellas.

Así que pequeños programadores que acabáis de empezar y queréis aplicar una capa de seguridad a vuestras contraseñas, os recomiendo la siguiente web donde explica de una manera muy entendible (aunque en ingles) 
Sed Buenos y que la SALT os acompañe. 

jueves, 15 de octubre de 2015

JS, SHA-2 & SHA384

Hoy leyendo [la entrada de Hackplayers]donde hablaban de la incorporación de un hash en un script de javascript para evitar que estos sean modificados con fines malévolos. Una idea genial que ya se esta implementado en la Mozilla Developer Edition 43 pero, no hubiera puesto ese título si quisiera hablar de esto. 

En la entrada Vicente Motos ponía como ejemplo un script donde se invocaba/descargaba un archivo .js y que contenía el campo integrity donde estaba alojado el Hash en SHA384 para que, al ejecutar el script este compruebe la integridad del .js que se va a descargar.

Bueno, al no haber trabajado mucho con hashes esto de SHA384 me sonaba de la información que tendría que haber sabido para el CEH,(siento recordarlo pero aun me escama) así que, he cogido los apuntes y me he puesto a investigar un poco. 

SHA384 entra dentro de la familia de los Hashes SHA-2 en la que encontramos a SHA224, SHA256, SHA384, SHA512 que en lo único que se diferencian son en los bis del digets, vamos que se diferencia en "lo que caga" o dicho mas fino, en el tamaño del hash resultante. 

Como curiosidad diré que el NVD (National Vulnerabilities Database) del NIST usa SHA256 para comprobar la descarga de los Data Feeds de vulnerabilidades. 


Vale, es un hash de la familia SHA-2, por lo que no es vulnerable y ahora, ¿como puedo "jugar" con el?
Así que ya sabeis, no os fieis de los hashes MD5 y SHA-1 que no son de fiar.

Sed Buenos ;)

martes, 13 de octubre de 2015

SHA1 < SHA2 or SHA3

Bueno, esta es la entrada de ayer que no hice por estar preparando el CEH así que esta es la primera entrada de hoy.


Que, MD5 estaba totalmente roto y que SHA1 era teóricamente hackeable, no se le escapaba a nadie que estuviera metido en el mundillo ya que ha sido dicho por activa y por pasiva en bastantes ponencias. Pero desde hace unos días podemos decir que ambos algoritmos de hash están rotos y que seria necesario utilizar SHA2 o SHA3. 
"Los investigadores de la Informática Centrum Wiskunde y en los Países Bajos, INRIA en Francia y Universidad Tecnológica de Nanyang en Singapur [han demostrado que SHA-1 es vulnerable]a ataques de colisión que llamaron Freestart Collision."
Así que, si tenéis mas curiosidad sobre este tema o hacéis clic en el enlace de la cita o podéis encontrar mas información en la fuente de esta noticia:
 Sed Buenos y migrad a SHA2 o SHA3 xD

martes, 28 de mayo de 2013

Hash.- ¿Pero Que Te Pasa En La Boca?

Hoy he estado terminando mi trabajo de final del curso de peritaje telemático forense que dejé apartado por razones laborales, de estudios y algo de vagancia se ha de admitir. Bueno, el tema es que hoy iba ha hablaros de el lenguaje que utiliza Wikipedia por que dentro de poco veréis artículos míos en Hackstory. (No se, si eso es bueno o malo pero es una oportunidad y a mi me encanta. xD) Pero entre tanto firmado en SHA-1 para poder comprobar si esa copia ha sido alterada o no en un juicio, me ha dado ganas de empezar a explicarlo desde el principio. 

Recuerdo que la primera vez que yo oí la palabra Hash la verdad es que creía que me estaban tomando el pelo por que no me enteré nada. Hoy os lo voy a explicar con mis palabras y mis ejemplos. 


Ya de todos es sabido que el los servidores de por ejemplo hotmail y gmal no se guardan nuestras contraseñas en texto plano (a pelo xD) sin o que se guardan los Hashes de estas contraseñas. Esto quiere decir que para que saber una contraseña tendrían que coger el Hash correspondiente y aplicarle la función inversa del Hash para obtener el texto plano. 

Esto quiere decir que básicamente se coge tu contraseña a pelo y se le aplica un "cifrado" que en este caso lo llamaremos función del Hash (matemáticas igual que todo lo correspondiente a cifrados) y obtendríamos un conjunto de números y letras aparentemente "aleatorio" al que denominamos Valor de Hash o Hash.