Ilustración conceptual de Katana ProjectDiscovery
Mapeo automatizado de la superficie de ataque web.

Katana Crawler: El Mapeo Definitivo para Pentesting

Si alguna vez quisiste explorar un sitio web como lo haría un motor de búsqueda, aquí tienes Katana.

Detrás de este nombre algo cortante se esconde una herramienta formidable para analizar un sitio, descubrir sus páginas ocultas y comprender su estructura real.

Katana es un crawler web avanzado de línea de comandos que recorre sitios web de forma automatizada para descubrir endpoints, archivos JavaScript y rutas ocultas, siendo una herramienta clave para mapear infraestructuras.

En este tutorial de Katana, vas a aprender a usar la herramienta paso a paso. Aunque seas principiante, vas a entender cómo funciona Katana crawler, por qué es útil… y sobre todo cómo usar Katana concretamente con ejemplos sencillos.

¿Qué es Katana y cómo funciona?

Para responder a qué es Katana, es un crawler web de línea de comandos que se ejecuta desde la terminal. En esencia, recorre un sitio siguiendo enlaces de una página a otra, de forma similar a como lo hacen los motores de búsqueda, aunque sin replicar completamente su comportamiento interno.

Diagrama del flujo de rastreo de Katana
Flujo de descubrimiento iterativo de URLs.

Imagina un pequeño robot que:

  • llega a una página
  • mira todos los enlaces presentes
  • hace clic en ellos automáticamente
  • repite una y otra vez

Eso es exactamente lo que hace Katana.

A diferencia de un navegador clásico, no se limita a mostrar páginas. Su objetivo es recopilar información estructural del sitio:

  • URLs
  • archivos JavaScript
  • endpoints API
  • parámetros en las URLs

¿Por qué usar Katana en tus análisis?

Buena pregunta. Y la respuesta depende de tu objetivo.

En nuestra experiencia, puedes usar Katana para:

  • analizar la estructura de un sitio
  • encontrar páginas olvidadas
  • comprender el enlazado interno
  • detectar zonas sensibles (admin, API…)

En pocas palabras: analizas el sitio como sistema, no como un simple usuario.

Instalación de Katana

Katana está desarrollado en Go y su código fuente es un proyecto de ProjectDiscovery. La instalación es, por lo tanto, muy sencilla.

En macOS o Linux

Si tienes Go instalado:

go install github.com/projectdiscovery/katana/cmd/katana@latest

Una vez instalado, verifica:

katana -h
Menú de ayuda de Katana en terminal
Listado de parámetros técnicos y flags de Katana.

Si ves la lista de opciones, ¡lo lograste!

En Windows

Dos opciones:

  • usar WSL (recomendado)
  • o descargar un binario desde GitHub

Si eres principiante, WSL sigue siendo la solución más sencilla. Si vas a usar el modo headless, asegúrate de tener un navegador como Chrome instalado.

Primer uso de Katana

Vamos a hacerlo simple.

Tomemos un sitio ficticio:

katana -u https://ejemplo.com
Katana escaneando esgeeks.com desde Docker
Rastreo de rutas y scripts en tiempo real.

Y ahí… Katana comenzará a rastrear.

¿Qué sucede realmente?

Katana:

  • carga la página de inicio
  • extrae todos los enlaces
  • visita cada enlace
  • repite el proceso

Resultado: una lista de URLs se muestra en tu terminal

Ejemplo de salida

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

Nada mágico en apariencia… pero es un mapa básico del sitio.

Comprender la profundidad del crawl

Por defecto, Katana no va muy lejos.

Ahí es donde interviene la opción -d (depth).

katana -u https://ejemplo.com -d 3

Esto significa:

  • nivel 1 → página inicial
  • nivel 2 → enlaces directos desde la página inicial
  • nivel 3 → enlaces descubiertos a partir de esos enlaces

¿Por qué es importante?

Imagina un sitio con:

  • una página de blog
  • luego un artículo
  • luego un enlace a un recurso

Sin suficiente profundidad… nunca verás ese recurso.

Gestionar el alcance (scope)

Cuando Katana rastrea, a veces puede salir del sitio.

Por ejemplo:

  • enlaces a YouTube
  • enlaces a un CDN
  • enlaces a otros dominios

Limitar al dominio

katana -u https://ejemplo.com -cs ejemplo.com
  • -cs = crawl scope

-cs permite limitar el rastreo a un dominio o conjunto de dominios.

También puedes usar -fs (field scope) para controlar el alcance de forma más flexible según el dominio raíz u otros criterios.

Limitar el scope desde el inicio es clave. De lo contrario, el crawler puede generar una cantidad de datos difícil de manejar.

Crawl de los archivos JavaScript

Aquí es donde Katana se vuelve realmente interesante.

Los sitios modernos suelen ocultar rutas en el JavaScript.

  • Activar el JS crawl
katana -u https://ejemplo.com -js-crawl
Análisis de archivos JS con Katana
Detección de endpoints en archivos estáticos.

En un sitio, no ves:

/api/user
/api/admin

Pero en el JS:

fetch('/api/user')

Katana puede detectarlo al analizar archivos JavaScript, aunque sin ejecutar completamente la lógica dinámica salvo en modo headless.

Así, descubres:

  • endpoints API
  • rutas ocultas
  • funcionalidades no visibles

Para aplicaciones con mucho JavaScript dinámico, puedes combinarlo con -headless.

Exportar los resultados

Mostrar en la terminal está bien. Pero guardar, es mejor.

katana -u https://ejemplo.com -o result.txt

Puedes luego:

  • ordenar las URLs
  • analizar los patrones
  • importarlas a una herramienta

Filtrar los resultados

Katana puede generar una gran cantidad de datos.

Filtrar resultados es necesario para que el análisis sea útil. Por ejemplo, para conservar solo archivos PHP:

katana -u https://ejemplo.com | grep ".php"

O para encontrar páginas sensibles:

katana -u https://ejemplo.com | grep -E "admin|login|api"

Empiezas a ver su potencial…

Uso en pentesting con Katana (versión sencilla)

Sin entrar en hacking complejo, el pentesting con Katana sirve para la fase inicial de reconocimiento, apoyando la metodología de auditoría web al permitir:

  • descubrir la superficie de un sitio
  • encontrar puntos de entrada
  • identificar zonas sensibles

Lanzas:

katana -u https://sitio.com -d 3 -js-crawl

Resultado:

/admin
/api/users
/reset-password

Ya tienes pistas interesantes.

Integración con otras herramientas

Katana rara vez se usa solo. Se puede acoplar con httpx:

katana -u https://ejemplo.com | httpx

Verifica qué URLs están activas

Pero también con Nuclei:

katana -u https://ejemplo.com | nuclei

Busca vulnerabilidades

También existen varias herramientas similares a Katana, cada una con su filosofía. Por ejemplo, Screaming Frog es muy utilizado en SEO para analizar visualmente un sitio con una interfaz gráfica, lo que lo hace más accesible a los principiantes.

Por el contrario, herramientas como Hakrawler o GoSpider se acercan más a Katana con un enfoque de línea de comandos, a menudo preferido en pentesting o en automatización.

Finalmente, soluciones como Burp Suite (en versión avanzada) también permiten rastrear un sitio, pero en un contexto más orientado a la seguridad.

En resumen, Katana se sitúa a medio camino entre los crawlers SEO y las herramientas de ciberseguridad, con un excelente equilibrio entre potencia y flexibilidad.

Uso de Katana en OSINT

Incluso sin objetivo de seguridad ofensiva, Katana es útil para investigaciones OSINT y recolección de inteligencia, como lo respaldan diversas investigaciones de ciberseguridad.

Puedes analizar un sitio de la competencia:

katana -u https://competencia.com -d 3

Descubres:

  • páginas no indexadas
  • estructuras de contenido
  • endpoints internos

Es OSINT técnico.

Katana como crawler SEO

Y ahí… se vuelve interesante para tu sitio web.

Katana puede servir como un crawler SEO simplificado.

katana -u https://tusitio.com -d 3

Lo que puedes analizar

  • páginas huérfanas (no descubiertas)
  • profundidad de las páginas
  • estructura del sitio

Es una base de datos técnica que requiere interpretación, pero resulta muy útil.

Automatizar Katana

Cuando hayas entendido lo básico, puedes automatizar con una tarea cron.

Lanzar todos los días:

0 2 * * * katana -u https://ejemplo.com -o daily.txt

¿Por qué automatizar?

  • monitorear un sitio
  • detectar cambios
  • seguir la evolución

Es recomendable:

  • limitar la profundidad
  • filtrar resultados
  • interpretar correctamente los datos

Katana no analiza por ti, solo recopila información.

Es importante tener claro que Katana no realiza:

  • análisis SEO completo
  • renderizado visual avanzado (salvo configuraciones específicas)
  • auditorías automáticas

Es una herramienta de recopilación, no de análisis.

Caso práctico completo

Imaginemos un sitio:

katana -u https://misitio.com -d 3 -js-crawl -o scan.txt

Luego:

grep "admin" scan.txt
grep "api" scan.txt

Identificas rápidamente:

  • zonas sensibles
  • páginas importantes
  • arquitectura real

Tabla recapitulativa de los comandos en Katana\

ComandoDescripciónEjemplo concretoNivel
katana -u URLLanza un rastreo simple del sitiokatana -u https://ejemplo.comPrincipiante
katana -u URL -d NDefine la profundidad de rastreokatana -u https://ejemplo.com -d 3Principiante
katana -u URL -js-crawlAnaliza los archivos JavaScriptkatana -u https://ejemplo.com -js-crawlIntermedio
katana -u URL -o archivo.txtGuarda los resultados en un archivokatana -u https://ejemplo.com -o result.txtPrincipiante
katana -u URL -cs dominio.comLimita el rastreo a un dominio precisokatana -u https://ejemplo.com -cs ejemplo.comIntermedio
katana -u URL -silentSuprime los logs inútiles (salida limpia)katana -u https://ejemplo.com -silentPrincipiante
katana -u URL -timeout 10Define un timeout en segundoskatana -u https://ejemplo.com -timeout 10Intermedio
katana -u URL -retry 2Número de intentos en caso de fallakatana -u https://ejemplo.com -retry 2Intermedio
katana -u URL -concurrency 10Número de solicitudes simultáneaskatana -u https://ejemplo.com -concurrency 10Avanzado
katana -u URL -rate-limit 5Limita el número de solicitudes por segundokatana -u https://ejemplo.com -rate-limit 5Avanzado
katana -u URL -headlessActiva el modo navegador (sitios JS complejos)katana -u https://ejemplo.com -headlessAvanzado
katana -u URL -depth 3Alias de -d para la profundidadkatana -u https://ejemplo.com -depth 3Principiante
katana -list urls.txtRastrea varias URLs desde un archivokatana -list sites.txtIntermedio
katana -u URL -match-regex REGEXFiltra los resultados con una regexkatana -u https://ejemplo.com -match-regex "api"Avanzado
katana -u URL -filter-regex REGEXExcluye ciertos resultadoskatana -u https://ejemplo.com -filter-regex "logout"Avanzado
katana -u URL -extension-filter js,phpFiltra por extensión de archivokatana -u https://ejemplo.com -extension-filter php,htmlIntermedio
katana -u URL -jsonSalida en formato JSONkatana -u https://ejemplo.com -jsonIntermedio
katana -u URL -proxy http://127.0.0.1:8080Pasa por un proxy (Burp, etc.)katana -u https://ejemplo.com -proxy http://127.0.0.1:8080Avanzado
katana -u URL -H "Header: value"Agrega un header personalizadokatana -u https://ejemplo.com -H "Authorization: Bearer token"Avanzado
katana -u URL -cookie "session=abc123"Agrega cookieskatana -u https://ejemplo.com -cookie "PHPSESSID=xyz"Avanzado

Si eres principiante, retén solo estos 5 comandos:

katana -u https://sitioweb.com
katana -u https://sitioweb.com -d 3
katana -u https://sitioweb.com -js-crawl
katana -u https://sitioweb.com -o result.txt
katana -u https://sitioweb.com -cs sitioweb.com

Con esto, ya puedes hacer el 80% de los análisis útiles.

Katana es una herramienta a la vez sencilla… e increíblemente potente. Al principio, tal vez tengas la impresión de ver una avalancha de datos sin saber qué hacer con ellos. Y es normal.

Pero cuanto más la usas, más desarrollas un reflejo de análisis. Empiezas a ver patrones, a comprender la estructura de un sitio, a detectar anomalías casi instintivamente.

Con el uso, deja de ser solo una herramienta y pasa a formar parte de tu forma de analizar sitios web.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda