Muy buenas a todos!

Después de una larga espera, por fin ha llegado la nueva versión de Cloudtopolis. Gracias al éxito de la herramienta y por petición popular, he decidido cerrar el año creando una guía de uso paso a paso, incluyendo las nuevas funciones y algunos ejemplos de uso.

Índice

1. Introducción
2. Requisitos
3. Concepto
4. Pasos previos
5. Google Cloud Platform
6. Cloudtopolis on premise
7. Sistema híbrido
8. Ejemplos y uso básico
9. Funcionalidades extra


1. Introducción

Cloudtopolis es una herramienta multi-plataforma que facilita la instalación y el aprovisionamiento de Hashtopolis en Google Cloud Shell, de forma rápida y completamente desatendida (y gratuita!).

Junto con Google Colaboratory, nos permite romper hashes sin necesidad de hardware dedicado desde cualquier navegador, o incluso, utilizando nuestros propios recursos de forma simultánea.

Para más información, os dejo el link de la herramienta a continuación: https://github.com/JoelGMSec/Cloudtopolis


2. Requisitos

• Bash en sistemas Linux
• Powershell 4.0 o superior en sistemas Windows
• Una cuenta de Google (opcional, pero muy recomendable)


3. Concepto

En criptoanálisis y seguridad informática, el password cracking es el proceso de recuperación de contraseñas a partir de un hash conocido. Para llevarlo a cabo, se comprueba que el valor de una contraseña coincide con el hash de forma consecutiva. Un acercamiento común, es el ataque de fuerza bruta, que consiste en adivinar una contraseña a través de prueba y error.

Un hash es el resultado de una operación criptográfica, que tiene como objetivo codificar cualquier bloque arbitrario de datos en una nueva serie de caracteres con una longitud fija. Independientemente de la longitud de los datos de entrada, el valor del hash de salida siempre tendrá la misma longitud. Estos hashes, nos sirven para asegurar la integridad de los datos, almacenar contraseñas de forma segura y la firma de documentos electrónicos

Algunos de ellos, por poner un ejemplo, son los siguientes:

Actualmente, existen multitud de herramientas para llevar este procedimiento a cabo, pero probablemente, puede que Hashcat sea la utilidad de recuperación de contraseñas más rápida y avanzada del mundo.

Admite cinco modos únicos de ataque para más de 300 algoritmos altamente optimizados. Para llevar a cabo el proceso de recuperación, Hashcat admite CPU, GPU y otros aceleradores de hardware en Linux, Windows y macOS, y tiene instalaciones para ayudar a habilitar el descifrado distribuido de contraseñas.

De esta forma, Hashtopolis aprovecha la posibilidad de trabajar de forma distribuida con Hashcat, multiplicando así su potencia por el número de agentes que estén trabajando de forma simultánea, independientemente de la capacidad de cómputo que aporte cada uno de ellos.

Gracias a esto, Cloudtopolis nace con la idea de automatizar todo este proceso, añadiendo a la fórmula todos los recursos disponibles que el usuario pueda disponer, sean locales o en la nube, de forma gratuita o de pago.


4. Pasos previos

Antes de utilizar Cloudtopolis, es necesario plantear el tipo de ejecución deseado:

• En primer lugar, disponemos de la opción predeterminada (Cloud) a través de los recursos de Google Cloud Platform.

• En segundo lugar, podemos utilizar nuestro propio equipo físico o virtual, o incluso, un servidor VPS si disponemos de él.

• Por último, existe la opción híbrida, que nos permite utilizar ambas tecnologías de forma simultánea, consiguiendo así un mayor poder de cálculo.


5. Google Cloud Platform


Actualmente, Google ofrece todo tipo de servicios en la nube. Al igual que sus principales competidores, algunos de forma gratuita, otros de pago fijo, e incluso, de pago por uso. En este caso, nos centraremos en dos productos en concreto, Google Cloud Shell y Google Colaboratory.

Primero comenzaremos hablando de la parte cliente. Para ello, usaremos Colaboratory (o Colab para los amigos). Este servicio en la nube, nos permite jugar con un entorno de máquinas virtuales basado en Jupyter Notebooks. Estos cuadernos, pueden alojar pequeños trozos de código y ejecutarse a petición. Una de las grandes ventajas que ofrece este entorno, es que dispone de aceleración a través de CPU, GPU y TPU de forma gratuita.

Como todos los servicios gratuitos de Google, necesitaremos una cuenta y se nos aplicará una restricción, en este caso concreto, basada en tiempo. Existen dos factores a tener en cuenta, el primero será la inactividad de la sesión y por último un tiempo máximo de 12 horas, que eliminará por completo el contenido de la máquina virtual.

De esta forma y mientras no haya inactividad, podremos romper hashes a placer sin ningún tipo de problema. Además, el entorno ofrece diferentes tarjetas gráficas de NVIDIA (que se otorgan de forma aleatoria) con una potencia bastante alta. Entre ellas, tenemos la K80, la T4, la P4 y la P100 por nombrar algunas.

Para la parte servidor, utilizaremos Google Cloud Shell. Este producto, también gratuito, nos permite interactuar con los servicios Cloud que ofrece Google. De esta forma, disponemos de una máquina virtual basada en Debian con 5GB de almacenamiento persitente. En este caso concreto, solo de algunas particiones, en las que se incluye la ruta «home» del usuario.

En cuanto a lo que limitaciones se refiere, disponemos de 50 horas de ejecución a la semana, en la que nuestra máquina virtual desaparecerá tras 20 minutos al cerrar sesión. Además, podemos instalar paquetes a través de apt-get, ejecutar scripts o levantar containers con docker.

Ahora que ya tenemos un concepto claro de lo que nos ofrece Google de forma gratuita, veamos que podemos hacer con ello. O mejor dicho, veamos que podemos con Cloudtopolis.

El uso de esta herramienta es muy sencilla. Consta de dos partes (cliente y servidor), que usaremos en dos fases. En cada una de ellas, interactuaremos con cada uno los servicios mencionados anteriormente. Antes de comenzar, será indispensable disponer de una cuenta en Google (como mínimo).

Para la parte servidor, lo primero que haremos será acceder al siguiente enlace desde nuestro navegador: https://ssh.cloud.google.com/cloudshell/editor?hl=es&fromcloudshell=true&shellonly=true

Si nunca habéis utilizado Cloud Shell, os saldrá un aviso como el que se muestra a continuación:

Una vez aceptamos las condiciones de uso, ejecutaremos el siguiente comando en la terminal:

curl https://raw.githubusercontent.com/JoelGMSec/Cloudtopolis/master/Cloudtopolis.sh | bash

Esto descargará el primer script, que a su vez, descargará dos contenedores de docker, como podemos ver en la siguiente imagen:

Estos contenedores, instalarán una base de datos MySQL y una instancia de Hashtopolis. Para aquellos que no lo conozcan, se trata de un «framework» gestionado vía web, que nos permite utilizar Hashcat de forma centralizada y distribuida a través de los agentes que se registrarán en este servidor.

Una vez terminada la instalación, el script nos mostrará los datos de acceso y las credenciales:

A partir de aquí, si hacemos click sobre la dirección url que nos aparece en la terminal, utilizaremos el proxy interno de Google para acceder a Hashtopolis desde el navegador, sin tener que utilizar ningún tipo de cliente SSH.

Esto nos permitirá, entre otras cosas, hacerlo desde un dispositivo móvil o desde un equipo sin privilegios ni posibilidad de instalar ningún tipo de cliente SSH o tener que levantar ningún túnel.

Una vez estemos dentro del panel de administración, será necesario crear un nuevo Voucher para poder registrar un nuevo agente, que será el que romperá los hashes que le hayamos indicado posteriormente.

Para ello, es tan secillo como ir a la siguiente dirección: http://localhost:8000/agents.php?new=true

Una vez dentro, pulsaremos sobre el botón «Create» y copiaremos el código alfanumérico que se ha generado de forma aleatoria:

Es importante que mantengamos la ventana de la terminal y la de Hashtopolis abierta en todo momento, para evitar que Google nos destruya la máquina virtual por inactividad.

Con esto damos por concluida la primera fase, que no será necesaria repetir a no ser que lo cerremos todo. Este dato es importante, ya que la segunda fase, puede repetirse tantas veces como se desee, siempre y cuando se disponga de una cuenta de Google diferente por cada ejecución.

Para la parte cliente, accederemos al siguiente cuaderno de Colaboratory: https://colab.research.google.com/github/JoelGMSec/Cloudtopolis/blob/master/Cloudtopolis.ipynb

Una vez dentro, lo único que tendremos que hacer, es rellenar los campos de la sección «Requirements» con los datos obtenidos en la terminal y el Voucher que ya habíamos copiado anteriormente.

Una vez tengamos todos los datos, pulsaremos sobre el icono con forma de play o desde el menú de ejecución. Esto creará una nueva instancia de máquina virtual, le asignará una GPU aleatoria y ejecutará el código de Cloudtopolis.

A continuación, esta máquina se conectará con Hashtopolis a través de SSH. De esta forma, a diferencia de lo que ocurre en otras soluciones basadas en Colab, ahorraremos mucho tiempo al desplegar los cuadernos, ya que no necesitaremos descargar ningún tipo de herramienta en la máquina virtual ni compilarla.

Esto, nos permitirá centralizar todos los binarios, diccionaros y demás utiles a través de Hashtopolis en un único lugar. Además, contamos con la posibilidad de registrar tantos agentes como queramos. Para ello, lo único que tendremos que hacer, es repetir la segunda fase con otra cuenta de Google.

Si el agente no se registra correctamente, es recomendable eliminar el Voucher, crear uno nuevo y repetir la segunda fase. Mientras la página de Colab esté activa, no se perderán los diccionarios descargados.

Es decir, si dispones de cuatro cuentas de Google, puedes utilizar la primera para realizar las dos fases y posteriormente, utilizar las otras tres para ejecutar la segunda parte con cada una de ellas. También existe la posiblidad de compartir tus datos con amigos o compañeros de confianza, haciendo que cada uno de ellos registre un agente diferente con su propia cuenta.

Una vez termianda la ejecución del cuaderno, esté quedará en un estado de «bucle infinito» que evitará que la máquina virtual se detenga por inactividad. Además, podremos consultar el estado de las tareas y la velocidad de proceso en cada uno de los cuadernos.

Por último, solo nos quedará confirmar que el agente se ha registrado correctamente. A partir de aquí, crearemos una tarea en Hashtopolis, seleccionaremos los agentes y todo funcionará como por arte de magia.

En caso de tener problemas con los agentes de Colab, es recomendable crear un nuevo cuaderno en blanco y copiar el código de Cloudtopolis en él. Una vez copiado, el procedimiento es idéntico al descrito en esta guía.

Como dato adicional, por ahora Google solo bloquea las cuentas que utilizan este servicio para minar criptomonedas. Pese a ello, no descarto que un futuro no muy lejano, este proceso no cumpla con las buenas prácticas de Google.

En cualquier caso, os recomiendo que leáis los terminos y condiciones de estos servicios regularmente.


6. Cloudtopolis on premise


Hasta la llegada de las tecnologías en la nube (y sobretodo la asequibilidad de las mismas), los procesos de password cracking se limitaban a los recursos físicos al alcance del usuario. Concretamente, hablamos de las GPU’s, ya que son las que disponen de «potencia bruta» al realizar este tipo de operaciones criptográficas.

Ya que prácticamente cualquier GPU puede servirnos para este propósito, era un desperdicio no poder utilizar estos recursos en Cloudtopolis. No importa si se trata de una empresa, un usuario doméstico o un entusiasta. Casi con total seguridad, podrás utilizar alguno de estos recursos de una forma fácil y sencilla.

Además, si no dispones de ninguna tarjeta a tu alcance, siempre puedes pedir ayuda a tus amigos, compañeros de trabajo o familiares para que se unan a tu ejército de agentes en Cloudtopolis 😜

En primer lugar, os explicaré el funcionamiento de este escenario desde Windows. Para ello contamos con dos scripts, uno hará de cliente (con nuestra potencia gráfica) y el otro de servidor, que ejecutará una instancia de Cloud Shell a través de SSH.

Empezando por el servidor, lo único que tendremos que hacer es ejecutar el siguiente comando en una consola de PowerShell o CMD:

powershell -ep bypass "cd $env:temp ; iwr -useb https://raw.githubusercontent.com/JoelGMSec/Cloudtopolis/master/Resources/Server/Cloudtopolis_Server.ps1 -outfile Cloudtopolis_Server.ps1 ; .\Cloudtopolis_Server.ps1"

Una vez ejecutado el comando, se descargarán las dependencias necesarias para la instalación de Google Cloud SDK, se solicitarán credenciales (solo la primera vez) y se creará la configuración necesaria para poder ejecutar Cloudtopolis de forma remota:

Una vez se ejecute el código de este script, el proceso es exactamente el mismo que en el caso anterior. De nuevo, para acceder a Hashtopolis lo haremos desde la siguiente dirección en nuestro navegador: http://localhost:8000

Terminada la instalación, la próxima vez que ejecutemos el script, solo tardará un minuto aproximadamente en levantar el servidor de Cloudtopolis, y no será necesario introducir ningún tipo de credencial:

Ahora que ya tenemos el servidor en ejecución, podemos continuar con la parte cliente. Para esta parte, tenemos dos opciones disponibles (al igual que en Colab), conectarnos a nuestro servidor de Google Cloud Shell o a un servidor propio a través de SSH.

La ejecución del cliente es completamente trivial, simplemente ejecutaremos el siguiente comando en nuestra consola de PowerShell o CMD:

powershell -ep bypass "cd $env:temp ; iwr -useb https://raw.githubusercontent.com/JoelGMSec/Cloudtopolis/master/Resources/Client/Cloudtopolis_Client.ps1 -outfile Cloudtopolis_Client.ps1 ; .\Cloudtopolis_Client.ps1"

Una vez el cliente se encuentre en ejecución, solo tendremos que introducir el Voucher (al igual que hacíamos en Colab) y configurar las opciones que más nos interesen:

A partir de este punto, es donde le indicaremos al programa si queremos conectarnos a nuestro servidor remoto o por el contrario lo haremos por SSH. Si dejamos la opción (por defecto) «VPS Mode» en falso, el programa se conectará al servidor que hemos levantado anteriormente de forma automática:

Si por el contrario, queremos conectarnos a un servidor SSH, lo único que tendremos que hacer es cambiar el valor anterior a verdadero y introducir las opciones necesarias en «VPS Options» tal y como se muestra a continuación:

Todas las opciones introducidas en el cliente, así como los diccionarios y las reglas, se almacenarán de forma persistente en el equipo, en el directorio Cloudtopolis (desde la ruta donde se ejecutó el script por primera vez).

Es recomendable descargar el script y guardarlo en una ruta estática, de esta forma evitaremos perder información al ejecutar el script desde un directorio diferente por error.

Ahora pasaremos al mundo Linux. De nuevo, disponemos de las dos opciones clásicas (cliente y servidor) pero en este caso, disponemos de una alternativa extra. En primer lugar, y como podemos ver en la siguiente imagen, el cliente es totalmente idéntico al de Windows:

Ya que no existen diferencias de funcionalidad entre los mismos (a excepción del formato), no será necesario explicarlo nuevamente. A continuación, os dejo los comandos necesarios para ejecutarlos a través de la consola respectivamente:

# Parte Cliente
curl https://raw.githubusercontent.com/JoelGMSec/Cloudtopolis/master/Resources/Client/Cloudtopolis_Client.sh | bash

# Parte Servidor
curl https://raw.githubusercontent.com/JoelGMSec/Cloudtopolis/master/Resources/Server/Cloudtopolis_Server.sh | bash

Ahora que tenemos claro como funcionan los scripts tanto en Windows como en Linux, vamos a ver el último caso de uso.

Tal y como hemos visto en el primer ejemplo a través de Google Cloud Shell, el script «inicial» es capaz de levantar la infraestructura necesaria para que Hashtopolis funcione correctamente. Este mismo script, podemos ejecutarlo en cualquier sitema Linux (actualmente solo los que estén basados en Debian/Ubuntu) para crear una instancia local.

Es decir, si ejecutamos el primer comando en nuestro propio Linux, o bien en un servidor VPS del que dispongamos acceso, podremos tener nuestro propio servidor de Cloudtopolis sin ningún tipo de limitación por tiempo y sin compartir ningún tipo de información con Google.

A continuación os dejo de nuevo el comando en cuestión:

curl https://raw.githubusercontent.com/JoelGMSec/Cloudtopolis/master/Cloudtopolis.sh | bash

Una vez ejecutado el script, este detectará de forma automática que se encuentra fuera del entorno «Cloud» y creará un acceso SSH temporal, con credenciales totalmente aleatorias:

De esta forma, solo necesitaremos copiar esos datos e introducirlos en nuestros clientes, independientemente de si lo hacemos en Colab, en Windows o en Linux.


7. Sistema híbrido

Una de las novedades más importantes de la nueva versión de Cloudtopolis, es la capcidad de trabajo híbrido. Es decir, ahora que podemos ejecutar clientes y servidores tanto en la nube como en local, podemos elegir la forma más óptima de utilizar la herramienta.

Por ejemplo, puede que dispongamos de un PC con una GPU muy potente, pero no queremos montar ninguna máquina virtual y simplemente queremos romper algunos hashes de forma puntual (en un CTF, Hack the Box, etc..). De esta forma, ejecutaríamos el script «cliente» en nuestro equipo y el servidor de Cloudtopolis se encontraría en Google Cloud Shell.

Ahora imaginemos el caso contrario, tenemos un VPS y no queremos tener problemas de limitación de tiempo, o simplemente queremos exponer la mínima información posible en los servidores de Google. De esta forma, ejecutaríamos los clientes en Colab y se conectarían a nuestro servidor a través de SSH.

Las opciones, como podéis comprobar, son infinitas. Adicionalmente, podemos añadir todos los agentes que queramos a nuestro servidor de Cloudtopolis, sin importar donde se esté ejecutando el servidor ni los clientes.


8. Ejemplos y uso básico

En esta sección, os explicaré brevemente el funcionamiento de Hashtopolis una vez tengamos funcionando a nuestro cliente y a nuestro servidor. También veremos algunas funciones importantes y cosas a tener en cuenta.

En primer lugar, es importante tener en cuenta que todas nuestras operaciones de password cracking, siempre se realizarán a través de la aplicación web de Hashtopolis. No importará en ningún caso, el tipo de cliente ni el tipo de servidor que estés utilizando.

En un futuro, se incorporará el soporte a través de línea de comandos. Por ahora, todo se gestionará de esta forma por facilidad de uso y compatibilidad (de esta forma, puedes hacerlo desde tu smartphone o tablet si lo prefieres).

Como punto de partida, vamos a suponer que ya tenemos nuestro cliente y nuestro servidor en ejecución. Hemos creado un voucher y nuestro agente se encuentra registrado correctamente. Si hemos utilizado la configuración por defecto, deberíamos de tener también el diccionario «rockyou.txt» descargado en nuestro cliente.

Ahora vamos a suponer, que hemos conseguido algunos hashes durante un ejercicio de Red Team (del tipo NTLM) y queremos romperlos. Para hacerlo, lo haremos de diferentes formas, utilizando diccionarios, fuerza bruta y reglas.

En primer lugar, lo que haremos será crear una nueva hashlist donde guardaremos todos esos hashes que hemos obtenido. Esto lo haremos desde Lists > New hashlist:

A continuación, le pondremos un nombre (para identificarlo del resto de listas que vayamos subiendo) y seleccionaremos el tipo de hash. Esta parte es la más importante, ya que si seleccionamos un tipo de hash diferente, no podremos romperlos.

Existen multitud de formas de identificar un hash. Si utilizáis Kali Linux, disponéis de forma nativa de la herramienta hash-identifier para comprobarlo.

Una vez seleccionado el tipo de hash, el siguiente paso es subirlo de la forma que más os convenga. En mi caso, simplemente los pegaré en la casilla correspondiente y guardaré los cambios:

Una vez guardada la lista, crearemos una tarea, que será la responsable de ejecutar el proceso de password cracking en cada uno de los agentes que hayamos seleccionado.

Nuevamente, esto lo haremos desde Tasks > New Task. A continuación, le pondremos un nombre a la tarea (para identificarla del resto, igual que ocurría con la hashlist) y seleccionaremos nuestra hashlist.

Ahora, introduciremos el comando que queremos ejecutar en hashcat para que se ejecute en cada uno de los agentes. Ya que existen multitud de guías en internet al respecto, no me explayaré con el uso de esta herramienta.

A continuación, os dejo algunos ejemplos de los comandos que yo suelo utilizar normalmente:

# Ataques de fuerza bruta con máscara
-a 3 -w 4 -O #HL# ?u?l?l?l?l?l?d?d
-a 3 -w 4 -O #HL# -1 ?l?u?d ?1?1?1?1?1?1?1?1

# Ataques de diccionario con Rockyou
-a 0 -w 4 -O #HL# /content/rockyou.txt
-a 0 -w 4 -O #HL# /content/rockyou.txt -r /content/OneRuleToRuleThemAll.rule

# Ataques de diccionario con Kaonashi
-a 0 -w 4 -O #HL# /content/kaonashi.txt
-a 0 -w 4 -O #HL# /content/kaonashi.txt -r /content/OneRuleToRuleThemAll.rule

Cómo podéis ver en estos comandos, el contenido de los diccionarios siempre se guardará en la carpeta «content» por defecto. Si utilizáis un diccionario propio o en una ruta diferente, tendréis que indicarla en este punto.

Es muy importante tener en cuenta que todos los agentes tendrán que disponer del mismo diccionario en la misma ruta exacta, de lo contrario el proceso de password cracking fallará.

En este ejemplo, ejecutaré un «ataque de diccionario» con rockyou sobre los hashes que he subido anteriormente:

Por último, guardaré la tarea y se la asignaré a los agentes disponibles. Para ello, una vez creada la tarea, solo hay que entrar en la misma y pulsar el botón de «Assign» tal y como se muestra a continuación:

Por último, solo tendremos que entrar a la tarea para ver el progreso de la misma y esperar que los agentes hagan su trabajo 😋

En mi caso, tras terminar la primera tarea, ha sido posible romper uno de los tres hashes NTLM:

Para la siguiente prueba, vamos a realizar el mismo proceso, pero esta vez vamos a realizar un ataque de fuerza bruta. En mi caso, utilizaré el segundo ejemplo (8 dígitos alfanuméricos, con mayúsculas minúsculas y números):

Adicionalmente, siempre podéis seguir la potencia de cada uno de los agentes de forma singular en la ventana de ejecución del mismo, independientemente de si usáis Colab o un cliente para Windows o Linux:

Por último, utilizaremos la regla «OneRuleToRuleThemAll» junto a rockyou para romper el último hash que nos queda:

Si todo ha ido bien, en la pestaña de «Tasks» podremos ver el resultado de cada una de ellas, así como el progreso de las tareas que se estén ejecutando en ese momento:

Si una tarea se prolonga durante mucho tiempo, Cloudtopolis guardará el estado de la misma y continuará cuando vuelva a arrancar. De esta forma, podremos estar semanas, o incluso meses, rompiendo el mismo hash sin ningún tipo de problema, incluso si los agentes van cambiando.

Por último, si hacemos click sobre cualquiera de los «Cracked», podremos ver el resultado del hash en texto plano:


9. Funcionalidades extra

A pesar de la simplicidad de la herramienta, existen algunos conceptos a tener en cuenta, que pueden ayudarnos a mejorar la experiencia de uso de la misma.

Migración de datos entre servidores

Una de las bondades de Cloudtopolis, es el hecho de que toda la información y el trabajo que estemos haciendo se guardará de forma persistente en el servidor (dentro de la carpeta llamada Cloudtopolis).

Ahora bien, que sucede si voy a perder acceso a mi servidor VPS (supongamos un cambio de proveedor) o las 50 horas de uso semanales de Google Cloud Shell se están agotando?

Pues es tan sencillo como copiar esa carpeta a otro servidor (en el caso de Cloud Shell, copiarla a otra cuenta de Google) y volver a lanzar el script.

De esta forma, nunca llegaremos al límite de uso y nunca perderemos nuestra información ni las tareas que estén pendientes de terminar.

Migración de datos entre clientes

En el caso de la configuración del cliente, existen ligeras diferencias entre los sitemas Windows y Linux, ya que cada lenguaje de programación, dispone de diferentes métodos para declarar variables.

En cualquier caso, esto no será un problema para el usuario, ya que solo necesitaremos copiar la carpeta Cloudtopolis al nuevo sistema operativo y lanzar el script. Esto mantendrá nuestros diccionarios descargados, la configuración del cliente, las credenciales de SSH y cualquier otra cosa que hayamos configurado.

Esto es posible gracias a que, cada cliente, comprobará inicialmente si el formato de la configuración es válida antes de comenzar con la ejecución del mismo, adaptando el formato en caso de ser necesario.

Usando otros proveedores

Actualmente, existen multitud de proveedores que proporcionan infraestructuras similares a las de Google, tanto de forma gratuita como de pago.

Por ejemplo, podríamos utilizar la shell de Azure desde https://shell.azure.com como servidor. También podríamos utilizar un cuaderno de Kaggle desde https://www.kaggle.com/code/welcome como cliente.

Probablemente, la mayoría del código de Cloudtopolis funcionaría sin ningún problema. Básicamente, las tecnologías utilizadas por estos productos, se basan en la mismas que utiliza Google (Bash y Python respectivamente).

En las próximas versiones, se añadirán nuevos proveedores (tanto gratuitos como de pago) y se automatizará igualmente el proceso de comunicación y configuración contra los mismos.

Como conclusión final, Cloudtopolis pretende ser una herramienta muy versátil, facilitando el proceso de password cracking independientemente de los recursos de los que dispongamos.

Aquí termina esta extensa (pero bastante completa) guía de uso. Espero que os haya gustado y os resulte útil en vuestras próximas auditorías 🙂

Nos vemos en la próxima!