Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
dirmap — Uma ferramenta avançada de varredura de diretórios e arquivos web que será mais poderosa que DirBuster, Dirsearch, cansina e Yu Jian. Uma ferramenta avançada de varredura de diretórios e arquivos web que será mais poderosa que DirBuster, Dirsearch, cansina e Yu Jian. | Kitploit
Ferramentas/GitHubGitHub/h4ckforjob/dirmap
ReconhecimentoScanners de VulnerabilidadesColeta de InformaçõesSegurança WebTestes de Penetração
GitHubh4ckforjob/dirmap

dirmap

Uma ferramenta avançada de varredura de diretórios e arquivos web que será mais poderosa que DirBuster, Dirsearch, cansina e Yu Jian. Uma ferramenta avançada de varredura de diretórios e arquivos web que será mais poderosa que DirBuster, Dirsearch, cansina e Yu Jian.

Ver Repositório
3.4k5551há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Dirmap

English

Uma ferramenta avançada de varredura de diretórios web, com funcionalidades superiores ao DirBuster, Dirsearch, cansina, Yujian

dirmap

Análise de requisitos

Após uma extensa pesquisa, resume-se que uma excelente ferramenta de varredura de diretórios web deve ter pelo menos as seguintes funcionalidades:

  • Motor de concorrência
  • Capacidade de usar dicionários
  • Capacidade de realizar brute force puro
  • Capacidade de rastrear páginas e gerar dicionários dinamicamente
  • Capacidade de realizar varredura fuzz
  • Solicitações personalizadas
  • Processamento personalizado de resultados de resposta...

Então, vamos ver as características do Dirmap.

Características

  1. Suporta concorrência de n targets * n payloads
  2. Suporta varredura recursiva
  3. Suporta códigos de status personalizados para varredura recursiva
  4. Suporta varredura com dicionário (único|múltiplo)
  5. Suporta brute force com conjunto de caracteres personalizado
  6. Suporta varredura com dicionário dinâmico de crawler
  7. Suporta fuzz de URL alvo com tags personalizadas
  8. User-Agent de solicitação personalizado
  9. Atraso aleatório de solicitação personalizado
  10. Tempo limite de solicitação personalizado
  11. Proxy de solicitação personalizado
  12. Expressão regular personalizada para corresponder páginas 404 falsas
  13. Códigos de status de resposta a serem processados personalizados
  14. Pular páginas com tamanho x personalizado
  15. Exibir content-type personalizado
  16. Exibir tamanho da página personalizado
  17. Salvar resultados deduplicados por domínio

Modo de usar

Preparação do ambiente

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

Uso rápido

Alvo de entrada

Alvo único, padrão http

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

Sub-rede (formato CIDR)

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

Faixa de rede

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

Leitura de arquivo

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

targets.txt suporta os formatos acima

Salvamento de resultados

  1. Os resultados serão salvos automaticamente na pasta output na raiz do projeto
  2. Cada alvo gera um txt, com formato de nome domínio_alvo.txt
  3. Os resultados são automaticamente deduplicados, sem preocupações com redundância

Uso avançado

Personalize a configuração do dirmap e explore seus recursos avançados

Atualmente, a configuração detalhada é feita carregando um arquivo de configuração, não suporta configuração detalhada via parâmetros de linha de comando!

Edite o arquivo dirmap.conf na raiz do projeto para configurar

Explicação detalhada da configuração do dirmap.conf

root@kitploit:~
# Configuração de processamento de varredura recursiva
[RecursiveScan]
# Ativar varredura recursiva: Desativado:0; Ativado:1
conf.recursive_scan = 0
# Ao encontrar esses códigos de status, ativar varredura recursiva. Padrão [301,403]
conf.recursive_status_code = [301,403]
# Sair da varredura se a URL exceder este comprimento
conf.recursive_scan_max_url_length = 60
# Estas extensões não são varridas recursivamente
conf.recursive_blacklist_exts = ["html",'htm','shtml','png','jpg','webp','bmp','js','css','pdf','ini','mp3','mp4']
# Configurar diretórios a serem excluídos da varredura. Padrão vazio. Outros exemplos: e.g:['/test1','/test2']
#conf.exclude_subdirs = ['/test1','/test2']
conf.exclude_subdirs = ""

# Configuração de modo de varredura (4 modos, apenas 1 pode ser selecionado por vez)
[ScanModeHandler]
# Modo dicionário: Desativado:0; Dicionário único:1; Múltiplos dicionários:2
conf.dict_mode = 1
# Caminho do dicionário único
conf.dict_mode_load_single_dict = "dict_mode_dict.txt"
# Caminho do modo de múltiplos dicionários, padrão dictmult
conf.dict_mode_load_mult_dict = "dictmult"
# Modo brute force: Desativado:0; Ativado:1
conf.blast_mode = 0
# Comprimento mínimo do dicionário gerado. Padrão 3
conf.blast_mode_min = 3
# Comprimento máximo do dicionário gerado. Padrão 3
conf.blast_mode_max = 3
# Conjunto de caracteres padrão: a-z. Ainda não utilizado.
conf.blast_mode_az = "abcdefghijklmnopqrstuvwxyz"
# Conjunto de caracteres padrão: 0-9. Ainda não utilizado.
conf.blast_mode_num = "0123456789"
# Conjunto de caracteres personalizado. Padrão "abc". Usar abc para construir dicionário
conf.blast_mode_custom_charset = "abc"
# Conjunto de caracteres de continuação personalizado. Padrão vazio.
conf.blast_mode_resume_charset = ""
# Modo crawler: Desativado:0; Ativado:1
conf.crawl_mode = 0
# Dicionário de sufixos para gerar payloads dinâmicos de arquivos sensíveis
conf.crawl_mode_dynamic_fuzz_suffix = "crawl_mode_suffix.txt"
# Analisar arquivo robots.txt. Ainda não implementado.
conf.crawl_mode_parse_robots = 0
# Expressão XPath para analisar páginas HTML
conf.crawl_mode_parse_html = "//*/@href | //*/@src | //form/@action"
# Ativar geração dinâmica de dicionário do crawler. Padrão 1, ativado. Outras configurações: e.g: Desativado:0; Ativado:1
conf.crawl_mode_dynamic_fuzz = 1
# Modo Fuzz: Desativado:0; Dicionário único:1; Múltiplos dicionários:2
conf.fuzz_mode = 0
# Caminho do dicionário único para modo fuzz.
conf.fuzz_mode_load_single_dict = "fuzz_mode_dir.txt"
# Caminho do modo de múltiplos dicionários para fuzz. Padrão: fuzzmult
conf.fuzz_mode_load_mult_dict = "fuzzmult"
# Definir tag de fuzz. Padrão {dir}. Usar a tag {dir} como ponto de inserção do dicionário, substituir http://target.com/{dir}.php por http://target.com/cada_linha_do_dicionário.php. Outras configurações: e.g:{dir};{ext}
#conf.fuzz_mode_label = "{ext}"
conf.fuzz_mode_label = "{dir}"

# Configuração de manipulação de payload. Ainda não implementado.
[PayloadHandler]

# Configuração de manipulação de solicitação
[RequestHandler]
# Cabeçalhos de solicitação personalizados. Padrão vazio. Outras configurações: e.g:test1=test1,test2=test2
#conf.request_headers = "test1=test1,test2=test2"
conf.request_headers = ""
# User-Agent de solicitação personalizado. Padrão UA do 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 solicitação personalizado. Padrão vazio, sem cookie. Outras configurações: e.g:cookie1=cookie1; cookie2=cookie2;
#conf.request_header_cookie = "cookie1=cookie1; cookie2=cookie2"
conf.request_header_cookie = ""
# Autenticação 401 personalizada. Ainda não implementado. (A funcionalidade de cabeçalho personalizado já atende a essa necessidade, preguiça XD)
conf.request_header_401_auth = ""
# Método de solicitação personalizado. Padrão método get. Outras configurações: e.g:get;head
#conf.request_method = "head"
conf.request_method = "get"
# Tempo limite de cada solicitação personalizado. Padrão 3 segundos.
conf.request_timeout = 3
# Atraso aleatório (0-x) segundos antes de enviar solicitação. Parâmetro deve ser inteiro. Padrão 0 segundos, sem atraso.
conf.request_delay = 0
# Número de threads de corrotina para um único alvo. Padrão 30 threads
conf.request_limit = 30
# Número máximo de tentativas. Ainda não implementado.
conf.request_max_retries = 1
# Configurar conexão persistente. Usar session(). Ainda não implementado.
conf.request_persistent_connect = 0
# Redirecionamento 302. Padrão False, sem redirecionamento. Outras configurações: e.g:True;False
conf.redirection_302 = False
# Adicionar sufixo ao payload. Padrão vazio, sem sufixo durante a varredura. Outras configurações: e.g:txt;php;asp;jsp
#conf.file_extension = "txt"
conf.file_extension = ""

# Configuração de manipulação de resposta
[ResponseHandler]
# Configurar status de resposta a serem registrados. Padrão [200], registrar status 200. Outras configurações: e.g:[200,403,301]
#conf.response_status_code = [200,403,301]
conf.response_status_code = [200]
# Registrar cabeçalho content-type da resposta. Padrão 1 para registrar
#conf.response_header_content_type = 0
conf.response_header_content_type = 1
# Registrar tamanho da página. Padrão 1 para registrar
#conf.response_size = 0
conf.response_size = 1
# Detectar automaticamente página 404. Padrão True, ativado. Outras configurações: e.g:True;False
#conf.auto_check_404_page = False
conf.auto_check_404_page = True
# Expressão regular personalizada para corresponder página 503. Ainda não implementado. Provavelmente será removido.
#conf.custom_503_page = "page 503"
conf.custom_503_page = ""
# Expressão regular personalizada para corresponder conteúdo da página
#conf.custom_response_page = "([0-9]){3}([a-z]){3}test"
conf.custom_response_page = ""
# Pular exibição de páginas com tamanho x. Se não configurado, usar "None". Padrão "None". Outras configurações: e.g:None;0b;1k;1m
#conf.skip_size = "0b"
conf.skip_size = "None"

# Opções de proxy
[ProxyHandler]
# Configuração de proxy. Padrão "None", sem proxy. Outras configurações: 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

# Opções de Debug
[DebugMode]
# Imprimir payloads e sair
conf.debug = 0

# Opções de atualização
[CheckUpdate]
# Obter atualização do github. Ainda não implementado.
conf.update = 0

TODO

  • Inicialização global da análise de parâmetros de linha de comando
  • Inicialização do engine
    • Definir número de threads
  • Inicialização do target
    • Analisar e processar automaticamente o formato de entrada ( -i,inputTarget)
      • IP
      • Domínio
      • URL
      • IP/MASK
      • IP Início-Fim
    • Leitura de arquivo (-iF,inputLocalFile)
  • Inicialização do bruter
    • Carregar modo de configuração()
      • Ler valores de parâmetros de linha de comando
      • Ler arquivo de configuração (-lcf,loadConfigFile)

Arquivos de dicionário padrão

Os arquivos de dicionário estão armazenados na pasta data na raiz do projeto

  1. dict_mode_dict.txt Dicionário do "modo dicionário", usando dicionário padrão do dirsearch
  2. crawl_mode_suffix.txt Dicionário do "modo crawler", usando dicionário padrão do FileSensor
  3. fuzz_mode_dir.txt Dicionário do "modo fuzz", usando dicionário padrão do DirBuster
  4. fuzz_mode_ext.txt Dicionário do "modo fuzz", feito com sufixos comuns
  5. dictmult Esta pasta é a pasta de múltiplos dicionários padrão do "modo dicionário", contém: BAK.min.txt (dicionário pequeno de backup), BAK.txt (dicionário grande de backup), LEAKS.txt (dicionário de arquivos de vazamento de informação)
  6. fuzzmult Esta pasta é a pasta de múltiplos dicionários padrão do "modo fuzz", contém: fuzz_mode_dir.txt (dicionário de diretórios padrão), fuzz_mode_ext.txt (dicionário de sufixos padrão)

Defeitos conhecidos

  1. O "modo crawler" apenas rastreia a página atual do alvo para gerar dicionário dinâmico. No futuro, o projeto separará o "módulo crawler" da "função de geração de dicionário dinâmico".
  2. Sobre o erro bar.log.start() na linha 517 do bruter.py. Solução: instale progressbar2. Desinstale progressbar. Para evitar importação de módulo com o mesmo nome. Agradecimento a um certo colega pela dica.
root@kitploit:~
Execute o comando:
python3 -m pip uninstall progressbar
python3 -m pip install progressbar2

Manutenção

  1. Se houver problemas durante o uso, sinta-se à vontade para abrir uma issue
  2. Este projeto está em manutenção, novas funcionalidades serão adicionadas no futuro, consulte a lista "TODO" para itens não marcados

Agradecimentos

Durante o desenvolvimento do dirmap, foram emprestados padrões e ideias de vários excelentes projetos de código aberto, aqui declarados e agradecidos.

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

Contato do autor

mail: [email protected]

donate

Baixar ferramenta
  • Opção de modo recursivo (RecursiveScan)
    • Varredura recursiva (-rs,recursive_scan)
    • Códigos de status para recursão (-rd,recursive_status_code)
    • Excluir certos diretórios (-es,exclude_subdirs)
  • Opções de modo de varredura (ScanModeHandler)
    • Modo dicionário (-dm,dict_mode)
      • Carregar dicionário único (-dmlsd,dict_mode_load_single_dict)
      • Carregar múltiplos dicionários (-dmlmd,dict_mode_load_mult_dict)
    • Modo brute force (-bm,blast_mode)
      • Faixa de comprimento do diretório para brute force (obrigatório)
        • Comprimento mínimo (-bmmin,blast_mode_min)
        • Comprimento máximo (-bmmax,blast_mode_max)
      • Baseado no conjunto de caracteres padrão
        • Baseado em a-z
        • Baseado em 0-9
      • Baseado em conjunto de caracteres personalizado (-bmcc,blast_mode_custom_charset)
      • Continuar geração de payload a partir de checkpoint (-bmrc,blast_mode_resume_charset)
    • Modo crawler (-cm,crawl_mode)
      • Tags de análise personalizadas (-cmph,crawl_mode_parse_html)(a:href,img:src,form:action,script:src,iframe:src,div:src,frame:src,embed:src)
      • Analisar robots.txt (-cmpr,crawl_mode_parse_robots)
      • Varredura fuzz dinâmica do crawler (-cmdf,crawl_mode_dynamic_fuzz)
    • Modo fuzz (-fm,fuzz_mode)
      • Dicionário único para fuzz (-fmlsd,fuzz_mode_load_single_dict)
      • Múltiplos dicionários para fuzz (-fmlmd,fuzz_mode_load_mult_dict)
      • Tag de fuzz (-fml,fuzz_mode_label)
  • Opções de otimização de solicitação (RequestHandler)
    • Tempo limite de solicitação personalizado (-rt,request_timeout)
    • Atraso de solicitação personalizado (-rd,request_delay)
    • Limitar número de corrotinas por alvo (-rl,request_limit)
    • Limitar número de tentativas (-rmr,request_max_retries)
    • Conexão persistente HTTP (-rpc,request_persistent_connect)
    • Método de solicitação personalizado (-rm,request_method)(get, head)
    • Tratamento de status 302 (-r3,redirection_302)(redirecionar ou não)
    • Cabeçalhos personalizados
      • Outros cabeçalhos personalizados (-rh,request_headers)(para autenticação 401)
      • UA personalizado (-rhua,request_header_ua)
      • Cookie personalizado (-rhc,request_header_cookie)
  • Opções de manipulação de dicionário (PayloadHandler)
    • Processamento de dicionário (modificar payload - remover barras)
    • Processamento de dicionário (modificar payload - adicionar barra no início)
    • Processamento de dicionário (modificar payload - capitalizar primeira letra)
    • Processamento de dicionário (modificar payload - remover extensão)
    • Processamento de dicionário (modificar payload - remover não alfanumérico)
  • Módulo de processamento de resposta (ResponseHandler)
    • Pular arquivos com tamanho x bytes (-ss,skip_size)
    • Detecção automática de página 404 (-ac4p,auto_check_404_page)
    • Página 503 personalizada (-c5p,custom_503_page)
    • Expressão regular personalizada para corresponder conteúdo da resposta e realizar alguma ação
      • Expressão regular personalizada para corresponder resposta (-crp,custom_response_page)
      • Alguma ação (ainda não definida)
    • Saída de resultados com códigos de status personalizados (-rsc,response_status_code)
    • Saída de payload como caminho completo (padrão saída URL completa)
    • Exibir content-type nos resultados
    • Salvar resultados automaticamente deduplicados
  • Módulo de gerenciamento de status (StatusHandler)
    • Exibição de status (aguardando início, em andamento, pausado, erro, concluído)
    • Exibição de progresso
    • Controle de status (iniciar, pausar, continuar, parar)
    • Módulo de continuação de varredura (ainda não configurado)
    • Continuar varredura a partir de checkpoint
    • Continuar varredura a partir de uma linha específica
  • Módulo de registro de log (ScanLogHandler)
    • Log de varredura
    • Log de erros
  • Módulo de proxy (ProxyHandler)
    • Proxy único (-ps,proxy_server)
    • Pool de proxies
  • Opção de modo debug (DebugMode)
    • debug(--debug)
  • Opção de verificação de atualização (CheckUpdate)
    • update(--update)