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:

10.01.2020

Pentesting Mobile 101: Controlando de manera remota un Dispositivo Android con Scrcpy

Durante estos meses aprendí mas sobre el análisis de aplicaciones móviles específicamente con Android, iOS aun falta conocer mas sobre su arquitectura.
 

 
 

Aprendí un poco mas de Frida, el proceso de realizar un debugging de la app para conocer sus diferentes métodos, clases y llegar a dar con algún control que anda molestando como ser Detección de root, o Certificate Pinning, sin olvidarme de Burp Suite, que por cierto estaremos  compartiendo en el blog en una nueva serie de Pentesting Mobile 101 con el fin de que todo aquel que inicie y conozca tenga una visión más clara  y poder tener un

Durante las pruebas estaba utilizando dos dispositivo móviles que tengo en casa un Samsung S6 y un Xiaomi el primero rooteado y el segundo como vino de fábrica, además de usar dos emuladores AVD y Genymotion.



En este proceso me tope con algunos problemas entre los cuales estaba que el cable desenchufaba, o sucedía alguna torpeza lo cual llevaba a volver a  interrumpir el proceso que me encontraba realizando, en la búsqueda llegue a Srcpy, que es el motivo de esta entrada.

Que es Srcpy

Srcpy es una utilidad que permite realizar un mirroring y controlar el dispositivo móvil, utilizando un modelo cliente, servidor a través de una conexión sobre USB o  TCP/IP. 

Una de las características mas importantes a mi parece es que no se requiere contar en ningun momento con acceso root.

Multiplataforma.

Es posible usarlo en Windows, Linux o Mac disponible en una gran mayoría de distribuciones de linux, basta con instalarlo desde el gestor de paquetes o utilizar su paquete de snap. 
 

En el siguiente enlace se puede ver los diferentes repositorios para la instalación. Scrcpy Repositorio

Requisitos

Los requerimientos para el uso de la herramienta son:
  • Android 5.0 o superior.
  • ADB habilitado.

A continuación veremos algunos comandos que pueden ser útiles. 

Grabar la pantalla 

Iniciamos el mirroring ejecutando srcpy y directamente nos brindara el mirroring  en el caso de contar con mas de un dispositivo conectado en el equipo por cable, debemos de usar el comando -s y el SERIAL del dispositivo. 

Para ver el serial podemos utilizar adb con el comando devices. 


Snifer@L4bs:$ scrcpy #Iniciamos el mirroring. 
Snifer@L4bs:$ scrcpy -s SERIAL_DISPOSITIVO #Para conectarnos a un dispositivo en especifico.  
En la siguiente captura tenemos dos dispositivos realizando el mirroring. 


Grabar la pantalla 

Otra de las opciones que tenemos es realizar una grabación con los siguientes comandos, aclarando que desde ADB también podríamos realizar un mirroring como también grabar la pantalla. 
Snifer@L4bs:$ scrcpy --record Video.mp4
Snifer@L4bs:$ scrcpy -r Video.mkv 

Conexión por Wireless

La conexión por Wireless es la que hizo que me olvide por completo de los cables, o eso creo, a veces toca aún hacer uso de un par de ellos.
Snifer@L4bs:$ adb tcpip 5555
restarting in TCP mode port: 5555
Snifer@L4bs:$ adb connect 192.168.0.233:5555 #Necesitamos saber la dirección IP del teléfono.
connected to 192.168.0.233:5555
Después de hacer el proceso solo queda ejecutar scrcpy y tendremos el mirroring del dispositivo.
Snifer@L4bs:$ scrcpy
INFO: scrcpy 1.16 
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed. 0.2 MB/s (33622 bytes in 0.211s)
[server] INFO: Device: Xiaomi MI 8 Pro (Android 10)
INFO: Renderer: opengl
INFO: OpenGL version: 4.6.0 NVIDIA 435.21
INFO: Trilinear filtering enabled
INFO: Initial texture: 1080x2248 
 En este caso tenemos visualizando el dispositivo.

 
 
 
Conoces alguna otra utilidad que nos permita realizar esta tarea? Nos vemos en la próxima entrada del blog o en el podcast.


«No puedes adquirir experiencia haciendo experimentos. No puedes crear la experiencia. Debes experimentarla» - Albert Camus


Regards,

Snifer

Compartir:

9.21.2020

Pentesting Mobile 101: Configurando Genymotion para instalar aplicaciones ARM

En la entrada de hoy veremos como configurar el emulador Genymotion para que en este se pueda instalar aplicaciones ARM ya que este esta pensando unicamente para la arquitectura x86. 

Primero veremos que sucede cuando realizamos la instalación de un programa, en el caso de Genymotion es posible hacerlo de dos maneras. 

Instalación por medio de ADB

Si lo hacemos por medio de ADB el resultado que obtenemos es. 


Drag & Drop

Por otro lado al instalar con un drag and drop se tiene el mensaje de error. 


Si ejecutamos el comando adb shell getprop veremos que la arquitectura corresponde a x86.
 
adb shell getprop | grep abi                                                                                     
[ro.product.cpu.abi]: [x86]
[ro.product.cpu.abilist]: [x86]
[ro.product.cpu.abilist32]: [x86]
[ro.product.cpu.abilist64]: []

Instalación de ARM Translation

Para saltar esta "protección - limitación" es instalar el ARM translation en el repositorio de Github se tiene para Android 5, 6 y 7  en este caso el dispositivo que se tiene configurado en Genymotion es un Android 6 que es el dispositivo que regularmente utilizo en las pruebas.

Al descargar el fichero respectivo según la versión de Android que estemos utilizando, lo instalamos con un Drag and Drop teniendo el primer mensaje de la izquierda.

El siguiente paso es reiniciar el emulador, y verificamos la arquitectura del dispositivo.

adb shell getprop | grep abi                                                                               
[ro.product.cpu.abi]: [x86]
[ro.product.cpu.abi2]: [armeabi-v7a]
[ro.product.cpu.abilist]: [x86,armeabi-v7a,armeabi]
[ro.product.cpu.abilist32]: [x86,armeabi-v7a,armeabi]
[ro.product.cpu.abilist64]: []
En la próxima entrada estaremos abordando como instalar los Gapps Google Apps e identificar si una aplicación móvil los requiere para su funcionamiento. 

Además se tendrá un mapa mental en el repositorio de Github en cada rama o control que se ira adicionando formara parte de una entrada en el blog, teniendo las referencias necesarias para cualquiera que se sume a esta área.


«Quien no sea bello a los veinte años, fuerte a los treinta, inteligente a los cuarenta y rico a los cincuenta, no puede esperar ser todo eso después.» - Martin Luther. 
 
Regards,
Snifer
Compartir:

8.26.2020

Curso Burp Suite desde 0 - 7. Uso de Repeater y Tips

Retornando el curso de Burp Suite desde 0, con esta séptima parte donde vemos el uso de una funcionalidad muy utilizada al realizar procesos de auditoria y les hablo del Repeater. 
 



Realizamos las pruebas en la plataforma de Gruyere, explicamos algunos tips de uso de la función. 





Recordarles que estos videos estarán cada Martes o Miercoles en el canal entre las 8 y 10 GMT -4. Si deseas ver todas las entradas que se realizaron sobre Burp Suite tienes el siguiente Burp Suite.

Si te agrada el proyecto compártelo!

El espacio del blog en Telegram HackySec
Deseas apoyar al proyecto puedes hacer tu donación por Paypal: https://paypal.me/SniferL4bs
También tenemos un Patreon si te gustaría formar parte de el https://www.patreon.com/sniferl4bs


"Nunca es demasiado tarde para ser la persona que podrías haber sido." – George Eliot


Regards,
Snifer


Compartir: