Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
dirmap — Una herramienta avanzada de escaneo de directorios y archivos web que será más potente que DirBuster, Dirsearch, cansina y Yu Jian. Una herramienta avanzada de escaneo de directorios y archivos web, cuyas funcionalidades superarán a DirBuster, Dirsearch, cansina y Yu Jian. | Kitploit
Herramientas/GitHubGitHub/h4ckforjob/dirmap
ReconocimientoEscáneres de VulnerabilidadesRecopilación de InformaciónSeguridad WebPruebas de Penetración
GitHubh4ckforjob/dirmap

dirmap

Una herramienta avanzada de escaneo de directorios y archivos web que será más potente que DirBuster, Dirsearch, cansina y Yu Jian. Una herramienta avanzada de escaneo de directorios y archivos web, cuyas funcionalidades superarán a DirBuster, Dirsearch, cansina y Yu Jian.

Ver Repositorio
3.4k5551hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Dirmap

English

Herramienta avanzada de escaneo de directorios web, con funciones más potentes que DirBuster, Dirsearch, cansina, Yujian

dirmap

Análisis de requisitos

Después de una extensa investigación, se resume que una herramienta de escaneo de directorios web excelente debe tener al menos las siguientes funciones:

  • Motor concurrente
  • Capacidad de usar diccionarios
  • Capacidad de fuerza bruta pura
  • Capacidad de rastrear páginas y generar diccionarios dinámicamente
  • Capacidad de escaneo fuzzing
  • Personalización de solicitudes
  • Personalización del manejo de respuestas...

Entonces, ¡veamos las características de Dirmap!

Características funcionales

  1. Soporte para concurrencia de n objetivos*n payloads
  2. Soporte para escaneo recursivo
  3. Soporte para códigos de estado personalizados que requieren escaneo recursivo
  4. Soporte para escaneo con diccionario (único/múltiple)
  5. Soporte para fuerza bruta con conjunto de caracteres personalizado
  6. Soporte para escaneo con diccionario dinámico de rastreador
  7. Soporte para etiquetas personalizadas de fuzzing de URL objetivo
  8. User-Agent personalizado
  9. Retardo aleatorio personalizado
  10. Tiempo de espera personalizado
  11. Proxy personalizado
  12. Expresión regular personalizada para detectar páginas 404 falsas
  13. Códigos de estado de respuesta a procesar personalizados
  14. Saltar páginas de tamaño x personalizado
  15. Mostrar content-type personalizado
  16. Mostrar tamaño de página personalizado
  17. Guardar resultados sin duplicados por dominio

Modo de uso

Preparación del entorno

root@kitploit:~
git clone https://github.com/H4ckForJob/dirmap.git && cd dirmap && python3 -m pip install -r requirement.txt

Uso rápido

Ingresar objetivo

Objetivo único, por defecto http

root@kitploit:~
python3 dirmap.py -i https://target.com -lcf
root@kitploit:~
python3 dirmap.py -i 192.168.1.1 -lcf

Subred (formato CIDR)

root@kitploit:~
python3 dirmap.py -i 192.168.1.0/24 -lcf

Rango de red

root@kitploit:~
python3 dirmap.py -i 192.168.1.1-192.168.1.100 -lcf

Lectura de archivo

root@kitploit:~
python3 dirmap.py -iF targets.txt -lcf

targets.txt admite los formatos anteriores

Guardar resultados

  1. Los resultados se guardarán automáticamente en la carpeta output en la raíz del proyecto.
  2. Se genera un txt por cada objetivo, con el formato dominio_objetivo.txt.
  3. Los resultados se deduplican automáticamente, sin preocuparse por redundancias.

Uso avanzado

Personaliza la configuración de Dirmap y comienza a explorar sus funciones avanzadas.

Por ahora, la configuración detallada se realiza cargando un archivo de configuración. ¡No se admite la configuración detallada mediante parámetros de línea de comandos!

Edita dirmap.conf en la raíz del proyecto para configurarlo.

Explicación detallada de la configuración de dirmap.conf

root@kitploit:~
# Configuración de escaneo recursivo
[RecursiveScan]
# ¿Habilitar escaneo recursivo?: Deshabilitado:0; Habilitado:1
conf.recursive_scan = 0
# Al encontrar estos códigos de estado, se inicia el escaneo recursivo. Configuración predeterminada [301,403]
conf.recursive_status_code = [301,403]
# Si la URL supera esta longitud, se sale del escaneo
conf.recursive_scan_max_url_length = 60
# Estas extensiones no se escanean recursivamente
conf.recursive_blacklist_exts = ["html",'htm','shtml','png','jpg','webp','bmp','js','css','pdf','ini','mp3','mp4']
# Configurar directorios a excluir del escaneo. Configuración predeterminada vacía. Otras configuraciones: e.g:['/test1','/test2']
#conf.exclude_subdirs = ['/test1','/test2']
conf.exclude_subdirs = ""

# Configuración del modo de escaneo (4 modos, solo se puede seleccionar 1 a la vez)
[ScanModeHandler]
# Modo diccionario: Deshabilitado:0; Diccionario único:1; Diccionarios múltiples:2
conf.dict_mode = 1
# Ruta del diccionario único
conf.dict_mode_load_single_dict = "dict_mode_dict.txt"
# Ruta de diccionarios múltiples, configuración predeterminada dictmult
conf.dict_mode_load_mult_dict = "dictmult"
# Modo fuerza bruta: Deshabilitado:0; Habilitado:1
conf.blast_mode = 0
# Longitud mínima del diccionario generado. Configuración predeterminada 3
conf.blast_mode_min = 3
# Longitud máxima del diccionario generado. Configuración predeterminada 3
conf.blast_mode_max = 3
# Conjunto de caracteres predeterminado: a-z. Aún no se usa.
conf.blast_mode_az = "abcdefghijklmnopqrstuvwxyz"
# Conjunto de caracteres predeterminado: 0-9. Aún no se usa.
conf.blast_mode_num = "0123456789"
# Conjunto de caracteres personalizado. Configuración predeterminada "abc". Usa abc para construir el diccionario
conf.blast_mode_custom_charset = "abc"
# Conjunto de caracteres de reanudación personalizado. Configuración predeterminada vacía.
conf.blast_mode_resume_charset = ""
# Modo rastreador: Deshabilitado:0; Habilitado:1
conf.crawl_mode = 0
# Diccionario de sufijos para generar payloads dinámicos de archivos sensibles
conf.crawl_mode_dynamic_fuzz_suffix = "crawl_mode_suffix.txt"
# Analizar archivo robots.txt. Aún no implementado.
conf.crawl_mode_parse_robots = 0
# Expresión XPath para analizar páginas HTML
conf.crawl_mode_parse_html = "//*/@href | //*/@src | //form/@action"
# ¿Habilitar generación dinámica de diccionarios del rastreador? Configuración predeterminada 1, habilitado. Otras configuraciones: e.g: Deshabilitar:0; Habilitar:1
conf.crawl_mode_dynamic_fuzz = 1
# Modo fuzzing: Deshabilitado:0; Diccionario único:1; Diccionarios múltiples:2
conf.fuzz_mode = 0
# Ruta del diccionario único.
conf.fuzz_mode_load_single_dict = "fuzz_mode_dir.txt"
# Ruta de diccionarios múltiples. Configuración predeterminada: fuzzmult
conf.fuzz_mode_load_mult_dict = "fuzzmult"
# Configurar etiqueta de fuzzing. Configuración predeterminada {dir}. Usa la etiqueta {dir} como punto de inserción del diccionario, reemplazando http://target.com/{dir}.php por http://target.com/cada línea del diccionario.php. Otras configuraciones: e.g:{dir};{ext}
#conf.fuzz_mode_label = "{ext}"
conf.fuzz_mode_label = "{dir}"

# Configuración de payload. Aún no implementada.
[PayloadHandler]

# Configuración de solicitudes
[RequestHandler]
# Encabezados de solicitud personalizados. Configuración predeterminada vacía. Otras configuraciones: e.g:test1=test1,test2=test2
#conf.request_headers = "test1=test1,test2=test2"
conf.request_headers = ""
# User-Agent de solicitud personalizado. Configuración predeterminada UA de Chrome.
conf.request_header_ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
# Cookie de solicitud personalizada. Configuración predeterminada vacía, sin cookie. Otras configuraciones e.g: cookie1=cookie1; cookie2=cookie2;
#conf.request_header_cookie = "cookie1=cookie1; cookie2=cookie2"
conf.request_header_cookie = ""
# Autenticación 401 personalizada. Aún no implementada. (Vago XD)
conf.request_header_401_auth = ""
# Método de solicitud personalizado. Configuración predeterminada get. Otras configuraciones: e.g:get;head
#conf.request_method = "head"
conf.request_method = "get"
# Tiempo de espera personalizado por solicitud. Configuración predeterminada 3 segundos.
conf.request_timeout = 3
# Retardo aleatorio (0-x) segundos entre solicitudes. El parámetro debe ser entero. Configuración predeterminada 0 segundos, sin retardo.
conf.request_delay = 0
# Número de corrutinas por objetivo (hilos). Configuración predeterminada 30
conf.request_limit = 30
# Número máximo de reintentos personalizado. Aún no implementado.
conf.request_max_retries = 1
# Conexión persistente. ¿Usar session()? Aún no implementado.
conf.request_persistent_connect = 0
# Redirección 302. Configuración predeterminada False, sin redirección. Otras configuraciones: e.g:True;False
conf.redirection_302 = False
# Agregar extensión después del payload. Configuración predeterminada vacía, sin extensión. Otras configuraciones: e.g:txt;php;asp;jsp
#conf.file_extension = "txt"
conf.file_extension = ""

# Configuración de manejo de respuestas
[ResponseHandler]
# Códigos de estado de respuesta a registrar. Configuración predeterminada [200], registra estado 200. Otras configuraciones: e.g:[200,403,301]
#conf.response_status_code = [200,403,301]
conf.response_status_code = [200]
# ¿Registrar el encabezado de respuesta content-type? Configuración predeterminada 1, registrar.
#conf.response_header_content_type = 0
conf.response_header_content_type = 1
# ¿Registrar el tamaño de la página? Configuración predeterminada 1, registrar.
#conf.response_size = 0
conf.response_size = 1
# ¿Detectar automáticamente páginas 404? Configuración predeterminada True, habilitado. Otras configuraciones: e.g:True;False
#conf.auto_check_404_page = False
conf.auto_check_404_page = True
# Expresión regular personalizada para páginas 503. Aún no implementada. Se considera obsoleta.
#conf.custom_503_page = "page 503"
conf.custom_503_page = ""
# Expresión regular personalizada para coincidir con el contenido de la página
#conf.custom_response_page = "([0-9]){3}([a-z]){3}test"
conf.custom_response_page = ""
# Omitir páginas de tamaño x. Si no se configura, usar "None". Configuración predeterminada "None". Otras configuraciones: e.g:None;0b;1k;1m
#conf.skip_size = "0b"
conf.skip_size = "None"

# Opciones de proxy
[ProxyHandler]
# Configuración de proxy. Configuración predeterminada "None", sin proxy. Otras configuraciones: e.g:{"http":"http://127.0.0.1:8080","https":"https://127.0.0.1:8080"}
#conf.proxy_server = {"http":"http://127.0.0.1:8080","https":"https://127.0.0.1:8080"}
conf.proxy_server = None

# Opciones de depuración
[DebugMode]
# Imprimir payloads y salir
conf.debug = 0

# Opciones de actualización
[CheckUpdate]
# Obtener actualizaciones de GitHub. Aún no implementado.
conf.update = 0

TODO

  • Inicialización global de análisis de parámetros de línea de comandos
  • Inicialización del motor
    • Establecer número de hilos
  • Inicialización del objetivo
    • Analizar y procesar automáticamente el formato de entrada (-i, inputTarget)
      • IP
      • Dominio
      • URL
      • IP/Máscara
      • IP Inicio-Fin
    • Lectura de archivo (-iF, inputLocalFile)
  • Inicialización de bruter
    • Forma de cargar configuración()
      • Leer valores de parámetros de línea de comandos
      • Leer archivo de configuración (-lcf, loadConfigFile)

Archivos de diccionario predeterminados

Los archivos de diccionario se almacenan en la carpeta data en la raíz del proyecto.

  1. dict_mode_dict.txt Diccionario del "modo diccionario", usando el diccionario predeterminado de dirsearch.
  2. crawl_mode_suffix.txt Diccionario del "modo rastreador", usando el diccionario predeterminado de FileSensor.
  3. fuzz_mode_dir.txt Diccionario del "modo fuzzing", usando el diccionario predeterminado de DirBuster.
  4. fuzz_mode_ext.txt Diccionario del "modo fuzzing", hecho con extensiones comunes.
  5. dictmult Esta carpeta es la carpeta de diccionarios múltiples predeterminada del "modo diccionario", contiene: BAK.min.txt (diccionario pequeño de archivos de respaldo), BAK.txt (diccionario grande de archivos de respaldo), LEAKS.txt (diccionario de fugas de información).
  6. fuzzmult Esta carpeta es la carpeta de diccionarios múltiples predeterminada del "modo fuzzing", contiene: fuzz_mode_dir.txt (diccionario de directorios predeterminado), fuzz_mode_ext.txt (diccionario de extensiones predeterminado).

Defectos conocidos

  1. El "modo rastreador" solo rastrea la página actual del objetivo para generar diccionarios dinámicos. En el futuro, el "módulo de rastreo" se separará de la "función de generación de diccionarios dinámicos".
  2. Acerca del error en la línea 517 de bruter.py bar.log.start(). Solución: instala progressbar2. Desinstala progressbar para evitar la importación de un módulo con el mismo nombre. Gracias a un colega por el aviso.
root@kitploit:~
Ejecuta el comando:
python3 -m pip uninstall progressbar
python3 -m pip install progressbar2

Mantenimiento

  1. Si encuentras problemas durante el uso, no dudes en abrir un issue.
  2. Este proyecto está en mantenimiento, se añadirán nuevas funciones en el futuro. Consulta la lista "TODO" para los elementos sin marcar.

Agradecimientos

Durante el desarrollo de dirmap, se tomaron prestados patrones e ideas de muchos proyectos de código abierto excelentes. Se agradece y se reconoce especialmente.

  • Sqlmap
  • POC-T
  • Saucerframe
  • gwhatweb
  • dirsearch
  • cansina
  • weakfilescan
  • FileSensor
  • BBscan
  • werdy

Contacto con el autor

mail: [email protected]

donate

Descargar herramienta
  • Opciones de modo recursivo (RecursiveScan)
    • Escaneo recursivo (-rs, recursive_scan)
    • Códigos de estado que requieren escaneo recursivo (-rd, recursive_status_code)
    • Excluir ciertos directorios (-es, exclude_subdirs)
  • Opciones de modo de escaneo (ScanModeHandler)
    • Modo diccionario (-dm, dict_mode)
      • Cargar un solo diccionario (-dmlsd, dict_mode_load_single_dict)
      • Cargar múltiples diccionarios (-dmlmd, dict_mode_load_mult_dict)
    • Modo fuerza bruta (-bm, blast_mode)
      • Rango de longitud de directorio para fuerza bruta (obligatorio)
        • Longitud mínima (-bmmin, blast_mode_min)
        • Longitud máxima (-bmmax, blast_mode_max)
      • Basado en conjunto de caracteres predeterminado
        • Basado en a-z
        • Basado en 0-9
      • Basado en conjunto de caracteres personalizado (-bmcc, blast_mode_custom_charset)
      • Reanudar generación de payload desde punto de interrupción (-bmrc, blast_mode_resume_charset)
    • Modo rastreador (-cm, crawl_mode)
      • Etiquetas de análisis personalizadas (-cmph, crawl_mode_parse_html) (a:href, img:src, form:action, script:src, iframe:src, div:src, frame:src, embed:src)
      • Analizar robots.txt (-cmpr, crawl_mode_parse_robots)
      • Escaneo fuzzing dinámico con rastreador (-cmdf, crawl_mode_dynamic_fuzz)
    • Modo fuzzing (-fm, fuzz_mode)
      • Fuzzing con un solo diccionario (-fmlsd, fuzz_mode_load_single_dict)
      • Fuzzing con múltiples diccionarios (-fmlmd, fuzz_mode_load_mult_dict)
      • Etiqueta de fuzzing (-fml, fuzz_mode_label)
  • Opciones de optimización de solicitudes (RequestHandler)
    • Tiempo de espera personalizado (-rt, request_timeout)
    • Retardo personalizado (-rd, request_delay)
    • Limitar el número de corrutinas por objetivo (-rl, request_limit)
    • Limitar número de reintentos (-rmr, request_max_retries)
    • Conexión persistente HTTP (-rpc, request_persistent_connect)
    • Método de solicitud personalizado (-rm, request_method) (get, head)
    • Manejo de estado 302 (-r3, redirection_302) (redirigir o no)
    • Encabezado personalizado
      • Otros encabezados personalizados (-rh, request_headers) (para resolver autenticación 401)
      • UA personalizado (-rhua, request_header_ua)
      • Cookie personalizada (-rhc, request_header_cookie)
  • Opciones de procesamiento de diccionario (PayloadHandler)
    • Procesamiento de diccionario (modificación de payload - eliminar barras)
    • Procesamiento de diccionario (modificación de payload - agregar barra al inicio)
    • Procesamiento de diccionario (modificación de payload - capitalizar primera letra)
    • Procesamiento de diccionario (modificación de payload - eliminar extensión)
    • Procesamiento de diccionario (modificación de payload - eliminar no alfanumérico)
  • Módulo de procesamiento de respuestas (ResponseHandler)
    • Saltar archivos de tamaño x bytes (-ss, skip_size)
    • Detección automática de páginas 404 (-ac4p, auto_check_404_page)
    • Página 503 personalizada (-c5p, custom_503_page)
    • Expresión regular personalizada para coincidir con el contenido de la respuesta y realizar alguna acción
      • Expresión regular personalizada para coincidir con la respuesta (-crp, custom_response_page)
      • Alguna acción (aún no definida)
    • Resultados de salida con códigos de estado personalizados (-rsc, response_status_code)
    • Payload de salida como ruta completa (por defecto se muestra la URL completa)
    • Mostrar content-type en los resultados
    • Guardar resultados con deduplicación automática
  • Módulo de manejo de estado (StatusHandler)
    • Visualización de estado (esperando inicio, en progreso, en pausa, error, completado)
    • Visualización de progreso
    • Control de estado (iniciar, pausar, reanudar, detener)
    • Módulo de reanudación de escaneo (aún no configurado)
      • Reanudar desde punto de interrupción
      • Reanudar desde una línea seleccionada
  • Módulo de registro (ScanLogHandler)
    • Registro de escaneo
    • Registro de errores
  • Módulo de proxy (ProxyHandler)
    • Proxy único (-ps, proxy_server)
    • Pool de proxies
  • Opciones de modo depuración (DebugMode)
    • debug (--debug)
  • Opciones de verificación de actualizaciones (CheckUpdate)
    • update (--update)