[Herramienta] Escaneador de subdominios

Iniciado por WHK, 23 Junio 2019, 06:13 AM

0 Miembros y 1 Visitante están viendo este tema.

WHK

Hola, como están todos, hoy he publicado una herramienta que había hecho hace ya un par de años, se trata de un escaneador de subdominios hecho en python3.

Acá va la URL: https://github.com/WHK102/wss

Cualquier sugerencia es bienvenida :)

saludos.

@XSStringManolo

#1
Tienes algunos errores de escritura en el strings.es.json

Necesita habilitar por lo menso un método de búsqueda."

- Error menso/menos por escribir rápido. A mi también me pasa jeje.
- Tienes el archivo readme en inglés y las instrucciones del programa en español.
- árbol sin acento gráfico.
- unable-get-ns-servers es correcto como unable to get o como unable getting.
- sesión sin acento gráfico. Tienes una sesión encima acentuada correctamente. Yo hago lo mismo al escribir rápido sin prestar atención. A algunas palabras le cae acento y a otras no. Jajaja.
- Otro "menso" en lugar de menos.
- Otro "arbol" sin acento gráfico.
- Otro unable-get-ns-servers


Edit:
En el axfr.py creo que no tienes en cuenta que muchos dns hacen el echo por tcp de la base de datos cifrado/comprimido. Tal y como tienes el código creo que se recorre toda la lista buscando subdominios y no muestra nada al tener este tipo de salidas.

Los record A y MX son casesensitive. Muchos de ellos son del tipo GOOGLE.COM. Al comparar el record con el diccionario deberías cambiar los strings a comparar a minúsculas.

Puedes añadir también el dns de IBM a parte del de Cloudflare y el de Google. Va bastante más rápido que el de google en europa y américa. 9.9.9.9, 149.112.112.112  
OpenDNS es de los más tochos en lo que a cantidad/velocidad se refiere: 208.67.222.222, 208.67.220.220

Podrías incluir algo de shodan https://developer.shodan.io/api

La app esta guay, buena documentación (para mi muy importante) y sencillo configurable y eficiente.
Me faltan opciones a full que si puedo modificar directamente en el código pero no desde la interfaz.

Como última sugerencia yo integraría más cosas útiles para el "cliente/usuario" potencial del scanner.
Empezando por scanner de puertos a las ips obtenidas y las respuestas de los server consultados.
Más que nada porque hay muchos scanners, y uno siempre se queda con el mas completo para no tener que usar 7 u 8 herramientas distintas cuando puedes hacerlo todo desde una. Véase metasploit.

Sé que no lo has implementado porque no has querido, porque estas herramientas son más sencillas de implementar que el scanner. Pero el usuario final lo va a agradecer.

556eknown

Buffff ...
Si hablamos de faltas gráficas yo soy el primero. Ahora puede ser que sepa escribir pero por el corrector....
En un dictado de classe mínimo 8 o  12 faltas, solo una única vez hice 3faltas.
Así que con lo que escribió no es nada raro que haya echo alguna que otra mísera falta.
Saludos, buena herramienta!!

@XSStringManolo

Cita de: Depredador en 23 Junio 2019, 10:08 AM
Buffff ...
Si hablamos de faltas gráficas yo soy el primero. Ahora puede ser que sepa escribir pero por el corrector....
En un dictado de classe mínimo 8 o  12 faltas, solo una única vez hice 3faltas.
Así que con lo que escribió no es nada raro que haya echo alguna que otra mísera falta.
Saludos, buena herramienta!!
Yo también cometo muchas en el foro por no escribir pausadamente. A parte escribo desde el móvil y es un coñazo andar de delante para atrás.
En un programa está bien eliminarlas. Siempre parece un trabajo más profesional y cuidado. A parte suele haber poco texto y las correcciones son muy fáciles de hacer.
Yo no me sé ni una centésima parte de todas las normas ortográficas, pero de tanto leer al final las palabras las ves raras cuando tienen algún fallo ortográfico. Vurro, bentana, uebo, ber... No es necesario saberse las normas del por que se escriben de una manera específica para darse cuenta a simple vista que algo no está bien redactado.

WHK

#4
Genial! se agradece mucho el comentario, a la noche haré las correcciones y le implementaré un escaneador básico de puertos y reconocimiento de servicio web vía title tag.

Acá un ejemplo de salida de un dominio escaneado: https://gist.github.com/WHK102/00901926378e917c30a8886e1b98f97d

Hay muchos subdominios que no aparecen en ninguna base de datos pública debido al uso de la obtención en tiempo real de los diccionarios entre otros, solo en procesar todos los diccionarios tardé casi 4 horas.

Saludos.

WHK

Las faltas ortográficas están arregladas.
La llave en el json también.
El forzado a minúsculas también, tanto en el método como en el input.

Los DNS de google son los más estables que he encontrado hasta ahora, esta app la llevo usando durante varios años y he probado varios servidores, por ejemplo los de cloudflare tienen pérdida tanto por tcp como por udp, hay veces en que muestran registros inexistentes cuando realmente existen, especialmente cuando los sometes a estrés, en cambio los de google son muy fiables, nunca te dará un falso positivo, es más lento pero más efectivo. También he probado algunos dns latinos y de verdad que para fuerza bruta lo que mejor va sin saturaciones ni baneos ni falsos positivos es google. De todas maneras se pueden cambiar directamente desde el script, de hecho tiene otros servidores comentados, pero mas adelante le haré un argumento para poder utilizar servidores dns personalizados o un archivo de configuraciones. Los 100 threads son suficientes, más de 100 dan muchos errores y crea una cola de solicitudes muy grande y comienzan a crear falsos positivos, por eso hice que las conexiones fueran vía TCP y no UDP, por la saturación.

Lo de shodan lo pensé varias veces pero no ofrece algo directo para obtener subdominios y necesitas su api, la extracción es muy lenta, no es como google que puedes omitir los que ya vas encontrando, por eso lo descarté, pero talves algún día lo agregue (o talves alguien lo agregue haciendo un pull request).

Saludos.

WHK

CitarMe faltan opciones a full que si puedo modificar directamente en el código pero no desde la interfaz.

Le acabo de agregar una funcionalidad para ingresar argumentos y controlar los métodos entre otras cosas nuevas tales como un filtrado de resultados.

He separado el núcleo de la app de los métodos de búsqueda y filtros para que sea mas facil añadir nuevas funcionalidades personalizadas. Por ejemplo, ahora tiene un filtro para buscar puertos abiertos en cada dirección ip encontrada del arbol de resultados o buscar servicios http y el título de las páginas, así hace mas rápido el trabajo de enumeración para un pentester.

Mas adelante le agregaré nuevos argumentos para controlar la cantidad de threads, servidores ns, etc.

Todos los cambios están descritos en el repositorio de github, en el archivo readme en español.

Saludos.