21 ene 2020

Cracking distribuido con Hashtopolis (Parte I)

¡Muy buenas!

¿Quieres crackear más rápido de lo que aguanta un Windows 95 en una CON pero no tienes dinero para ocho GTX 1080? Si la respuesta es sí, ¿tienes varios equipos en tu casa u oficina? Si la respuesta también es sí sigue leyendo, que esto te interesa.

El otro día estaba un compañero crackeando hashes con una 2060 mientras los demás estábamos detrás babeando cuando se me ocurrió una idea: en nuestro equipo tenemos portátiles con GPUs bastante decentes, pero... ¿y si las juntásemos para hacer un crackeo distribuido?

Entonces empecé a mirar distintas herramientas que permitieran esto: Hashview, CrackLord y... Hashtopolis; con la cual decidí hacer pruebas, a ver qué tal.


Hashtopolis es una aplicación cliente-servidor que permite coordinar a una serie de equipos para repartirse la carga de trabajo a la hora de crackear con Hashcat. El servidor está desarrollado en PHP y requiere una serie de prerrequisitos para su correcto funcionamiento (un usuario en MySQL, phpMyAdmin, un servidor Apache, etc.). Para instalar todos los componentes necesarios para que Hashtopolis funcione, deberéis seguir las instrucciones de este enlace, donde incluso hay un vídeo que muestra aún más información sobre pasos a realizar (por ejemplo, aumentando el tamaño máximo de subida de ficheros del servidor Apache).

Una vez tenemos todo listo, descargamos el servidor de Hashtopolis del siguiente enlace o hacemos un clonado del repositorio en GitHub. En cualquier caso, dejaremos los ficheros extraidos en el directorio www del servidor Apache, lo configuramos para que cargue esta aplicación por defecto (se explica en el vídeo) y accedemos desde un navegador.

La primera vez que accedamos, entraremos en un instalador en el cual daremos acceso a la base de datos MySQL que hayamos creado junto con las credenciales que hayamos generado para que use Hashtopolis. Tras esto, rellenará la base de datos con todas las tablas que necesite para funcionar y nos pedirá crear un usuario administrador para la aplicación.

Una vez listo el servidor, podremos añadir distintos clientes (agentes) con los cual podremos crackear de forma distribuida. Para ello, accederemos a Agents > New Agent y descargaremos el fichero hashtopolis.zip que nos dice el servidor. En el equipo que vaya a ser cliente, ejecutamos este fichero con el comando python3 hashtopolis.zip teniendo en cuenta que deberemos tener instalados los paquetes requests y psutils (pip es nuestro amigo). El programa nos pedirá una API URL, que podremos ver en el servidor (debería ser la URL http://IP/api/server.php) y un voucher que deberemos habilitar previamente en el servidor.
¿Veis la API URL y el voucher que se va a validar?
Ya que tenemos la arquitectura cliente(s)-servidor montada, en el próximo post os contaremos cómo se realizaría el crack de un fichero lleno de hashes NTLM de forma distribuida.

¡Saludos!

No hay comentarios:

Publicar un comentario