Skip to content

DIRB - Descoberta de Diretórios e Arquivos Web

O DIRB é um scanner de conteúdo web (Web Content Scanner) utilizado para descobrir diretórios e arquivos existentes — inclusive os ocultos — em servidores web. Criado por Ramón Pinuaga (conhecido como The Dark Raver), ele funciona lançando um ataque baseado em dicionário contra um servidor: para cada palavra de uma lista (wordlist), o DIRB monta uma URL, faz a requisição e analisa a resposta HTTP para determinar se aquele recurso existe.

Essa técnica é valiosa no reconhecimento de aplicações web porque muitos recursos importantes não estão diretamente vinculados nas páginas visíveis — como painéis administrativos (/admin), diretórios de backup (/backup), arquivos de configuração esquecidos e áreas de teste. Ao mapear esses recursos, o DIRB ajuda a revelar a estrutura real de uma aplicação e sua superfície de ataque.

Em distribuições baseadas em Debian, o DIRB está disponível diretamente nos repositórios oficiais:

Terminal window
sudo apt update
sudo apt install dirb

O DIRB é escrito em C e depende da biblioteca libcurl. Para compilá-lo a partir do código-fonte:

Terminal window
# Instalar as dependências (Debian/Ubuntu)
sudo apt install libcurl4-openssl-dev build-essential
# Após baixar e extrair o código-fonte, dentro do diretório:
./configure
make
# O binário será gerado no diretório atual
./dirb

Executar o DIRB sem argumentos exibe a versão e a sintaxe de uso:

Terminal window
dirb

O desempenho do DIRB depende diretamente da qualidade da wordlist utilizada. A ferramenta já vem com um conjunto de listas pré-configuradas, geralmente localizadas em /usr/share/dirb/wordlists/.

WordlistDescrição
common.txtLista padrão, com os diretórios e arquivos mais comuns
small.txtLista reduzida, para varreduras rápidas
big.txtLista extensa, para varreduras mais completas (e demoradas)
indexes.txtNomes comuns de páginas de índice
extensions_common.txtExtensões de arquivo comuns
mutations_common.txtVariações e mutações comuns de nomes
vulns/Diretório com listas voltadas a vulnerabilidades específicas
others/Diretório com listas adicionais (usuários, senhas, etc.)

Para visualizar todas as listas disponíveis no seu sistema:

Terminal window
ls -l /usr/share/dirb/wordlists/

A sintaxe fundamental do DIRB é:

Terminal window
dirb <url_base> [<wordlist>] [opções]

Se nenhuma wordlist for informada, o DIRB utiliza a common.txt por padrão:

Terminal window
# Varredura usando a wordlist padrão (common.txt)
dirb http://example.com

Para especificar uma wordlist diferente:

Terminal window
# Varredura usando a wordlist "big.txt"
dirb http://example.com /usr/share/dirb/wordlists/big.txt

Durante a execução, o DIRB exibe cada diretório ou arquivo encontrado junto com o código de status HTTP e o tamanho da resposta. Diretórios encontrados são explorados recursivamente por padrão:

+ http://example.com/index.html (CODE:200|SIZE:1256)
==> DIRECTORY: http://example.com/admin/
+ http://example.com/robots.txt (CODE:200|SIZE:340)

Um dos recursos mais úteis do DIRB é a capacidade de anexar extensões de arquivo a cada palavra da wordlist. Isso é essencial para encontrar arquivos específicos, como scripts PHP ou páginas HTML.

A opção -X recebe as extensões diretamente na linha de comando:

Terminal window
# Testar cada palavra também com as extensões .php e .html
dirb http://example.com -X .php,.html

Já a opção -x lê as extensões de um arquivo:

Terminal window
dirb http://example.com -x extensoes.txt
OpçãoDescrição
-a <agent>Define um User-Agent personalizado
-c <cookie>Envia um cookie específico nas requisições
-H <header>Adiciona um cabeçalho HTTP personalizado
-iTorna a busca insensível a maiúsculas/minúsculas
-N <código>Ignora respostas com o código HTTP informado
-o <arquivo>Salva o resultado da varredura em um arquivo
-p <proxy>Utiliza um proxy (host:porta)
-rNão realiza busca recursiva nos diretórios encontrados
-RRecursão interativa (pergunta antes de entrar em cada diretório)
-SModo silencioso (silent)
-u <user:senha>Autenticação HTTP
-vExibe também as páginas não encontradas (NOT FOUND)
-wNão interrompe a execução diante de mensagens de aviso
-z <ms>Adiciona um atraso (em milissegundos) entre as requisições
Terminal window
# Salvar o resultado em um arquivo
dirb http://example.com -o resultado.txt
# Desativar a recursão (varredura apenas do primeiro nível)
dirb http://example.com -r
# Adicionar um atraso de 100ms entre requisições para reduzir a carga
dirb http://example.com -z 100
# Usar autenticação HTTP básica
dirb http://example.com -u admin:senha123
# Varredura através de um proxy
dirb http://example.com -p 127.0.0.1:8080
# Ignorar respostas com código 403 (Forbidden)
dirb http://example.com -N 403

Um fluxo típico de descoberta de conteúdo combina wordlist, extensões e registro dos resultados. Suponha que você precise mapear uma aplicação PHP autorizada e documentar os achados:

Terminal window
# 1. Varredura completa com wordlist grande, extensões PHP e saída em arquivo
dirb http://example.com /usr/share/dirb/wordlists/big.txt -X .php,.txt -o mapeamento.txt
# 2. Varredura discreta, com atraso e sem recursão, para uma primeira análise
dirb http://example.com -r -z 200
# 3. Investigação de um diretório específico encontrado
dirb http://example.com/admin/ -X .php

Com os diretórios e arquivos mapeados, você terá uma visão clara da estrutura da aplicação — incluindo áreas administrativas, arquivos de configuração e recursos que não estavam visíveis na navegação normal. Esse mapa serve de base para as etapas seguintes de uma avaliação de segurança.

O DIRB é uma ferramenta simples, direta e eficaz para a fase de descoberta de conteúdo em avaliações de aplicações web. Apesar de ser um projeto mais antigo, continua amplamente utilizado por sua confiabilidade e facilidade de uso. A combinação de wordlists bem escolhidas com o uso adequado de extensões faz toda a diferença na qualidade dos resultados.

Vale lembrar que a descoberta de diretórios é apenas uma etapa do reconhecimento e deve ser conduzida sempre de forma ética e autorizada. Entender quais recursos estão expostos em um servidor é tão útil para identificar riscos quanto para reforçar a segurança dos sistemas que administramos — por exemplo, revelando diretórios que deveriam estar protegidos ou removidos.