Skip to main content

EnumRust | enumeração de subdomínios, resolução DNS | Solyd One

  • EnumRust | enumeração de subdomínios, resolução DNS | Solyd One

EnumRust

EnumRust é uma ferramenta de enumeração e scanner de segurança escrita em Rust. O projeto combina enumeração de subdomínios, resolução DNS, varredura de portas, crawling web, análise de JavaScript, busca por secrets, Nuclei, dashboard em tempo real e modo bug bounty. Segundo o README, ele integra ferramentas como subfinder, dnsx, httpx, masscan, nuclei, ffuf, feroxbuster, trufflehog, katana, gau, waybackurls, shortscan e WPScan via Docker. (GitHub)

Use apenas em domínios, IPs e ambientes onde você tem autorização. A ferramenta executa enumeração, scanning e testes que podem ser interpretados como atividade ofensiva.


Para que serve

O EnumRust pode ser usado para:

  • enumerar subdomínios;
  • resolver DNS para IPs;
  • validar hosts HTTP/HTTPS ativos;
  • fazer scan de portas;
  • procurar painéis administrativos;
  • rodar templates do Nuclei;
  • analisar arquivos JavaScript em busca de endpoints e possíveis secrets;
  • gerar relatórios em .txt, .json e .html;
  • acompanhar o scan por um dashboard web;
  • executar modo bug bounty com notificações via Discord.

O repositório descreve também um modo MCP para integração com ferramentas compatíveis com Model Context Protocol, expondo ações como subdomain_enum, dns_resolve, ip_scan, http_probe, js_crawl, admin_finder, secrets_scan, vuln_scan, wordpress_scan, info_disclosure e full_scan. (GitHub)


Instalação no Linux

Opção recomendada: instalação automática

git clone https://github.com/KingOfBugbounty/enumrust.git
cd enumrust
sudo bash install.sh

Esse script instala ou configura Rust, Go, o binário enumrust, ferramentas auxiliares e templates do Nuclei, conforme descrito no README do projeto. (GitHub)

Depois da instalação, abra um novo terminal ou rode:

source ~/.bashrc

Valide se as ferramentas estão disponíveis:

enumrust --check-tools

Faça um scan básico:

enumrust -d example.com

Instalação manual no Linux

Use esta opção se quiser controlar cada etapa.

1. Instalar dependências básicas

Ubuntu/Debian:

sudo apt update
sudo apt install -y git curl build-essential pkg-config libssl-dev golang-go jq whois tmux masscan

2. Instalar Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

O instalador oficial do Rust via rustup usa esse fluxo com curl no Linux/WSL. (Rustup)

Verifique:

rustc --version
cargo --version

3. Clonar e compilar o EnumRust

git clone https://github.com/KingOfBugbounty/enumrust.git
cd enumrust
cargo build --release

O README mostra o build manual com cargo build --release. (GitHub)

O binário fica em:

./target/release/enumrust

Teste:

./target/release/enumrust --check-tools

4. Instalar ferramentas usadas pelo EnumRust

O próprio projeto permite instalar as ferramentas auxiliares com:

./target/release/enumrust --install-tools

E validar depois:

./target/release/enumrust --check-tools

Segundo a documentação do repositório, esse comando instala ferramentas como httpx, dnsx, nuclei, subfinder, haktrails, tlsx, ffuf, feroxbuster, trufflehog, hakrawler, urlfinder, katana, gau, waybackurls, shortscan, entre outras. (GitHub)


Instalação no Windows

No Windows, o caminho mais recomendado é usar WSL2 ou Docker. Embora seja possível tentar compilar Rust nativamente no Windows, várias ferramentas do ecossistema usadas pelo EnumRust são mais naturais em Linux, principalmente masscan, ferramentas Go de recon e dependências de terminal.


Windows com WSL2

1. Instalar WSL

Abra o PowerShell como administrador:

wsl --install

A Microsoft documenta esse como o comando padrão para instalar o WSL e, por padrão, instalar uma distribuição Linux como Ubuntu. (Microsoft Learn)

Depois reinicie o computador, abra o Ubuntu/WSL e atualize os pacotes:

sudo apt update && sudo apt upgrade -y

2. Instalar o EnumRust dentro do WSL

Dentro do terminal do Ubuntu no WSL:

sudo apt install -y git curl build-essential pkg-config libssl-dev golang-go jq whois tmux masscan

git clone https://github.com/KingOfBugbounty/enumrust.git
cd enumrust

sudo bash install.sh

Valide:

enumrust --check-tools

Use:

enumrust -d example.com --subfinder

Windows com Docker

Essa é uma boa opção quando você não quer instalar todas as dependências diretamente na máquina.

1. Clonar o projeto

No PowerShell, Git Bash ou WSL:

git clone https://github.com/KingOfBugbounty/enumrust.git
cd enumrust

2. Build da imagem

docker build -t enumrust .

3. Verificar ferramentas

docker run --rm enumrust --check-tools

4. Rodar um scan

Linux/WSL/Git Bash:

docker run --rm --privileged \
-v "$(pwd)/results:/results" \
enumrust -d example.com --subfinder --full-scan

PowerShell:

docker run --rm --privileged `
-v "${PWD}/results:/results" `
enumrust -d example.com --subfinder --full-scan

O README informa que o --privileged é necessário para o masscan, por causa de acesso a raw sockets. Se você não for usar scan de portas com masscan, pode tentar rodar sem --privileged. (GitHub)


Uso básico

Verificar ferramentas instaladas

enumrust --check-tools

Ou, se estiver usando o binário local compilado:

./target/release/enumrust --check-tools

Scan básico de domínio

enumrust -d example.com

Enumeração com subfinder

enumrust -d example.com --subfinder

Ou no binário local:

./target/release/enumrust -d example.com --subfinder

Scan completo

enumrust -d example.com --full-scan

O README mostra o uso de --full-scan para enumeração completa do domínio. (GitHub)


Scan com subfinder e full scan

enumrust -d example.com --subfinder --full-scan

Dashboard web

O EnumRust possui um dashboard web para acompanhar o andamento do scan em tempo real.

Iniciar dashboard na porta padrão

enumrust --dashboard

Por padrão, o README indica o dashboard em http://0.0.0.0:8080. (GitHub)

Acesse no navegador:

http://localhost:8080

Usar outra porta

enumrust --dashboard --dashboard-port 3000

Acesse:

http://localhost:3000

Rodar scan com dashboard

enumrust -d example.com --subfinder --full-scan --dashboard

No primeiro acesso, o terminal exibe um Setup Code. Você usa esse código no navegador para criar usuário e senha do dashboard. (GitHub)


Modo Bug Bounty

O modo bug bounty executa uma varredura mais focada em descobertas úteis para reportes, como painéis administrativos, credenciais padrão, secrets e vulnerabilidades críticas.

Scan bug bounty básico

enumrust -d example.com --bugbounty

Com notificação no Discord

enumrust -d example.com \
--bugbounty \
--discord-webhook "https://discord.com/api/webhooks/SEU_WEBHOOK"

Modo mais agressivo

enumrust -d example.com \
--bugbounty \
--full-scan \
--workers 20 \
--discord-webhook "https://discord.com/api/webhooks/SEU_WEBHOOK"

Segundo o README, esse modo procura painéis administrativos, testa combinações comuns de credenciais, envia alertas no Discord e gera relatórios detalhados para submissões de bug bounty. (GitHub)

Cuidado com --workers 20. Mais workers significa mais concorrência, mais ruído e maior chance de bloqueio ou impacto no alvo. Use apenas onde você tem autorização clara.


Scan de infraestrutura

Além de domínio, o projeto documenta uso com IP único, CIDR, range e arquivo de targets. (GitHub)

IP único

enumrust --infraestrutura --ip-range 192.168.1.100

CIDR

enumrust --infraestrutura --ip-range 192.168.1.0/24

Range de IPs

enumrust --infraestrutura --ip-range 192.168.1.1-192.168.1.254

Lista separada por vírgula

enumrust --infraestrutura --ip-range 192.168.1.1,192.168.1.5,192.168.1.10

Targets a partir de arquivo

enumrust -f targets.txt --full-scan

Exemplo de targets.txt:

example.com
api.example.com
192.168.1.100

Saída dos resultados

Após um scan em example.com, o projeto salva resultados em uma pasta com o nome do alvo. A estrutura documentada inclui arquivos como: (GitHub)

example.com/
├── subdomains.txt
├── ips.txt
├── http200.txt
├── masscan.txt
├── ports.txt
├── nuclei.txt
├── urls.txt
├── js_endpoints.txt
├── js_secrets.txt
├── s3.txt
├── ferox_200_only.txt
├── wpscan_results.json
├── shortscan_results.json
├── ai_executive_summary.txt
├── all_results.txt
├── report.html
├── current_status.json
├── progress.jsonl
└── metrics.json

Arquivos principais

ArquivoPara que serve
subdomains.txtSubdomínios encontrados
ips.txtIPs resolvidos
http200.txtHosts HTTP/HTTPS ativos
masscan.txtResultado bruto do scan de portas
ports.txtPortas abertas validadas
nuclei.txtAchados do Nuclei
urls.txtURLs descobertas
js_endpoints.txtEndpoints encontrados em JavaScript
js_secrets.txtPossíveis secrets encontrados em JavaScript
all_results.txtRelatório consolidado
report.htmlRelatório HTML interativo

Docker com dashboard

Linux/WSL/Git Bash:

docker run --rm --privileged \
-p 8080:8080 \
-v "$(pwd)/results:/results" \
enumrust -d example.com --dashboard --full-scan

PowerShell:

docker run --rm --privileged `
-p 8080:8080 `
-v "${PWD}/results:/results" `
enumrust -d example.com --dashboard --full-scan

Depois acesse:

http://localhost:8080

MCP Server

O repositório também possui um servidor MCP.

Build do MCP

cd enumrust
cargo build --release --package enumrust_mcp

Rodar servidor MCP standalone

./target/release/enumrust-mcp

Testar listagem de tools

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | ./target/release/enumrust-mcp

O README documenta ferramentas MCP como subdomain_enum, dns_resolve, ip_scan, http_probe, js_crawl, admin_finder, secrets_scan, vuln_scan, wordpress_scan, info_disclosure e full_scan. (GitHub)


Comandos úteis do dia a dia

Ver ajuda

enumrust --help

Verificar dependências

enumrust --check-tools

Instalar dependências auxiliares

enumrust --install-tools

Scan simples

enumrust -d example.com

Scan completo

enumrust -d example.com --full-scan

Scan com dashboard

enumrust -d example.com --full-scan --dashboard

Scan bug bounty

enumrust -d example.com --bugbounty --full-scan

Scan de IP/CIDR

enumrust --infraestrutura --ip-range 10.0.0.0/24

Problemas comuns

enumrust: command not found

Provavelmente o binário não está no PATH.

Teste usando o caminho completo:

./target/release/enumrust --help

Ou copie para /usr/local/bin:

sudo cp ./target/release/enumrust /usr/local/bin/enumrust

Depois:

enumrust --help

cargo: command not found

Rust não foi instalado ou o terminal ainda não carregou o ambiente.

source "$HOME/.cargo/env"

Verifique:

cargo --version

masscan não funciona no Docker

Use:

docker run --rm --privileged enumrust --check-tools

O próprio README informa que --privileged é necessário para o masscan. (GitHub)


Dashboard não abre

Verifique se a porta está publicada.

Docker:

docker run --rm --privileged -p 8080:8080 enumrust --dashboard

Local:

enumrust --dashboard --dashboard-port 8080

Acesse:

http://localhost:8080

Recomendação prática

Para Linux, use:

git clone https://github.com/KingOfBugbounty/enumrust.git
cd enumrust
sudo bash install.sh
enumrust --check-tools
enumrust -d example.com --subfinder --full-scan

Para Windows, prefira WSL2:

wsl --install

Depois, dentro do Ubuntu/WSL:

git clone https://github.com/KingOfBugbounty/enumrust.git
cd enumrust
sudo bash install.sh
enumrust --check-tools
enumrust -d example.com --subfinder --full-scan