
Uma ferramenta rápida e abrangente para varredura de rede organizacional
Recursos • Uso • Instalação • Uso • Contribuição • Notas Adicionais
Domainim é uma ferramenta rápida de reconhecimento de domínios para varredura de redes organizacionais. A ferramenta tem como objetivo fornecer uma visão geral da estrutura de uma organização usando técnicas como OSINT, bruteforcing, resolução de DNS etc.
Recursos atuais (v1.3.0)-

Enumeração de nomes de host virtuais
Consulta reversa de DNS
Detecta subdomínios curinga. Resultados passivos que resolvem apenas para os IPs curinga são ocultados, a menos que tenham sido vistos em um certificado TLS. O bruteforcing pode ser forçado com --force-brute, caso em que os resultados que resolvem apenas para os IPs curinga são descartados
Varredura básica de portas TCP
Subdomínios são aceitos como entrada
Exportar resultados para arquivo JSON
Alguns recursos estão em desenvolvimento. Consulte Recursos planejados para mais detalhes.
O projeto é inspirado no Sublist3r. O módulo de varredura de portas é fortemente baseado no NimScan.
Você pode compilar este repositório a partir do código-fonte-
git clone [email protected]:pptx704/domainim
nimble build
./domainim <domain> [--ports=<ports>]
Ou você pode simplesmente baixar o binário da página de releases. Tenha em mente que o binário é testado apenas em sistemas baseados em Debian.
./domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | -l:<filename> [--rps=<int> | -r:<int>] [--force-brute | -f]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
<domain> é o domínio a ser enumerado. Pode ser também um subdomínio.-- ports | -p é uma especificação em string das portas a serem escaneadas. Pode ser uma das seguintes:
all - Escaneia todas as portas (1-65535)none - Ignora o escaneamento de portas (padrão)t<n> - Escaneia as n portas mais comuns (o mesmo que nmap). Ou seja, t100 escaneia as 100 portas mais comuns. O valor máximo é 5000. Se n for maior que 5000, será definido como 5000.80 escaneia a porta 8080-100 escaneia as portas 80 a 10080,443,8080 escaneia as portas 80, 443 e 808080,443,8080-8090,t500 escaneia as portas 80, 443, 8080 a 8090 e as 500 portas mais comuns--dns | -d é o endereço do servidor DNS. Deve ser um endereço IPv4 válido e pode opcionalmente conter o número da porta:
a.b.c.d - Usa o servidor DNS em a.b.c.d na porta 53a.b.c.d#n - Usa o servidor DNS em a.b.c.d na porta n--wordlist | -l - Caminho para o arquivo de wordlist. É usado para força bruta de subdomínios. Se o arquivo for inválido, a força bruta será ignorada. Linhas vazias e linhas que começam com # são ignoradas. Você pode obter uma wordlist em SecLists. Uma wordlist também é fornecida na página de releases.--force-brute | -f - Realiza força bruta mesmo se um registro wildcard for encontrado. Subdomínios que resolvem apenas para os IPs wildcard são descartados.--rps | -r - Número de requisições a serem feitas por segundo durante a força bruta. O valor padrão é 1024 req/s. Vale notar que as consultas DNS são feitas em lotes e o próximo lote só é feito após a conclusão do anterior. Como as consultas podem ter limite de taxa, aumentar o valor nem sempre garante resultados mais rápidos.--out | -o - Caminho para o arquivo de saída. A saída será salva em formato JSON. O nome do arquivo deve terminar com .json.Exemplos
./domainim nmap.org --ports=all./domainim google.com --ports=none --dns=8.8.8.8#53./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --rps=1500./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --out=results.json./domainim nmap.org --wordlist=wordlist.txt --force-brute./domainim mysite.com --ports=t50,5432,7000-9000 --dns=1.1.1.1O menu de ajuda pode ser acessado usando ./domainim --help ou ./domainim -h.
Usage:
domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | -l:<filename> [--rps=<int> | -r:<int>] [--force-brute | -f]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
domainim (-h | --help)
Options:
-h, --help Show this screen.
-p, --ports Ports to scan. [default: `none`]
Can be `all`, `none`, `t<n>`, single value, range value, combination
-l, --wordlist Wordlist for subdomain bruteforcing. Bruteforcing is skipped for invalid file.
-f, --force-brute Bruteforce even if a wildcard record is found. Results resolving only to wildcard IPs are discarded.
-d, --dns IP and Port for DNS Resolver. Should be a valid IPv4 with an optional port [default: system default]
-r, --rps DNS queries to be made per second [default: 1024 req/s]
-o, --out JSON file where the output will be saved. Filename must end with `.json`
Examples:
domainim domainim.com -p:t500 -l:wordlist.txt --dns:1.1.1.1#53 --out=results.json
domainim sub.domainim.com --ports=all --dns:8.8.8.8 -l:wordlist.txt -r:1500 -f -o:results.json
O esquema JSON para os resultados é o seguinte-
[
{
"subdomain": string,
"data": [
{
"ipv4": string,
"vhosts": [string],
"reverse_dns": string,
"ports": [int]
}
]
}
]
Um exemplo de json para nmap.org pode ser encontrado aqui.
Contribuições são bem-vindas. Sinta-se à vontade para abrir um pull request ou uma issue.
Este projeto ainda está em seus estágios iniciais. Existem várias limitações das quais tenho conhecimento.