22 ene 2020

Cracking distribuido con Hashtopolis (Parte II)

¡Muy buenas!

En el último post os hablamos de Hashtopolis, y os explicamos brevemente cómo instalar el servidor y añadir un cliente. En esta parte os hablaremos de cómo usar esta aplicación.

Esta aplicación diferencia cuatro grandes elementos necesarios para realizar un cracking:
  • Crackers: son los binarios de las herramientas que se enviarán a los agentes para realizar el cracking, siendo hashcat v5.1.0 la versión usada actualmente por defecto.
  • Files: son los diccionarios y reglas que queramos aplicar a hashcat, a la hora de realizar el crakcing.
  • Lists: son los ficheros a crackear. Hashtopolis diferencia entre hashlists y superhashlists (como un conjunto de hashlists que se crackean a la vez, pero se mantienen en ficheros separados)
  • Tasks: son las acciones de cracking. Al crear una task, se eligen los ficheros necesarios (diccionarios y reglas), así como el (super)hashlist que vamos a crackear, y se asignan los agentes deseados para llevar a cabo la tarea.
De este modo, lo primero que necesitaremos para crackear nuestros codiciados hashes será importar los diccionarios y reglas que queramos en la sección files.


Una vez introducidos los ficheros necesarios, añadiremos una lista de hashes NTLM que queramos crackear. Aquí aparece un "pero", y es que la aplicación falla si importamos los ficheros con algún tipo de estructura compleja del tipo usuer:hash o user:lm:ntlm (como el que podemos obtener al extraer la SAM de un equipo o dumpear un AD); mientras que un hashcat normal importa el fichero sin problemas y se queda con la información que necesita, en este caso, por las modificaciones que hace para repartir el hashlist entre los distintos agentes, peta... por lo que recomendamos únicamente crackear listas con únicamente hashes y posteriormente usar los crackeados en otro equipo para hacer las tuplas usuario-hash-password.

Pues bien, para importar un fichero de hashlist vamos a Lists > New Hashlist y subimos el fichero (o pegamos los hashes) que queramos crackear, indicando el tipo de fichero que queremos crackear, en este caso 1000-NTLM


Tras esto, generamos una nueva tarea yendo a Tasks > New Task e introducimos los datos solicitados: nombre de la tarea, hashlist a crackear, diccionarios y reglas. Hashtopolis nos dejará jugar con más parámetros como el cracker a utilizar o forzar a un uso de sólo CPU, pero para este post nos centraremos en lo básico.


Una vez creada la tarea, únicamente habrá que asignarle agentes para que empiecen a crackear. En este caso, tengo dos equipos en mi casa con los que jugar: Doraemon (un equipo potente) y Nobita (un equipo con 10 años dando caña). Asigno a ambos a esta tarea y Hashtopolis envía los hashcat a ambos equipos, junto con un fragmento del hashlist. Tras esto decomprime el ZIP y ejecuta un benchmark con hashcat en cada uno de ellos, con el objetivo de repartir el hashlist de manera óptima. Tras esto, se lanza en todos los equipos el comando para crackear con hashcat, y lee periódicamente de un fichero .out los hashes crackeados.
¿Veis como Hashtopolis le da casi un 92% del hashlist a Doraemon al tener mejor rendimiento?
Finalmente, podemos ir a la sección Lists > Hashlists, donde podremos ver el estado actual del cracking. En este caso, con una pasada del diccionario Kaonashi14M y las reglas yubaba64 (lo más ligero y rápido) he conseguido crackear 130 de 577 hashes NTLM. Not bad...


La verdad es que la herramienta es muy chula. Además de lo que os he contado, tiene algunos detalles interesantes como indicar que un hashlist contiene datos secretos (con lo cual, únicamente los agentes designados como fiables podrán crackearlo), o asignar grupos de agentes a un usuario determinado, evitando que éste tenga acceso a todos los equipos.

Ya veremos qué tal funciona en un entorno con muchos equipos, os contaré ;)

¡Saludos!

No hay comentarios:

Publicar un comentario