
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 organizativas. La herramienta tiene como objetivo proporcionar una visión general breve de la estructura de una organización mediante técnicas como OSINT, fuerza bruta, resolución DNS, etc.
Características actuales (v1.0.1)

Enumeración de nombres de host virtuales
Búsqueda DNS inversa
Detecta subdominios comodín (para fuerza bruta)
Escaneo básico de puertos TCP
Acepta subdominios como entrada
Exportar resultados a archivo JSON
Algunas características están en desarrollo. Consulte Funcionalidades planificadas para más detalles.
El proyecto está inspirado en Sublist3r. El módulo de escáner de puertos se basa en gran medida en NimScan.
Puede compilar este repositorio desde el código fuente:
git clone [email protected]:pptx704/domainim
nimble build
./domainim <dominio> [--ports=<puertos>]
O bien, puede descargar el binario desde la página de lanzamientos. Tenga en cuenta que el binario solo se ha probado en sistemas basados en Debian.
./domainim <dominio> [--ports=<puertos> | -p:<puertos>] [--wordlist=<archivo> | l:<archivo> [--rps=<int> | -r:<int>]] [--dns=<dns> | -d:<dns>] [--out=<archivo> | -o:<archivo>]
<dominio> es el dominio a enumerar. Puede ser también un subdominio.--ports | -p es una cadena que especifica los puertos a escanear. Puede ser uno de los siguientes:
all - Escanear todos los puertos (1-65535)none - Omitir escaneo de puertos (predeterminado)t<n> - Escanear los n puertos principales (igual que nmap). Ej: t100 escanea los 100 puertos principales. Valor máximo 5000. Si n es mayor que 5000, se ajusta a 5000.80 escanea el puerto 8080-100 escanea puertos del 80 al 10080,443,8080 escanea los puertos 80, 443 y 808080,443,8080-8090,t500 escanea puertos 80, 443, 8080 a 8090 y los 500 principales--dns | -d es la dirección del servidor DNS. Debe ser una dirección IPv4 válida y puede incluir opcionalmente el número de puerto:
a.b.c.d - Usar servidor DNS en a.b.c.d puerto 53a.b.c.d#n - Usar servidor DNS en a.b.c.d puerto e--wordlist | -l - Ruta al archivo de lista de palabras. Se usa para fuerza bruta de subdominios. Si el archivo no es válido, se omite la fuerza bruta. Puede obtener una lista de palabras de SecLists. También se proporciona una lista de palabras en la página de lanzamientos.--rps | -r - Número de solicitudes por segundo durante la fuerza bruta. El valor predeterminado es 1024 req/s. Tenga en cuenta que las consultas DNS se realizan en lotes y el siguiente lote solo se ejecuta después de completar el anterior. Dado que las consultas pueden tener límite de velocidad, 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 de 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 --outfile=results.json./domainim mysite.com --ports=t50,5432,7000-9000 --dns=1.1.1.1El menú de ayuda se puede consultar con ./domainim --help o ./domainim -h.
Usage:
domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | l:<filename> [--rps=<int> | -r:<int>]] [--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.
-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 -t:1500 -o:results.json
El esquema JSON para los resultados es el siguiente:
[
{
"subdomain": string,
"data": [
"ipv4": string,
"vhosts": [string],
"reverse_dns": string,
"ports": [int]
]
}
]
Ejemplo JSON para nmap.org se puede encontrar aquí.
Las contribuciones son bienvenidas. Siéntase libre de abrir un pull request o un issue.
Este proyecto aún se encuentra en etapas tempranas. Soy consciente de varias limitaciones.
Los dos motores que utilizo (los llamo motores porque Sublist3r lo hace así) actualmente tienen algún tipo de límite de respuesta. dnsdumpster puede obtener hasta 100 subdominios. crt.sh también aleatoriza los resultados en caso de demasiados resultados. Otro problema con crt.sh es que a veces devuelve algún error SQL. Por lo tanto, para algunos dominios los resultados pueden variar entre ejecuciones. Planeo añadir más motores en el futuro (al menos un motor de fuerza bruta).
El escáner de puertos tiene un tiempo de espera de solo tiempo de respuesta ping + 750 ms. Esto podría llevar a falsos negativos. Dado que domainim no está diseñado para escanear puertos sino para proporcionar una visión rápida, estos casos son aceptables. Sin embargo, planeo añadir una bandera para aumentar el tiempo de espera. Por la misma razón, no se muestran los puertos filtrados. Para un escaneo de puertos más completo, recomiendo usar Nmap. Domainim tampoco evita la limitación de velocidad (si la hay).