11.24.2020

Password Cracking 101: Que es un Hash, para que sirve?

Iniciamos esta nueva serie con el fin de aprender sobre el crackeo de contraseñas, en cada una de las entradas veremos el uso de diferentes herramientas e iremos avanzando principalmente le daremos una atención a Hashcat, sin olvidarnos de otras como ser John, Cain & Abel por mencionar algunos, incluyendo el uso de servicios ONLINE que previamente ya estuvimos viendo en entradas previas del blog.



Esta primera entrada veremos lo que es un HASH, el uso que tiene en muchas ramas de informática como también algunas herramientas y sitios web que nos permiten identificar el tipo de hash que corresponde.

 Que es un Hash


Es una representación de un fichero por medio de una función matemática, el cual tiene una longitud fija, la cual es independiente al valor de entrada el principal uso que puede darse es identificar la integridad y no modificación de los ficheros exceptuando las colisiones que es cuando mas de un fichero tienen el mismo hash, en el blog contamos con la entrada de identificar documentos duplicados por medio del hash. 

A continuación abordaremos algunos ejemplos y usos de las funciones hash. 

Veremos un ejemplo práctico de dos imágenes, la primera original que es la siguiente. 


El hash de la imagen es:  EAAF4C190627A40E59A6153F16993118FA33CCD4
En el caso de que un tercero modifique o realice algún cambio como es este caso, el hash llega a cambiar  siendo este diferente. 


El hash de la imagen es: 6878662DC5F3FFD516D3CB853581DADCE029DC85

Esto es usado para temas forenses por ejemplo para verificar la autenticidad de  algún dato y seguir la cadena de custodia. 

Llega a suceder lo mismo con las contraseñas o textos por ejemplo sacaremos el hash en SHA1 de la palabra Snifer es 5B430A9D87BA3B22B658B60C88F170A6F70E14CF, ahora si generamos la suma de la palabra snifer 1142AAE63905871A52F0BC1DAE5CF917A2BEF19C llega a cambiar la suma. 

La longitud de un hash en sha-1 corresponde a 40 caracteres, por ejemplo y no importa lo que ingrese a la función obtendremos el mismo resultado. 

Muchas aplicaciones de escritorio y web utilizan las contraseñas hasheadas para almacenar los credenciales del login, esto jamas puede ser conocido por el sistema al menos que se utilicen credenciales débiles, considerando  que a veces no lo hacen siendo esto una mala practica, como podríamos darnos cuenta de este mal uso, es cuando se realiza el reseteo de la contraseña envían la password en claro. 

Otro uso de los hashes es para la identificación de malware en el caso de VirusTotal, podemos consultar la detección del mismo, o si alguien ya lo mando para un análisis y en vez de mandar todo el fichero solo debemos de contar con el hash en sha256. 


Después de enviar el hash obtenemos los resultados de detección. 


Este proceso también es realizado por los antivirus que usamos en los equipos ya que muchos o pocos comparten las bases de datos o utilizan alguna pública.


Considerando todo esto, un hash debe de cumplir:
  • Un fichero, contraseña no puede generar el mismo hash. (Si sucede esto se denomina colisión de hashes.)
  • Siempre se genera el mismo hash del mismo contenido o dato. 
  • Sin importar la longitud o tipo de fichero, el hash siempre mantendrá la misma longitud. 
  • Un hash puede ser crackeado? si, todo depende de la robustez  además de que el mismo debe de contener un SALT. 
El SALT es una semilla que se agrega al algoritmo para modificar el resultado, podría ser como un vector de inicialización. 




A continuación mencionamos la longitud de los hashes más usados. 
  • MD5: 32 Caracteres. 
  • SHA-1: 40 Caracteres. 
  • SHA-256: 64 Caracteres. 
Si desean verificar e identificar una función hash puedes utilizar algunas herramientas online como también locales en el propio equipo.  

  • CyberChef - Con la receta respectiva para identificar el Hash. 
Para la terminal tenemos Hashid o Hashidentifier las cuales se encuentran ya pre instaladas en algunas distribuciones o también podemos configurarlo de manera local en nuestros equipos, en la entrada del blog  Hacking 101 - Identificando Hashes y buscando en la red en texto claro se da un mayor detalle. 


A veces, caer también nos enseña cosas. En los sueños, muchas veces caes antes de despertar. - Patrick Rothfuss

Deseas algún tema en particular tratar en el blog? Escribe en los comentarios y con gusto realizamos. 

Regards,
Snifer

Compartir:

11.20.2020

NFC Proxmark3: Instalación y uso de pm3, Tipos de Frecuencias y Tarjetas

Empezamos una pequeña serie de entradas relacionadas al mundo de las radio frequencias donde estaré compartiendo lo que vaya aprendiendo en este camino, vale aclarar que estoy dando mis primeros pinos más a fondo con esta tecnología ya que durante el año estuve haciendo algunas travesuras y es posible que me equivoque en algunas referencias, por lo tanto si puedes ayudar y corregir esta todo bienvenido.



Este pequeño gadget lo tengo desde el mes de Febrero, cuando lo compartí por twitter y desde entonces llovió bastante. 

Radio Frequency IDentification Tool - RFID

Creo que fue  ese punto de ir procrastinando y dejando en las tareas de pendientes la realización de una entrada y comenzar a usarlo, ya que previamente ya di mis primeros pinos con la instalación y conociendo los comandos de la Proxmark. 

La Proxmark, contando con dos versiones la oficial y versión china, Proxmark3 y Proxmark 3 Easy, la por lo que leí y estuve trabajando en lo poco, no existe una diferencia más que la monetaria en costes entre ambos dispositivos.






También contamos con herramientas para los dispositivos móviles que dedicaremos una entrada para abordar los mismos.

Espero pronto tener  otro tipo de hardware dedicado para estos procesos y mas específicos, como el Camaleón que tiene otras funcionalidades mas específicas. 


Compilación 

Primero realizamos la clonación del repositorio con el siguiente comando. 
Snifer@L4bs:$ git clone https://github.com/Proxmark/proxmark3.git   
En el github del repositorio contamos con diferentes guías para la realización de la compilación. 

La compilación la realizamos de esta manera.  
Snifer@L4bs:$  make clean && make all  

En el caso de usar el repositorio de Iceman tenemos que tener mucho cuidado, al utilizar la versión china debemos de compilar con la flag PLATFORM=PM3OTHER en la documentación se explica todo el proceso que debemos de realizar como siempre lo digo leer la documentación.


Después de un momento tendremos el resultado de la compilación se debe de conectar la proxmark en el equipo y proceder con la instalación del Firmware.

Instalación 

Cuando realicemos una actualización del software también debemos de actualizar el firmware en la proxmark esto lo tenemos que tener en cuenta al 100% para evitar cualquier inconveniente. 

Después de un momento tendremos el resultado de la compilación se debe de conectar la proxmark en el equipo y 

Snifer@L4bs:$  pm3-flash-all 
En caso de tener algún problema el proceso debemos de realizarlo de manera manual, y no se olviden presionar el botón del lado derecho. 

Snifer@L4bs:$ flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
Después de realizarlo podemos verificar la funcionalidad de la proxmark e interacción con el cliente. 

Snifer@L4bs:$ proxmark3 /dev/ttyACM0
Si todo marcho bien, tenemos el siguiente resultado. 


Para conocer mas sobre el fork realizado por iceman pueden visitar los siguientes enlaces, el cual tiene y brinda mas opciones a la proxmark. 



Tipos de Frecuencias

Antes de todo necesitamos conocer que existen 2 principales frecuencias para trabajar  con RFID  Low Frequency y High Frequency, sin dejar de lado las UHF Ultra High Frequency que durante estas entradas no abordaremos. 

LF, Low Frequency (125 – 140 KHz)

  • Rango de lectura  corto 
  • Velocidad de lectura lenta. 

HF, High Frequency (13,56 MHz)

Un pequeño incremento del rango de lectura siendo casi de 1 metro.


Al ejecutar hf search o lf search identificaremos cual es la frecuencia con la que trabaja la tarjeta. 



Tipos de tarjetas

En este pequeño apartado veremos los tipos de tarjeta que existen además de conocer un nuevo término el Chinese Magic Backdoor

  • UID: Primera Generación (Chinese Magic Backdoor). Esta nos permite modificar y cambiar escribir y clonar. 
  • CUID: Segunda Generación 
  • FUID: Permite solo una escritura
  • UFUID: Múltiples escrituras

Actualmente se usan en muchos lugares usan regularmente la Mi Fare Classic 1K o 4k teniendo mayor énfasis en estas por el costo, las que deben de ser usadas por las diferentes mejoras de seguridad deben de ser las Desfire (Ligth Ev1 Ev2), en las siguientes capturas se tiene un mayor detalle de las diferentes Tarjetas utilizadas. 




Se tienen algunos ataques conocidos que puede realizarse a las tarjetas  NFC, algunas siendo vulnerables a algún tipo de ataque en especifico o directamente a ninguno, los mencionamos para que una próxima entrada los veamos en mayor profundidad. 
  • Dark side
  • Nested
  • Hardnested 

Tratare de conseguir tarjetas donde pueda hacer los diferentes ataques al menos probar y utilizar la proxmark por ahora por un amigo tengo solo una tarjeta que corresponde a la Mi Fare Classic 1k.



Muchas gracias por leer, y acompañarme en este nuevo proceso de aprendizaje. Retomaremos con el blog y el canal de Youtube. Por cierto te gustaria que hablemos o se realice un video sobre este tema? Haznos saber en los comentarios. 

"Intenta aprender algo sobre todo y todo sobre algo. " - Thomas Huxley

Regards, 
Snifer



Compartir: