
Una herramienta rápida y completa para el escaneo de redes organizacionales
Características • Uso • Instalación • Uso • Contribuir • Notas adicionales
Domainim es una herramienta rápida de reconocimiento de dominios para el escaneo de redes organizacionales. La herramienta tiene como objetivo proporcionar una breve descripción general de la estructura de una organización utilizando técnicas como OSINT, fuerza bruta, resolución DNS, etc.
Características actuales (v1.3.0)-

Enumeración de nombres de host virtuales
Búsqueda inversa de DNS
Detecta subdominios comodín. Los resultados pasivos que resuelven únicamente a las IPs comodín se ocultan a menos que se hayan visto en un certificado TLS. La fuerza bruta se puede forzar con --force-brute, en cuyo caso los resultados que resuelven únicamente a las IPs comodín se descartan
Escaneo básico de puertos TCP
Se aceptan subdominios como entrada
Exportar resultados a un archivo JSON
Algunas características están en desarrollo. Consulte Características planificadas para más detalles.
El proyecto está inspirado en Sublist3r. El módulo de escaneo de puertos está basado en gran medida en NimScan.
Puede compilar este repositorio desde el código fuente-
git clone [email protected]:pptx704/domainim
nimble build
./domainim <domain> [--ports=<ports>]
O bien, puedes simplemente descargar el binario desde la página de releases. Ten en cuenta que el binario solo está probado en sistemas basados en 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> es el dominio que se va a enumerar. También puede ser un subdominio.-- ports | -p es una especificación en forma de cadena de los puertos que se van a escanear. Puede ser una de las siguientes:
all - Escanear todos los puertos (1-65535)none - Omitir el escaneo de puertos (predeterminado)t<n> - Escanear los n puertos más comunes (igual que nmap). Es decir, t100 escanea los 100 puertos más comunes. El valor máximo es 5000. Si n es mayor que 5000, se establecerá en 5000.80 escanea el puerto 8080-100 escanea los puertos del 80 al 10080,443,8080 escanea los puertos 80, 443 y 808080,443,8080-8090,t500 escanea los puertos 80, 443, del 8080 al 8090 y los 500 puertos más comunes--dns | -d es la dirección del servidor dns. Debe ser una dirección IPv4 válida y opcionalmente puede contener el número de puerto:
a.b.c.d - Usar el servidor DNS en a.b.c.d en el puerto 53a.b.c.d#n - Usar el servidor DNS en a.b.c.d en el puerto n--wordlist | -l - Ruta al archivo de wordlist. Se usa para la fuerza bruta de subdominios. Si el archivo no es válido, se omitirá la fuerza bruta. Las líneas vacías y las líneas que comienzan con # se ignoran. Puedes obtener una wordlist de SecLists. También se proporciona una wordlist en la página de releases.--force-brute | -f - Realizar fuerza bruta incluso si se encuentra un registro comodín. Los subdominios que resuelven únicamente a las IPs del comodín se descartan.--rps | -r - Número de solicitudes que se realizarán por segundo durante la fuerza bruta. El valor predeterminado es 1024 req/s. Cabe señalar que las consultas DNS se realizan por lotes y el siguiente lote se realiza solo después de que se completa el anterior. Dado que las consultas pueden estar limitadas por tasa, aumentar el valor no siempre garantiza resultados más rápidos.--out | -o - Ruta al archivo de salida. La salida se guardará en formato JSON. El nombre del archivo debe terminar en .json.Ejemplos
./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.1Se puede acceder al menú de ayuda usando ./domainim --help o ./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
El esquema JSON para los resultados es el siguiente:
[
{
"subdomain": string,
"data": [
{
"ipv4": string,
"vhosts": [string],
"reverse_dns": string,
"ports": [int]
}
]
}
]
Puedes encontrar un ejemplo de json para nmap.org aquí.
Las contribuciones son bienvenidas. No dudes en abrir un pull request o un issue.