Ilustración conceptual de Hakrawler como una entidad robótica de reconocimiento digital con ojos rojos y circuitos
Representación conceptual de Hakrawler como un agente de reconocimiento digital avanzado.

Tutorial de Hakrawler: Instalación y Mapeo de Sitios

Hakrawler es una herramienta de línea de comandos que permite rastrear un sitio web automáticamente para descubrir enlaces, endpoints y recursos que no siempre son visibles a simple vista. Es simple, rápida y encaja bien en workflows de reconocimiento dentro de pruebas de seguridad.

En resumen, Hakrawler es una herramienta CLI escrita en Go diseñada para el descubrimiento automatizado de endpoints, directorios ocultos y recursos web. Su principal función es mapear la superficie de ataque inicial parseando respuestas HTTP y extrayendo enlaces de forma rápida y eficiente.

Cuando alguien empieza en seguridad web o pentesting, una pregunta aparece muy rápido: ¿cómo descubrir todas las páginas de un sitio? Porque a diferencia de lo que se podría creer, un sitio web no se limita a lo que vemos en el menú. A menudo existen decenas, y a veces cientos de URLs que no son visibles directamente. Es precisamente ahí donde Hakrawler entra en juego.

Diagrama de flujo mostrando cómo Hakrawler extrae endpoints de un servidor web
Flujo básico de descubrimiento de recursos web automatizado.

Algunas páginas son olvidadas, otras están destinadas a la administración, y algunas sirven de API o de interfaces internas. Para un pentester o un desarrollador curioso, estas páginas representan otras tantas pistas a explorar.

En este tutorial completo, les explicamos qué es Hakrawler, cómo instalarlo, cómo usar hakrawler en entornos reales y sobre todo cómo interpretar sus resultados para sacar de ellos información útil.

¿Qué es Hakrawler y para qué sirve?

Antes de entrar en los comandos, tomemos un momento para entender el principio.

¿Qué es crawler web y cómo funciona?

La palabra crawler web designa a un programa que recorre automáticamente un sitio web para descubrir sus páginas.

El funcionamiento es bastante simple:

  • el programa visita una página
  • analiza su contenido
  • extrae los enlaces presentes
  • visita estos nuevos enlaces
  • el proceso comienza de nuevo

Es exactamente lo que hacen los robots de Google cuando indexan Internet.

Hakrawler, crawler de sitio web desde la terminal

Hakrawler aplica este principio en un contexto de reconocimiento web (recon).

Dicho de otro modo, permite mapear un sitio de forma automatizada.

Lo que Hakrawler puede descubrir

Al analizar el código HTML y ciertos recursos, Hakrawler puede extraer varios tipos de información:

  • las URLs internas
  • los endpoints de API
  • los enlaces presentes en los scripts JavaScript
  • las páginas olvidadas o no accesibles desde el menú
  • los archivos interesantes (PDF, JSON, etc.)

Para un pentester, esta información es especialmente valiosa porque cuanto mejor conocemos un sitio, más oportunidades tenemos de encontrar las principales vulnerabilidades web.

Ejemplo concreto

Imaginemos un sitio ficticio:

https://misitio-test.com

En la página de inicio, vemos solamente:

  • Inicio
  • Blog
  • Contacto

Pero detrás de este sitio, existe tal vez:

  • /admin
  • /api/users
  • /dev/debug
  • /old-login

Estas páginas no son visibles en el menú… pero Hakrawler puede descubrirlas.

Y es exactamente lo que buscan los pentesters.

Existen muchos crawlers web, pero Hakrawler tiene varias ventajas prácticas.

Primero, es muy simple de usar. A diferencia de ciertas herramientas complejas, un solo comando basta a menudo.

Luego, es rápido. La herramienta está escrita en Go, un lenguaje muy potente.

Finalmente, se integra fácilmente en un workflow automatizado con otras herramientas.

Es por esta razón que es a menudo utilizado en:

Limitaciones de Hakrawler

Aunque Hakrawler es útil, tiene limitaciones importantes que conviene tener en cuenta.

No ejecuta JavaScript, por lo que no detecta enlaces generados dinámicamente en aplicaciones modernas.

Depende principalmente del HTML y de recursos estáticos, lo que significa que puede perder endpoints ocultos detrás de lógica del lado cliente.

Por esta razón, suele combinarse con otras herramientas más avanzadas en procesos de reconocimiento para realizar un crawler pentest efectivo.

Instalación de Hakrawler paso a paso

Pasemos ahora a la parte práctica.

La instalación puede parecer impresionante si están empezando, pero les aseguramos que es en realidad muy simple.

Paso 1: instalar Go

Terminal mostrando la extracción e instalación manual de Go en Linux
Configuración manual del entorno de Go extrayendo el paquete oficial.

Hakrawler está escrito en Go. Debemos entonces instalar este entorno.

Comencemos por verificar si Go está instalado, abran la terminal y tecleen:

go version

Si ven un resultado similar:

go version go1.x.x linux/amd64

entonces todo está listo. Si no, hay que instalar GO…

Instalar Go bajo Linux

En Ubuntu o Debian pueden instalarlo rápidamente con:

sudo apt update && sudo apt install golang-go

Tengan en cuenta que esta versión puede no ser la más reciente. Si necesitan la última versión, es mejor instalarla desde la web oficial de Go.

Instalar Go bajo macOS

Con Homebrew:

brew install go

Instalar Go bajo Windows

Descarguen el instalador oficial: https://go.dev/dl

Luego sigan las instrucciones.

Paso 2: instalar Hakrawler

Una vez Go instalado, la instalación de Hakrawler toma menos de 10 segundos.

En nuestra terminal, ejecutamos:

go install github.com/hakluke/hakrawler@latest

Go va a descargar el programa y compilarlo. Pueden revisar el código fuente en el Repositorio oficial de Hakrawler si lo desean.

Terminal ejecutando la descarga y compilación de dependencias de Hakrawler
Proceso de descarga de paquetes y compilación en el entorno de Go.

Añadir Go al PATH

Si el comando no funciona, añadan la carpeta Go a su PATH:

~/go/bin

Bajo Linux o macOS:

export PATH=$PATH:~/go/bin

Verificar la instalación

Tecleen simplemente:

hakrawler

Si la herramienta responde, la instalación fue correcta.

Ya tienen Hakrawler listo para usar.

Primeros Pasos: Tutorial de Hakrawler Básico

Comencemos por un ejemplo muy simple. Supongamos que queremos analizar:

https://ejemplo.com

En la terminal:

echo https://ejemplo.com | hakrawler

Hakrawler va a visitar la página y mostrar todas las URLs encontradas.

Hakrawler en ejecución extrayendo rutas del sitemap de un dominio objetivo
Hakrawler descubriendo URLs de forma pasiva a través del sitemap del objetivo.

El resultado se parece a esto:

https://ejemplo.com/blog
https://ejemplo.com/login
https://ejemplo.com/api/users
https://ejemplo.com/contact

Cada línea corresponde a un enlace descubierto.

Comprender la profundidad de crawling

Por defecto, Hakrawler trabaja con una profundidad de 1: visita la página inicial y extrae enlaces, pero no los sigue de forma recursiva. Un sitio suele tener varios niveles.

Tomemos un ejemplo.

ejemplo.com
 └ blog
     └ article1
     └ article2

Para analizar varios niveles, se utiliza la opción -depth, que define cuántos niveles de enlaces se van a seguir durante el crawling.

Ejemplo:

echo https://ejemplo.com | hakrawler -depth 3

Esto significa:

  • nivel 1: página inicial
  • nivel 2: enlaces encontrados en la inicial
  • nivel 3: enlaces encontrados en el nivel anterior

En la práctica, valores entre 2 y 4 suelen ser suficientes sin generar demasiado ruido.

Interpretar los resultados de Hakrawler

Es una etapa esencial. Muchos principiantes ejecutan la herramienta… luego no saben qué hacer con los resultados.

Veamos cómo analizar las URLs descubiertas.

Identificar las páginas sensibles

Ciertas URLs atraen inmediatamente la atención:

  • /admin
  • /dashboard
  • /login
  • /config
  • /debug

Estas páginas pueden revelar:

  • interfaces de administración
  • sistemas internos
  • herramientas de desarrollo

Son a menudo los primeros objetivos de un pentest.

Ubicar las API

Hakrawler descubre también a menudo endpoints API.

Por ejemplo:

  • /api/users
  • /api/login
  • /api/v1/products

Estos endpoints pueden a veces:

  • carecer de autenticación
  • exponer datos
  • permitir manipulaciones

Detectar los archivos interesantes

Ciertos archivos pueden contener información sensible:

  • backup.sql
  • config.json
  • users.csv

Estos archivos son a veces olvidados en los servidores.

Un crawler puede revelarlos.

Errores comunes al usar Hakrawler

Al empezar, es fácil cometer algunos errores que afectan directamente a los resultados.

Usar una profundidad demasiado baja puede hacer que pierdan muchas rutas interesantes. Pero aumentar demasiado el depth también puede generar ruido y resultados poco útiles.

Otro error habitual es asumir que Hakrawler descubre todo. En aplicaciones modernas con mucho JavaScript, muchos endpoints no serán visibles con este tipo de crawling.

Por último, no filtrar ni priorizar resultados suele llevar a perder tiempo analizando URLs irrelevantes.

Utilizar Hakrawler en un workflow de pentest

En la práctica, Hakrawler nunca es utilizado solo. Se integra en una cadena de herramientas llamada workflow de reconocimiento, parte vital del hakrawler pentesting.

Aquí un ejemplo clásico.

Paso 1: encontrar los subdominios

Se comienza por descubrir los subdominios:

  • subfinder
  • amass

Ejemplo:

subfinder -d ejemplo.com

Resultado:

  • api.ejemplo.com
  • dev.ejemplo.com
  • admin.ejemplo.com

Paso 2: verificar los sitios activos

Luego utilizamos la herramienta httpx para el pentesting.

cat domains.txt | httpx

Esto permite ver qué sitios responden.

Paso 3: crawlear los sitios con Hakrawler

Ahora, Hakrawler entra en escena.

cat live.txt | hakrawler

Obtenemos todas las URLs.

Paso 4: fuzzing con ffuf

Luego, podemos buscar carpetas ocultas mediante fuzzing web con ffuf.

ffuf -u https://ejemplo.com/FUZZ -w wordlist.txt

Paso 5: analizar los endpoints

Finalmente, se analizan los endpoints para encontrar:

Hakrawler se utiliza principalmente para mapear la superficie de ataque y descubrir puntos de entrada potenciales.

Automatizar Hakrawler con otras herramientas

Aquí un ejemplo de pipeline muy utilizado.

subfinder -d ejemplo.com | httpx | hakrawler

Explicación:

  1. subfinder encuentra los subdominios
  2. httpx prueba cuáles están activos
  3. hakrawler explora las URLs

Resultado: una cartografía completa del sitio.

Hakrawler frente a otras herramientas

Hakrawler es rápido y fácil de usar, pero no es la única opción.

Herramientas como katana o gau ofrecen capacidades más avanzadas, especialmente en el descubrimiento de URLs a gran escala o a partir de fuentes externas.

En la práctica, Hakrawler funciona bien para exploración rápida sobre un objetivo concreto, mientras que otras herramientas son más útiles cuando necesitan ampliar cobertura o trabajar con grandes volúmenes de datos dentro de un ecosistema más amplio de herramientas de recon.

Tabla recapitulativa de los comandos Hakrawler

Menú de ayuda de Hakrawler en la terminal listando las flags y comandos disponibles
Ejecución de hakrawler -h para desplegar todos los parámetros de configuración.
comandofunción
hakrawlerlanzar la herramienta
echo site | hakrawlercomando básico
-depthdefinir la profundidad
-scopelimitar el dominio
-plainsalida simplificada
> archivo.txtguardar los resultados

Buenas prácticas para usar Hakrawler

Cuando utilicen esta herramienta, guarden algunos principios simples en mente.

Primero, respeten siempre la legalidad. Les recordamos que no deben analizar más que los sitios para los cuales tengan la autorización explícita.

Luego, eviten lanzar un crawler demasiado agresivo sobre un servidor frágil. Aunque Hakrawler es ligero, un escaneo intensivo puede a veces generar muchas solicitudes.

Finalmente, piensen siempre en combinar varias herramientas. Hakrawler es excelente para descubrir las URLs, pero no reemplaza a los escáneres de vulnerabilidades.


Hakrawler es una herramienta simple, pero muy útil dentro de una fase de reconocimiento.

Permite descubrir rápidamente la estructura de un sitio y encontrar puntos de entrada que no son evidentes a primera vista.

No sustituye a herramientas más avanzadas, pero sigue siendo una pieza válida dentro de cualquier workflow de pentesting.

Al final, entender cómo se estructura un sitio web sigue siendo una de las bases para encontrar vulnerabilidades reales.

Preguntas frecuentes sobre Hakrawler

  • ¿Qué hace la opción -depth en Hakrawler?

Define cuántos niveles de enlaces va a seguir el crawler. En la práctica, valores entre 2 y 4 suelen ser suficientes para cubrir un sitio sin generar demasiado ruido.

  • ¿Cómo guardar los resultados de Hakrawler?

Se puede redirigir la salida a un archivo:

echo https://ejemplo.com | hakrawler > urls.txt

Esto permite analizar las URLs posteriormente o integrarlas en otros procesos.

  • ¿Qué otras opciones útiles tiene Hakrawler?

Algunas flags prácticas:

  • -scope: limita el crawling al dominio o subdominios
  • -plain: muestra solo URLs sin información adicional
  • -timeout: controla el tiempo de espera por request
  • ¿Hakrawler detecta todo en un sitio web?

No. No ejecuta JavaScript, por lo que puede perder endpoints en aplicaciones modernas. Por eso suele combinarse con otras herramientas.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda