- Amplia gama de eficientes algoritmos de fuzzing de dominios.
- Permite trabajar con una distribución multiproceso.
- Resuelve los nombres de dominio a IPv4 e Ipv6.
- Soporta las consultas de NS y registros MX.
- Evalúa páginas web con similitud de hashes difusos para encontrar sitios de phishing.
- Permite analizar si el host MX (servidor de correo) se puede utilizar para interceptar mensajes de correo electrónico mal dirigidos (espionaje).
- Genera variantes de dominio adicionales utilizando archivos de diccionario
- Muestra información de la ubicación mediante la base de datos GeoIP.
- Graba mensajes de servicio de HTTP y del servidor SMTP.
- Permite operaciones de búsqueda WHOIS para la creación y modificación de la fecha.
- Imprime las copias en formato CSV y JSON.
Para desarrollar toda la potencia de la herramienta, son necesarios los siguientes módulos de Python. Si falta alguno, dnstwist seguirá funcionando, pero sin muchas interesantes características. Pero la herramienta generara una notificación por la ausencia de los módulos requeridos.
Modo de empleo:
Para empezar, lo mejor es introducir sólo el nombre de dominio como argumento. La herramienta ejecutará sus algoritmos de fuzzing y generara una lista de dominios potenciales de phishing con los siguientes registros DNS: A, AAAA, NS y MX.
$dnstwist.py example.com
Comprobar manualmente cada nombre de dominio para identificar un sitio de phishing podría llevar mucho tiempo. Para solucionar esto, dnstwist hace uso de las denominadas hashes difusos (desencadena hashes a trozos). Un hash difuso es un concepto que implica la capacidad de comparar dos entradas (en este caso el código HTML) y determinar un nivel fundamental la similitud entre ellos. Esta característica única de dnstwist se puede activar con el argumento –ssdeep. Para cada dominio generado, dnstwist ha podido recuperar el contenido de la respuesta HTTP del servidor (siguiendo posibles redirecciones) y compara su hash difusa con el dominio original. El nivel de similitud será expresado con un porcentaje. Hay que tener en cuenta que es poco probable que se obtenga el 100% en una página web generada dinámicamente, pero cada notificación debe ser inspeccionada cuidadosamente, independientemente del nivel de porcentaje.
$dnstwist.py –ssdeep example.com
En algunos casos, los sitios de phishing se sirven de una URL específica. Si se proporciona una dirección URL completa o parcial como argumento, dnstwist analizará y lo aplicará para cada variante de nombre de dominio generado. Esta capacidad es obviamente útil sólo en combinación con la función de hashing difusa.
$dnstwist.py –ssdeep https://example.com/owa/
$dnstwist.py –ssdeep example.com/crm/login
Muy a menudo los atacantes configuran honeypots de correo electrónico en los dominios de phishing y esperan a que los correos electrónicos con direcciones mal escritas lleguen a el. En este escenario, los atacantes podrían configurar su servidor para aspirar todo el correo electrónico dirigido a ese dominio, independientemente del usuario que fue enviado. Otra característica de dnstwist es que permite llevar a cabo una prueba sencilla en cada servidor de correo ( a través de registro MX de DNS) con el fin de comprobar cuál puede ser utilizado para tales intenciones hostiles. Los servidores sospechosos serán marcados con la etiqueta SPYING-MX.
Hay que tener muy en cuenta los posibles falsos positivos. Algunos servidores de correo no pretenden más que aceptar el control de correos electrónicos, pero luego desprenderse de tales mensajes.
$dnstwist.py –mxcheck example.com
No siempre los nombres de dominio generados por los algoritmos de fuzzing son suficientes. Para generar aún más variantes de nombres de dominio se puede alimentar dnstwist con un archivo de diccionario. La herramienta incluye algunas muestras en un diccionario con una lista de las palabras más comunes que se utilizan en las campañas de phishing. Para mejorar los resultados se debe adaptar el archivo con incorporaciones propias, a las necesidades de cada uno.
$dnstwist.py –dictionary dictionaries/english.dict example.com
Aparte de la buena presentación de salida del terminal que incluye varios colores para diferenciar resultados, la herramienta ofrece dos formatos de salida conocidos y fáciles de analizar: CSV y JSON. Comúnmente utilizados para el intercambio de datos.
$dnstwist.py –csv example.com > out.csv
$dnstwist.py –json example.com > out.json
Por lo general, la lista generada de dominios tiene más de un centenar de filas, especialmente para los nombres de dominio más largos. En tales casos, se pueden filtrar para mostrar sólo las registradas utilizando argumento –registered.
$dnstwist.py –registered example.com
La herramienta incorpora la base de datos GeoIP. Utilizando el argumento –geoip muestra la ubicación geográfica(nombre del país) para cada dirección IPv4.
$dnstwist.py –geoip example.com
Por supuesto, todas las características ofrecidas por dnstwist junto con breves descripciones están siempre disponibles utilizando la ayuda:
$dnstwist.py –help
Más información de dnstwist:
https://github.com/elceef/dnstwist