Saltar al contenido
Portada » Blog – Laprovittera Carlos » TryHackMe – Gobuster: The Basics

TryHackMe – Gobuster: The Basics

Hola hacketones! Bienvenidos a un nuevo CTF para la Certificación SEC1 de la ruta Cyber Security 101 de TryHackMe – Gobuster: The Basics

Tarea 3 Gobuster: Introducción

Gobusteres una herramienta ofensiva de código abierto escrita en Golang. Enumera directorios web,DNSsubdominios, hosts virtuales, AmazonS3buckets y Google Cloud Storage por fuerza bruta, usando listas de palabras específicas y manejando las respuestas entrantes. Muchos profesionales de la seguridad usan esta herramienta para pruebas de penetración, búsqueda de recompensas por errores y evaluaciones de ciberseguridad. Al observar las fases del hacking ético, podemos ubicarGobusterentre las fases de reconocimiento y exploración.

Antes de explorarGobusterAnalicemos brevemente los conceptos de enumeración y fuerza bruta.

Enumeración

La enumeración es el acto de listar todos los recursos disponibles, sean accesibles o no. Por ejemplo,Gobusterenumera los directorios web.

Fuerza bruta

La fuerza bruta consiste en probar todas las posibilidades hasta encontrar una que coincida. Es como tener diez llaves y probarlas todas en una cerradura hasta que una encaje.GobusterUtiliza listas de palabras para este propósito.

Gobuster: Descripción general

Gobusterviene incluido por defecto en distribuciones como KaliLinux. Empecemos por analizarGobusterPágina de ayuda. Esta página de ayuda nos ofrece una buena visión general de sus funcionalidades y opciones.

Introduzca el siguiente comando: gobuster –help. Debería obtener la página de ayuda para elGobusterherramienta como se muestra a continuación:

Terminal AttackBox

root@tryhackme:~#gobuster –helpUsage:
  gobuster [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  dir         Uses directory/file enumeration mode
  dns         Uses DNS subdomain enumeration mode
  fuzz        Uses fuzzing mode. Replaces the keyword FUZZ in the URL, Headers and the request body
  gcs         Uses gcs bucket enumeration mode
  help        Help about any command
  s3          Uses aws bucket enumeration mode
  tftp        Uses TFTP enumeration mode
  version     shows the current version
  vhost       Uses VHOST enumeration mode (you most probably want to use the IP address as the URL parameter)

Flags:
      –debug                 Enable debug output
      –delay duration        Time each thread waits between requests (e.g. 1500ms)
  -h, –help                  help for gobuster
      –no-color              Disable color output
      –no-error              Don’t display errors
  -z, –no-progress           Don’t display progress
  -o, –output string         Output file to write results to (defaults to stdout)
  -p, –pattern string        File containing replacement patterns
  -q, –quiet                 Don’t print the banner and other noise
  -t, –threads int           Number of concurrent threads (default 10)
  -v, –verbose               Verbose output (errors)
  -w, –wordlist string       Path to the wordlist. Set to – to use STDIN.
      –wordlist-offset int   Resume from a given position in the wordlist (defaults to 0)

Use «gobuster [command] –help» for more information about a command.

La página de ayuda contiene varias secciones:

  • Uso: Muestra la sintaxis para usar el comando.
  • Comandos disponibles: Hay varios comandos disponibles para ayudarnos a enumerar directorios, archivos,DNSsubdominios, depósitos de Google Cloud Storage y AmazonAWS S3cubos. A lo largo de esta sala, nos centraremos en los comandos dir, dns, y vhost. Cubriremos cada uno de ellos en las siguientes tareas.
  • Opciones: Son opciones específicas que podemos configurar para personalizar nuestros comandos. Veamos las opciones que usaremos con frecuencia en esta sala:
Bandera cortaBandera largaDescripción
-t–threadsEste parámetro configura el número de subprocesos que se utilizarán para el escaneo. Cada subproceso envía solicitudes con un ligero retardo. El número predeterminado de subprocesos es 10. Este número puede resultar lento al usar listas de palabras extensas. Puede aumentar o disminuir el número de subprocesos según los recursos del sistema disponibles.
-w–wordlistEste indicador configura una lista de palabras para usar en la iteración. Cada entrada de la lista de palabras se adjunta a la URL que incluyó en el comando.
 –delayEste indicador define el tiempo de espera entre el envío de solicitudes. Algunos servidores web incluyen mecanismos para detectar la enumeración, analizando cuántas solicitudes se reciben en un período de tiempo determinado. Podemos aumentar el retraso entre solicitudes consecutivas para que parezca tráfico web normal.
 –debugEsta bandera nos ayuda a solucionar problemas cuando nuestro comando arroja errores inesperados.
-o–outputEsta opción escribe los resultados de la enumeración en un archivo que nosotros elijamos.

Ejemplo

Veamos un ejemplo de cómo usaríamos estos comandos y opciones juntos para enumerar un directorio web:

gobuster dir -u «http://www.example.thm/» -w /usr/share/wordlists/dirb/small.txt -t 64

  • gobuster dirindica que utilizaremos el modo de enumeración de directorios y archivos.
  • -u «http://www.example.thm/«le indica a Gobuster que la URL de destino eshttp://ejemplo.ellos/(Se abre en una pestaña nueva).
  • -w /usr/share/wordlists/dirb/small.txtdirigeGobusterutilizar la lista de palabras small.txt para realizar un ataque de fuerza bruta en los directorios web.Gobusterutilizará cada entrada de la lista de palabras para formar una nueva URL y enviar una solicitud GET a esa URL. Si la primera entrada de la lista de palabras fueran imágenes,Gobusterenviaría una solicitud GET a http://example.thm/images/.(Se abre en una pestaña nueva)
  • -t 64establece el número de hilosGobusterSe utilizará hasta 64. Esto mejora drásticamente el rendimiento.

Ahora que tenemos una breve descripción general deGobusterExploremos los diferentes modos y sus casos de uso en las siguientes tareas.

Responda las siguientes preguntas

¿Qué indicador utilizamos para especificar la URL de destino?

-u

¿Qué comando utilizamos para el modo de enumeración de subdominios?

dns

Tarea 4 Caso de uso: Enumeración de directorios y archivos

GobusterTiene un dirmodo que permite a los usuarios enumerar los directorios de un sitio web y sus archivos. Este modo es útil al realizar una prueba de penetración y querer ver la estructura de directorios de un sitio web y los archivos que contiene. A menudo, las estructuras de directorios de sitios web y aplicaciones web siguen una convención particular, lo que las hace vulnerables a ataques de fuerza bruta mediante listas de palabras. Por ejemplo, la estructura de directorios en el servidor web que aloja WordPress se ve así:

Terminal AttackBox

root@tryhackme:~#tree -L3-d.
└── html
    └── wordpress
        ├── wp-admin
        ├── wp-content
        └── wp-includes

Gobuster es potente porque permite escanear el sitio web y obtener los códigos de estado. Estos códigos indican de inmediato si, como usuario externo, puedes solicitar ese directorio o no.

Ayuda

Si desea obtener una descripción general completa de lo que dirpuede ofrecer el comando Gobuster, puede consultar la página de ayuda. Ver la extensa página de ayuda para el comando dir puede resultar un tanto intimidante. Por lo tanto, en esta sala nos centraremos en las opciones más esenciales. Escriba el siguiente comando para mostrar la ayuda: gobuster dir –help.

Se utilizan muchas opciones para ajustar el gobuster dircomando. Analizar cada una de ellas está fuera del alcance de este artículo, pero en la tabla siguiente, hemos enumerado las opciones que cubren la mayoría de los escenarios:

BanderaBandera largaDescripción
-c–cookiesEsta opción configura una cookie para que se transmita con cada solicitud, como por ejemplo un ID de sesión.
-x–extensionsEste indicador especifica qué extensiones de archivo desea escanear. Por ejemplo, .php, .js
-H–headersEste indicador configura un encabezado completo que se enviará con cada solicitud.
-k–no-tls-validationEsta bandera omite el proceso que verifica el certificado cuando se usa https. A menudo sucede que en eventos CTF o salas de pruebas como las de THM se utiliza un certificado autofirmado. Esto provoca un error durante elTLScontrolar.
-n–no-statusPuedes activar esta opción si no deseas ver los códigos de estado de cada respuesta recibida. Esto ayuda a mantener la información en pantalla más clara.
-PpasswordPuedes usar esta opción junto con la opción –username para ejecutar solicitudes autenticadas. Esto resulta útil cuando has obtenido las credenciales de un usuario.
-s–status-codesCon esta opción, puede configurar qué códigos de estado de las respuestas recibidas desea mostrar, como por ejemplo 200, o un rango como 300-400.
-b–status-codes-blacklistEsta opción permite configurar qué códigos de estado de las respuestas recibidas no se desean mostrar. Al configurar esta opción, se anula la opción -s.
-U–usernamePuedes configurar esta opción junto con la –passwordopción para ejecutar solicitudes autenticadas. Esto resulta útil cuando has obtenido las credenciales de un usuario.
-r–followredirectEsta opción configura Gobuster para que siga la redirección recibida como respuesta a la solicitud enviada. Se utiliza un código de estado de redirección HTTP (por ejemplo, 301 o 302) para redirigir al cliente a una URL diferente.

Cómo usar el modo dir

Para ejecutar Gobuster en dirmodo, utilice el siguiente formato de comando:

gobuster dir -u «http://www.example.thm» -w /path/to/wordlist

Observe que el comando también incluye las banderas -uy -w, además de la dirpalabra clave . Estas dos banderas son necesarias para que funcione la enumeración de directorios de Gobuster. Veamos un ejemplo práctico de cómo enumerar directorios y archivos con direl modo Gobuster:

gobuster dir -u «http://www.example.thm» -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -r

Este comando escanea todos los directorios ubicados en www.example.ellosutilizando la lista de palabras directory-list-2.3-medium.txt . Analicemos con más detalle cada parte del comando:

  • gobuster dir: ConfiguraGobusterpara utilizar el modo de enumeración de directorios y archivos.
  • -u http://www.example.thm:
    • La URL será la ruta base donde Gobuster comenzará a buscar. Por lo tanto, la URL anterior utiliza el directorio web raíz. Por ejemplo, en una instalación típica de Apache en Linux, esto es /var/www/html. Entonces, si tiene un directorio «resources» y desea enumerar ese directorio, establecería la URL como http://www.example.thm/resources. También puede pensar en esto como http://www.example.thm/path/to/folder.
    • La URL debe contener el protocolo utilizado, en este caso,HTTPEsto es importante y obligatorio. Si se utiliza el protocolo incorrecto, el escaneo fallará.
    • En la sección «host» de la URL, puede ingresar la dirección IP o el nombre de host. Sin embargo, es importante mencionar que al usar la IP, podría acceder a un sitio web diferente al deseado. Un servidor web puede alojar varios sitios web con una sola IP (esta técnica también se conoce como alojamiento virtual). Si desea mayor seguridad, utilice el nombre de host.
    • Gobuster no realiza enumeraciones recursivas. Por lo tanto, si los resultados muestran una ruta de directorio que le interesa, tendrá que enumerar ese directorio específico.
  • -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txtconfiguraGobusterSe utiliza la lista de palabras directory-list-2.3-medium.txt para realizar la enumeración. Cada entrada de la lista de palabras se añade a la URL configurada.
  • -rConfigura Gobuster para que siga las respuestas de redirección recibidas de las solicitudes enviadas. Si se recibe un código de estado 301, Gobuster navegará a la URL de redirección incluida en la respuesta.

Veamos un segundo ejemplo donde usamos la -xbandera para especificar qué tipo de archivos queremos enumerar:

gobuster dir -u «http://www.example.thm» -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.js

Este comando buscará directorios ubicados enhttp://ejemplo.ellos(Se abre en una pestaña nueva)utilizando la lista de palabras directory-list-2.3-medium.txt . Además delistado del directorio, este comando también enumera todos los archivos que tienen un .PHPo extensión .js.

Responda las siguientes preguntas

¿Qué indicador debemos agregar a nuestro comando para omitir la verificación TLS? Ingrese la notación completa del indicador.

–no-tls-validation

Enumera los directorios de www.offensivetools.thm. ¿Qué directorio te llama la atención?

secret

Continúa enumerando el directorio que encontraste en la pregunta 2. Allí encontrarás un archivo interesante con extensión .js. ¿Qué indicador contiene este archivo?

THM{ReconWasASuccess}

Tarea 5 Caso de uso: Enumeración de subdominios

El siguiente modo en el que nos centraremos es el dnsmodo. Este modo permite a Gobuster realizar ataques de fuerza bruta contra subdominios. Durante una prueba de penetración, es fundamental revisar los subdominios del dominio principal del objetivo. El hecho de que algo esté parcheado en el dominio principal no significa que también lo esté en el subdominio. Puede existir una oportunidad para explotar una vulnerabilidad en uno de estos subdominios. Por ejemplo, si TryHackMe posee tryhackme.thm y mobile.tryhackme.thm , puede haber una vulnerabilidad en mobile.tryhackme.thm que no esté presente en tryhackme.thm . ¡Por eso es importante buscar también en los subdominios!

Ayuda

Si quieres una descripción completa de lo que es GobusterDNSPara obtener más información sobre el comando, consulte la página de ayuda. Ver la extensa página de ayuda del dnscomando puede resultar intimidante. Por lo tanto, nos centraremos en las opciones más importantes en esta sala. Escriba el siguiente comando para mostrar la ayuda:gobuster dns –help

Este dnsmodo ofrece menos opciones que el dirotro. Sin embargo, son más que suficientes para cubrir la mayoría de los escenarios de enumeración de subdominios DNS. Veamos algunas de las opciones más utilizadas:

BanderaBandera largaDescripción
-c–show-cnameMostrar registros CNAME (no se puede usar con la -ibandera).
-i–show-ipsIncluir este indicador muestra las direcciones IP a las que se resuelven el dominio y los subdominios.
-r–resolverEsta opción configura un servidor DNS personalizado para la resolución de nombres.
-d–domainEste indicador configura el dominio que desea enumerar.

Cómo usar el modo DNS

Para ejecutar Gobuster en modo DNS, utilice la siguiente sintaxis de comando:

gobuster dns -d example.thm -w /path/to/wordlist

Observe que el comando también incluye las banderas -dy -w, además de la dnspalabra clave. Estas dos banderas son necesarias para que funcione la enumeración de subdominios de Gobuster. Veamos un ejemplo de cómo enumerar subdominios con Gobuster. DNS modo:

gobuster dns -d example.thm -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt

  • gobuster dnsEnumera los subdominios en el dominio configurado.
  • -d example.thmEstablece el objetivo en el ejemplo.ellosdominio.
  • -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txtestablece la lista de palabras en subdominios-top1million-5000.txt . Gobuster utiliza cada entrada de esta lista para construir una nuevaDNSconsulta. Si la primera entrada de esta lista es ‘all’, la consulta sería all.example.thm.

Introdúzcalo usted mismo. Debería obtener el siguiente resultado:

Terminal AttackBox

root@tryhackme:~#gobuster dns -dexample.thm -w/usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt ===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Domain:     example.thm
[+] Threads:    10
[+] Timeout:    1s
[+] Wordlist:   /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt
===============================================================
Starting gobuster in DNS enumeration mode
===============================================================
Found: www.example.thm
                                                                                                                                                           
Found: shop.example.thm
                                                                                                                                                           
Found: academy.example.thm
                                                                                                                                                           
Found: primary.example.thm
                                                                                                                                                           
Progress: 4989 / 4990 (99.98%)
===============================================================
Finished
===============================================================

Responda las siguientes preguntas

Además de la palabra clave dns y la opción -w, ¿qué otra opción abreviada se requiere para que el comando funcione?

-d

Utilizando los comandos aprendidos en esta tarea, ¿cuántos subdominios están configurados para el dominio offensivetools.thm?

4

Tarea 6 Caso de uso: Enumeración de Vhost

El último modo en el que nos centraremos es el vhostmodo. Este modo permite a Gobuster realizar ataques de fuerza bruta contra hosts virtuales. Los hosts virtuales son diferentes sitios web en la misma máquina. A veces, parecen subdominios, ¡pero no se dejen engañar! Los hosts virtuales se basan en direcciones IP y se ejecutan en el mismo servidor. Los subdominios se configuran en el DNS. La diferencia entre el modo vhosty dnsradica en la forma en que Gobuster realiza los escaneos:

  • vhostEste modo navegará a la URL creada al combinar el HOSTNAME configurado (bandera -u) con una entrada de una lista de palabras.
  • dnsEl modo hará unaDNSBúsqueda del FQDN creado al combinar el nombre de dominio configurado (bandera -d) con una entrada de una lista de palabras.

Ayuda

Si desea obtener una descripción completa de lo que vhostofrece el comando Gobuster, puede consultar la página de ayuda. La extensa página de ayuda del comando vhost puede resultar intimidante. Por lo tanto, en esta sala nos centraremos en las opciones más importantes. Escriba el siguiente comando para mostrar la ayuda:gobuster vhost –help

Este vhostmodo ofrece indicadores similares a los del modo dir. Veamos algunos de los indicadores más utilizados:

Bandera cortaBandera largaDescripción
-u–urlEspecifica la URL base (dominio de destino) para realizar ataques de fuerza bruta contra nombres de host virtuales.
 –append-domainAgrega el dominio base a cada palabra de la lista de palabras (por ejemplo, palabra.ejemplo.com).
-m–methodEspecifica el método HTTP que se utilizará para las solicitudes (por ejemplo, GET, POST).
 –domainAgrega un dominio a cada entrada de la lista de palabras para formar un nombre de host válido (útil si no se proporciona explícitamente).
 –exclude-lengthExcluye los resultados en función de la longitud del cuerpo de la respuesta (útil para filtrar las respuestas no deseadas).
-r–follow-redirectSigue las redirecciones HTTP (útil en casos donde los subdominios pueden redirigir).

Cómo usar el modo vhost

Para ejecutar Gobuster en vhostmodo, escriba el siguiente comando:

gobuster vhost -u «http://example.thm» -w /path/to/wordlist

Observe que el comando también incluye las banderas -uy -w, además de la vhostpalabra clave . Estas dos banderas son necesarias para que funcione la enumeración de hosts virtuales de Gobuster. Veamos un ejemplo práctico de cómo enumerar hosts virtuales con vhostel modo Gobuster:

Terminal AttackBox

root@tryhackme:~#gobuster vhost -u»http://MACHINE_IP»–domainexample.thm -w/usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt –append-domain –exclude-length 250-320 ===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:              http://10.10.94.214
[+] Method:           GET
[+] Threads:          10
[+] Wordlist:         /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt
[+] User Agent:       gobuster/3.6
[+] Timeout:          10s
[+] Append Domain:    true
[+] Exclude Length:   250,254,263,274,283,293,294,299,253,261,269,277,285,290,300,257,258,270,278,282,291,252,260,264,268,271,279,280,289,251,256,262,265,272,297,287,292,295,255,266,276,284,286,296,267,273,275,281,288,259,298
===============================================================
Starting gobuster in VHOST enumeration mode
===============================================================
Found: blog.example.thm Status: 200 [Size: 1493]
Found: shop.example.thm Status: 200 [Size: 2983]
Found: www.example.thm Status: 200 [Size: 84352]
Found: chelyabinsk-rnoc-rr02.backbone.example.thm Status: 404 [Size: 304]
Found: academy.example.thm Status: 200 [Size: 434]
Progress: 4989 / 4990 (99.98%)
===============================================================
Finished
===============================================================

Notará que este comando es mucho más complejo que la sintaxis del comando base. Contiene muchas más banderas configuradas. Esto suele ocurrir en pruebas realistas, dependiendo de cómo se haya configurado la infraestructura del dominio a probar. En nuestro caso, no tenemos una infraestructura completamente configurada.DNSinfraestructura. Esto requiere que proporcionemos indicadores adicionales como –domainy –append-domain. Necesitamos examinar las solicitudes web que envía Gobuster para comprender mejor cómo funcionan estos indicadores. A continuación, puede ver una solicitud GET básica a www.example.thm :

GET/HTTP/1.1Host:www.example.thm
User-Agent:gobuster/3.6Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive

Gobusterenviará múltiples solicitudes, cambiando cada vez Host:parte de la solicitud. El valor de Host:en este ejemplo es www.example.thm . Podemos dividir esto en tres partes:

  • www: Este es el subdominio. Esta es la parte que Gobuster completará con cada entrada de la lista de palabras configurada.
  • .example: Este es el dominio de segundo nivel. Puede configurarlo con el –domainindicador (esto debe configurarse junto con el dominio de nivel superior).
  • .thm: Este es el dominio de nivel superior. Puede configurarlo con el –domainindicador (esto debe configurarse junto con el dominio de segundo nivel).

Ahora que sabemos cómo Gobuster envía su solicitud, vamos a desglosar el comando y examinar cada bandera con más detalle:

  • gobuster vhostinstruyeGobusterpara enumerar los hosts virtuales.
  • -u «http://MACHINE_IP«Establece la URL para navegar a MACHINE_IP.
  • -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txtconfigura Gobuster para usar la lista de palabras subdomains-top1million-5000.txt . Gobuster agrega cada entrada de la lista de palabras al dominio configurado. Si no se configura explícitamente ningún dominio con la –domainbandera,Gobusterlo extraerá de la URL. Por ejemplo, test.example.thm , help.example.thm , etc. Si se encuentran subdominios,GobusterTe los reportaremos en la terminal.
  • –domain example.thmestablece los dominios de nivel superior y segundo en la Hostname:parte de la solicitud a example.thm.
  • –append-domainAgrega el dominio configurado a cada entrada en la lista de palabras. Si esta opción no está configurada, el nombre de host establecido sería www , blog , etc. Esto provocará que el comando funcione incorrectamente y muestre falsos positivos.
  • –exclude-lengthfiltra las respuestas que obtenemos de las solicitudes web enviadas. Con esta bandera, podemos filtrar los falsos positivos. Si ejecuta el comando sin esta bandera, notará que obtendrá muchos falsos positivos como «Encontrado: Orion.example.ellosEstado: 404 [Tamaño: 279]» o «Encontrado: pm.example.ellosEstado: 404 [Tamaño: 276]». Estos falsos positivos suelen tener un tamaño de respuesta similar, por lo que podemos usar esto para filtrar la mayoría de ellos. Esperamos recibir una respuesta 200 OK para un verdadero positivo. Sin embargo, existen excepciones, pero no es el objetivo de esta sesión profundizar en ellas.

Responda las siguientes preguntas

Utilice los comandos aprendidos en esta tarea para responder a la siguiente pregunta: ¿Cuántos vhosts del dominio offensivetools.thm responden con un código de estado 200?

4

Tarea 7 Conclusión

Esta sala nos enseñó sobre la herramienta ofensiva.GobusterEsta herramienta enumera directorios, archivos,DNSsubdominios y hosts virtuales.

Hemos cubierto tres modos diferentes delGobusterherramienta:

  • dnsmodo: enumeraDNSsubdominios.
  • dirmodo: enumera los directorios.
  • vhostmodo: enumera los hosts virtuales.

Para cada modo, hemos cubierto los indicadores necesarios para la configuración y los indicadores opcionales adicionales que permiten ajustar con precisión los resultados deseados.

Hemos resaltado la diferencia entre hosts virtuales y subdominios, y la forma en que Gobuster los detecta:

  • dnsEl modo utiliza elDNSServicios para escanear subdominios utilizando el dominio y la lista de palabras configurada.
  • vhostEste modo envía solicitudes web utilizando la URL y la lista de palabras configuradas.

Al finalizar cada tarea, aplicábamos directamente las habilidades que habíamos aprendido mediante ejercicios prácticos.

Sigan entrenando, Hacketones, Nos vemos en el próximo laboratorio!!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *