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,.jsone.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
| Arquivo | Para que serve |
|---|---|
subdomains.txt | Subdomínios encontrados |
ips.txt | IPs resolvidos |
http200.txt | Hosts HTTP/HTTPS ativos |
masscan.txt | Resultado bruto do scan de portas |
ports.txt | Portas abertas validadas |
nuclei.txt | Achados do Nuclei |
urls.txt | URLs descobertas |
js_endpoints.txt | Endpoints encontrados em JavaScript |
js_secrets.txt | Possíveis secrets encontrados em JavaScript |
all_results.txt | Relatório consolidado |
report.html | Relató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