OWASP Amass: Guia Completo para Reconhecimento de Domínios em Testes de Segurança

Criado por André Miranda em Red Team 15/01/2026
Compartilhar

Introdução

Quando se trata de iniciar um teste de penetração ou uma avaliação de segurança, a fase de reconhecimento é absolutamente crítica. Quanto mais informações você conseguir reunir sobre o alvo sem ser detectado, melhor será sua posição para identificar vulnerabilidades reais. É aqui que o OWASP Amass entra em cena como uma ferramenta indispensável para profissionais de segurança, Red Teamers e Bug Bounty Hunters.

O Amass é uma ferramenta de código aberto, escrita em Go, que realiza o mapeamento detalhado da superfície de ataque de uma organização através de técnicas de coleta de informações de fontes abertas (OSINT) e reconhecimento ativo. Neste artigo, exploraremos como instalar e usar o Amass no Kali Linux, resolveremos problemas comuns que você pode encontrar, e compararemos com ferramentas alternativas, incluindo a popular Sublist3r.

O que é OWASP Amass?

O Amass é um projeto do OWASP que combina múltiplas técnicas de reconhecimento para descobrir a superfície de ataque de uma organização. A ferramenta coleta dados de mais de 55 fontes diferentes, incluindo motores de busca, APIs de inteligência de ameaças, registros de certificados de transparência (CT logs) e servidores DNS públicos.

Diferentemente de ferramentas simples que apenas listam subdomínios, o Amass vai além: ele mapeia relacionamentos entre ativos, identifica blocos CIDR, números de ASN (Autonomous System Number) e até mesmo tenta validar quais hosts estão realmente ativos na rede.

Por que usar Amass?

A resposta é simples: cobertura e profundidade. Enquanto ferramentas mais simples podem encontrar 50 subdomínios, o Amass frequentemente descobre centenas ou até milhares. Além disso, o Amass oferece flexibilidade para adaptar sua estratégia de reconhecimento conforme suas necessidades mudam durante um teste.

Instalação no Kali Linux

A instalação do Amass no Kali Linux é surpreendentemente simples, pois a ferramenta já está disponível nos repositórios oficiais.

Método 1: Instalação via APT (Recomendado)

sudo apt-get update
sudo apt-get install -y amass

Verifique se a instalação foi bem-sucedida:

amass --version

Se você ver a versão do Amass exibida, parabéns! A ferramenta está pronta para uso.

Método 2: Instalação a partir do Código-Fonte

Se você preferir a versão mais recente ou tiver problemas com a versão do repositório, pode compilar a partir do código-fonte. Isso requer que você tenha o Go instalado:

# Instalar Go (se não estiver instalado)
sudo apt-get install -y golang-go

# Instalar Amass a partir do código-fonte
go install -v github.com/owasp-amass/amass/v4/...@latest

# Adicionar ao PATH (se necessário)
export PATH=$PATH:$(go env GOPATH)/bin

Resolvendo o Erro de libpostal

Um dos problemas mais comuns ao usar o Amass é o seguinte erro:

ERR   Error loading address parser module, dir=(null)
at libpostal_setup_parser_datadir (libpostal.c:447) errno: No such file or directory

Este erro ocorre porque o Amass depende da biblioteca libpostal para análise de endereços, e os dados necessários não estão instalados ou configurados corretamente.

Solução para Kali Linux

No Kali Linux, a solução mais direta é instalar o libpostal através do apt:

sudo apt-get update
sudo apt-get install -y libpostal libpostal-dev

Se o pacote não estiver disponível nos repositórios padrão, você pode compilar a partir do código-fonte:

# Instalar dependências
sudo apt-get install -y curl build-essential autoconf automake libtool pkg-config git

# Clonar e compilar libpostal
git clone https://github.com/openvenues/libpostal.git
cd libpostal

# Limpar compilações anteriores (se houver)
make distclean

# Executar bootstrap
./bootstrap.sh

# Configurar com diretório de dados (escolha um local com 3-4 GB livres)
./configure --datadir=/usr/local/share

# Compilar e instalar
make -j4
sudo make install

# Atualizar cache de bibliotecas
sudo ldconfig

Verificação Pós-Instalação

Após instalar libpostal, teste o Amass novamente:

amass enum -passive -d example.com -o teste.txt

Se você ver subdomínios listados sem erros, o problema foi resolvido!

Alternativa: Usar Docker

Se os problemas persistirem, uma alternativa excelente é usar o Amass via Docker, que já vem com todas as dependências configuradas:

# Puxar a imagem do Amass
docker pull caffix/amass:latest

# Executar Amass em um container
docker run --rm -v $(pwd):/output caffix/amass:latest enum \
-passive -d example.com -o /output/resultado.txt

Opções Mais Interessantes do Amass

Agora que o Amass está instalado e funcionando, vamos explorar suas opções mais poderosas.

1. Enumeração Passiva (Modo Silencioso)

A enumeração passiva é a abordagem mais discreta, pois não envia tráfego direto para o alvo. O Amass consulta apenas fontes de dados públicas:

amass enum -passive -d site.com.br -o resultado_passivo.txt

Quando usar: Durante a fase inicial de reconhecimento quando você quer ser o mais discreto possível.

2. Enumeração Ativa com Brute-Force

Para descobrir mais subdomínios, você pode habilitar o brute-force de DNS usando uma wordlist:

# Baixar uma wordlist de qualidade
wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/DNS/subdomains-top1million-5000.txt

# Executar Amass com brute-force
amass enum -active -d site.com.br \
-brute \
-w subdomains-top1million-5000.txt \
-ip \
-src \
-o resultado_ativo.txt

Quando usar: Quando você tem permissão explícita para tráfego mais agressivo e quer descobrir o máximo de subdomínios possível.

3. Mapeamento de Infraestrutura (ASN e CIDR)

Descubra os blocos de rede e números de ASN associados a uma organização:

amass intel -org "Empresa" -whois -asn

Este comando fornece informações valiosas sobre a infraestrutura de rede da organização, que podem ser usadas em fases posteriores do teste.

4. Enumeração com Resolvedores Personalizados

Se você está dentro de uma rede corporativa (via VPN) e quer usar os resolvedores DNS internos:

amass enum -d site.com.br \
-r 192.168.1.1,192.168.1.2 \
-ip \
-src \
-o resultado_interno.txt

Substitua os IPs pelos servidores DNS internos do seu ambiente.

5. Saída em Formato JSON

Para integração com outras ferramentas e scripts, use o formato JSON:

amass enum -d site.com.br \
-json output.json

Isso permite que você processe os resultados programaticamente com Python, Bash ou qualquer outra linguagem.

6. Modo Recursivo com Validação

O Amass pode descobrir subdomínios de subdomínios (enumeração recursiva):

amass enum -d site.com.br \
-brute \
-w subdomains-top1million-5000.txt \
-min-for-recursive 2 \
-ip \
-src \
-o resultado_recursivo.txt

O parâmetro -min-for-recursive 2 significa que o Amass só fará enumeração recursiva em subdomínios confirmados por pelo menos 2 fontes diferentes.

7. Integração com Outras Ferramentas

Os resultados do Amass podem ser facilmente integrados a outras ferramentas de segurança:

# Verificar quais subdomínios possuem servidores web ativos
cat resultado.txt | httpx -title -status-code -tech-detect -o web_ativos.txt

# Escanear portas nos IPs descobertos
amass enum -d site.com.br -ip -o ips.txt
nmap -iL ips.txt -p- --open -oN nmap_resultado.txt

# Usar com Burp Suite para descoberta de endpoints
cat resultado.txt | httpx -o urls.txt
# Depois importe urls.txt no Burp Suite

Comparativo: Amass vs Alternativas

Embora o Amass seja excelente, existem outras ferramentas que você deve conhecer. Cada uma tem seus pontos fortes e fracos.

Subfinder

Instalação:

go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest

Características:

  • Muito rápido e leve
  • Sem dependências pesadas como libpostal
  • Excelente para enumeração passiva
  • Suporta múltiplas APIs (Shodan, VirusTotal, etc.)

Exemplo:

subfinder -d site.com.br -o resultado.txt

Quando usar: Quando você precisa de velocidade e simplicidade, e não precisa de mapeamento de infraestrutura completo.

Assetfinder

Instalação:

go install -v github.com/tomnomnom/assetfinder@latest

Características:

  • Extremamente simples e focado
  • Muito rápido
  • Usa múltiplas fontes públicas
  • Sem dependências externas

Exemplo:

assetfinder --subs-only site.com.br

Quando usar: Para reconhecimento rápido e inicial, especialmente em bug bounty programs.

Sublist3r

Instalação:

sudo apt-get install -y sublist3r
# ou
git clone https://github.com/aboul3la/Sublist3r.git
cd Sublist3r
pip3 install -r requirements.txt

Características:

  • Ferramenta Python clássica e confiável
  • Integração com múltiplos motores de busca (Google, Yahoo, Bing, Baidu, Ask)
  • Usa Netcraft, VirusTotal e outras fontes
  • Interface simples e intuitiva
  • Suporta brute-force de DNS
  • Muito popular em comunidades de bug bounty

Exemplo:

python3 sublist3r.py -d site.com.br -o resultado.txt
# Com brute-force
python3 sublist3r.py -d site.com.br -b -o resultado.txt

Quando usar: Como ferramenta complementar ao Amass, especialmente para aproveitar a integração com motores de busca. Excelente para iniciantes por sua simplicidade.

crt.sh

Acesso: https://crt.sh

Características:

  • Baseado em certificados SSL/TLS
  • Sem instalação necessária
  • Excelente para descobrir subdomínios que foram certificados
  • Pode ser consultado via linha de comando

Exemplo (via curl):

curl -s "https://crt.sh/?q=%25.site.com.br&output=json" | jq -r '.[].name_value' | sort -u

Quando usar: Como complemento a outras ferramentas, especialmente para descobrir subdomínios históricos.

Shodan CLI

Instalação:

pip3 install shodan

Características:

  • Busca em dados públicos de dispositivos conectados à internet
  • Excelente para descobrir servidores, câmeras, roteadores, etc.
  • Requer API key (gratuita com limite)
  • Muito útil para descobrir ativos não óbvios

Exemplo:

shodan search "site.com.br"

Quando usar: Para descobrir dispositivos e serviços expostos, complementando enumeração de DNS.

Tabela Comparativa

FerramentaVelocidadeCoberturaDependênciasMelhor Para
AmassMédiaExcelentelibpostalMapeamento completo de infraestrutura
SubfinderMuito RápidaBoaNenhumaEnumeração passiva rápida
AssetfinderMuito RápidaBoaNenhumaReconhecimento inicial rápido
Sublist3rRápidaBoaPythonIntegração com motores de busca
crt.shRápidaBoaNenhumaDescoberta de certificados
Shodan CLIMédiaExcelentePythonDescoberta de ativos expostos

Melhores Práticas de Reconhecimento com Amass

1. Comece com Enumeração Passiva

Sempre comece com o modo passivo para estabelecer uma linha de base:

amass enum -passive -d seu-alvo.com -o fase1_passiva.txt

2. Use Múltiplas Wordlists

Diferentes wordlists podem descobrir diferentes subdomínios:

amass enum -active -d seu-alvo.com \
-brute \
-w wordlist1.txt \
-o resultado1.txt

amass enum -active -d seu-alvo.com \
-brute \
-w wordlist2.txt \
-o resultado2.txt

# Combine e remova duplicatas
cat resultado1.txt resultado2.txt | sort -u > resultado_final.txt

3. Configure API Keys

Para maximizar a eficácia, configure chaves de API para serviços como VirusTotal, Shodan e outros. Crie um arquivo ~/.config/amass/config.ini:

[data_sources]
[data_sources.virustotal]
api_key = "sua_chave_aqui"

[data_sources.shodan]
api_key = "sua_chave_aqui"

4. Salve em Banco de Dados

O Amass pode armazenar resultados em um banco de dados local para análise posterior:

amass enum -d seu-alvo.com -dir ./amass_db

Depois consulte o banco de dados:

amass db -show seu-alvo.com

5. Sempre Tenha Permissão Explícita

Esta é a regra mais importante: Sempre obtenha permissão escrita antes de executar testes de reconhecimento. O reconhecimento não autorizado pode violar leis de proteção de dados e segurança cibernética, como a Lei Geral de Proteção de Dados (LGPD) no Brasil.

Conclusão

O OWASP Amass é uma ferramenta poderosa e versátil que deve estar no arsenal de todo profissional de segurança. Sua capacidade de descobrir e mapear a superfície de ataque de uma organização a torna inestimável durante a fase de reconhecimento de um teste de penetração.

Embora o erro de libpostal possa ser frustrante inicialmente, as soluções apresentadas neste artigo devem resolver o problema na maioria dos casos. E se o Amass não atender perfeitamente às suas necessidades, as alternativas mencionadas (Subfinder, Assetfinder, Sublist3r, crt.sh e Shodan) oferecem diferentes abordagens que podem ser combinadas para criar um pipeline de reconhecimento robusto e eficiente.

Lembre-se: o reconhecimento é a base de um teste de penetração bem-sucedido. Quanto melhor você mapear a superfície de ataque, mais vulnerabilidades poderá descobrir.

Referências

  1. OWASP Amass Project - GitHub
  2. OWASP Amass Documentation
  3. libpostal - GitHub
  4. Subfinder - ProjectDiscovery
  5. Assetfinder - tomnomnom
  6. Sublist3r - GitHub
  7. crt.sh - Certificate Transparency Search
  8. Shodan CLI Documentation
  9. Lei Geral de Proteção de Dados (LGPD)

Comentários (0)

Compartilhar

Compartilhar este post com outros