Título: Crackear GELI [Infeasible] Publicado por: AlbertoBSD en 14 Septiembre 2017, 19:07 pm Antes de empezar tengo que comentar que este método es infeasible.
El método podría tardar toda la vida, incluso podría terminarse el universo y no tener la llave para descifrar la Llave maestra para descifrar el disco duro. Hace unos días publique un post sobre Extraer la información[2] de cifrado (Metadata Usada por Geli[1]). El post sirve solo para extraer información de metadata para su posterior análisis, de hecho el comando Código: #geli dump ada0p2 Realiza la misma salida, sin embargo con el programa podemos tener en memoria una copia de la clave cifrada para tratar de crackearla. Ahora Comento que el programa es infeasible por lo mismo que tardaríamos una eternidad en crackear la clave, posiblemente cuando la clave sea encontrada por mera suerte el disco duro a descifrar ya no exista. Sin embargo como no he visto ninguna herramienta publica he decidido programar mi propio crack para Discos Duros cifrados con geli. Métodos de crackeo:
Fuerza Bruta a la passphrase mediante diccionario La primera opción es incluso mas tardada, pero puede ser que tengamos mas suerte si es que la passphrase escogida por el Sysadmin esta en nuestro diccionario, sin embargo si la palabra no esta en el diccionario es imposible. En este caso la única limitante es: Código: Iterations: 218830 En ese caso tarda como 2 segundos en mi equipo realizar el key derivation con esa cantidad de iteraciones. Sin embargo la ultima instalación de FreeBSD que hice, incremente ese numero de iteraciones a 10485760 y tarda aproximadamente u 41 veces mas en realizar el key derivation. Entonces en un ataque por diccionario tendriamos que pasar nuestra passphrare y derivarla X cantidad de veces, lo cual seria rapido para un X pequeño pero muy tardado para un X muy grande como el mencionado. Recomendación para los sysadmin que utilizen este método de cifrado o un cifrado similar, no elegir una clave que se encuentre en algun diccionario, y si pueden configurar el numero de iteracciones, configuren uno muy alto para que sea desalentador tratar de crackear por este medio. Fuerza Bruta a la clave cifrada Este metodo tiene como ventaja que se salta la parte de las iteraciones y como desventaja es que prueba todas las combinaciones posibles. Sin embargo la probabilidad de que encuentre la clave en los primeros años de ejecución son NULAS, sin embargo a largooooo plazo va a terminar encontrado la llave para descifrar la clave maestra para descifrar el disco duro. El metodo utiliza un archivo para salvar el progreso actual y poder reanudarlo en cualquier otro momento. En cada iteracion del programa se realizan 2 pruebas para descifrar la clave.
Una clave de 64 Bytes que incrementa de uno en uno. Esta es la parte que nos da la certeza de que en algun momento podremos encontrar nuestra clave para descifrar ya que probamos todas las combinaciones posibles. Una clave de 64 bytes de un buffer aleatorio Posiblemente una perdidad de tiempo, pero si tenemos la suerte de que el buffer aleatorio coincida con la clave para descifrar la clave maestra. entonces podriamos tener la clave antes de tiempo. Esta ultima parte se puede omitir y incrementariamos nuestro tiempo de finalizacion a un poco menos de la mitad del actual. Infeasibilidad del metodo La llave para descifrar la llave maestra es de 64 bytes de longitud, NO 64 Bits, 64 BYTES de longitud (64*8 bits) Imaginemos el siguiente numero: Código: 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095 Un numero decimal de 155 digitos Entonces por cada prueba que realize nuestro programa tenemos la posibilidad de 1 en Ese numero de que sea nuestra clave de decifrado. Para los curiosos esta seria la forma de leer el numero de posibilidades Código: 13407 quintovigecillones Aunque tengo dudas de la pronunciacion apartir de los decillones. El codigo para crackear por fuerza bruta esta en: https://github.com/albertobsd/geli_metadata/blob/master/crackgeli.c Si alguien quiere probrar tengo en mi firma un Reto para crackear (https://bitcoin.org/favicon.png)Crackeame si puedes Wallet.dat (https://goo.gl/ATW1QD) Saludos! [1] Extraer informacion de Cifrado https://foro.elhacker.net/criptografia/extraer_informacion_de_cifrado_en_discoduro_de_freebsd-t474262.0.html (https://foro.elhacker.net/criptografia/extraer_informacion_de_cifrado_en_discoduro_de_freebsd-t474262.0.html) [2] Man page of Eli: https://www.freebsd.org/cgi/man.cgi?query=geli&apropos=0&sektion=8&manpath=FreeBSD+11.1-RELEASE&arch=default&format=html |