dnstwist Anti-phishing Domain Name Search Engine
dnstwist Anti-phishing Domain Name Search Engine

dnstwist: Motor de Búsqueda de Nombres de Dominio contra Phishing

Mira qué tipo de problemas pueden tener los usuarios al intentar escribir su nombre de dominio. Encuentra dominios parecidos que los adversarios puedan usar para atacarte. Puede detectar errores tipográficos (Typosquatting), ataques de phishing, fraude y suplantación de marca. Útil como fuente adicional de inteligencia de amenazas dirigidas.

DNS fuzzing es un flujo de trabajo automatizado para descubrir dominios potencialmente malignos dirigidos a tu organización. Esta herramienta funciona generando una gran lista de permutaciones basadas en un nombre de dominio que proporcionas y luego comprobando si alguna de esas permutaciones está en uso. Además, puede generar hashes fuzzy de las páginas web para ver si forman parte de un ataque de phishing o de suplantación de marca en curso, ¡y mucho más!

Demo dnstwist
Demo dnstwist

¿Tienes prisa? Inténtalo en tu navegador de Internet: dnstwist.it

Características principales

  • Variedad de algoritmos de fuzzing de dominios altamente efectivos
  • Nombres de dominio Unicode (IDN)
  • Permutaciones de dominios adicionales utilizando archivos de diccionario
  • Eficiente distribución de tareas multihilo
  • Detección de páginas web de phishing en vivo
  • Detección de host Rogue MX (interceptando correos electrónicos mal dirigidos)
  • Ubicación GeoIP
  • Exportación a formato CSV y JSON

Instalación

Python PIP

$ pip install dnstwist

Git

Si quieres ejecutar la última versión del código, puedes instalarla desde Git:

$ git clone https://github.com/elceef/dnstwist.git
$ cd dnstwist
$ pip install .

Kali Linux

Invoca el siguiente comando para instalar la herramienta con todos los paquetes extra:

apt install dnstwist

OSX

ILa instalación se simplifica gracias al paquete Homebrew. Esto instalará dnstwist junto con todas las dependencias, y el binario se añadirá a $PATH.

$ brew install dnstwist

Docker

Si prefieres Docker, puedes hacer pull y ejecutar la imagen oficial de Docker Hub:

$ docker run elceef/dnstwist

Requerimientos

Esta herramienta está diseñada para funcionar bien sólo con la biblioteca estándar de Python3. Sin embargo, se requieren un par de paquetes de terceros para mostrar todo su potencial.

Debian/Ubuntu/Kali Linux

Si se está ejecutando una distribución basada en Debian, se pueden instalar todas las bibliotecas externas con un solo comando:

$ sudo apt install python3-dnspython python3-tld python3-geoip python3-whois \
python3-requests python3-ssdeep

Alternativamente, puedes usar Python PIP. Esto puede hacerse dentro de un entorno virtual para evitar conflictos con otras instalaciones. Sin embargo, todavía necesitarás herramientas de construcción esenciales y un par de bibliotecas instaladas.

$ pip3 install -r requirements.txt

Guía de inicio rápido

La herramienta ejecutará el nombre de dominio proporcionado a través de sus algoritmos de fuzzing y generará una lista de posibles dominios de phishing junto con los registros DNS.

Normalmente se generan miles de permutaciones de dominios, especialmente para los dominios de entrada más largos. En tales casos, puede ser práctico mostrar sólo los que están registrados:

$ dnstwist --registered domain.name

Asegúrate de que tu servidor DNS pueda manejar miles de solicitudes en un corto período de tiempo. De lo contrario, puedes especificar un servidor DNS externo con el argumentowith --nameservers.

La comprobación manual de cada nombre de dominio en términos de servir a un sitio de phishing puede llevar mucho tiempo. Para abordar esto, dnstwist hace uso de los llamados fuzzy hashes (hashes de contexto disparados por piezas). El “fuzzy hashing” es un concepto que implica la capacidad de comparar dos entradas (en este caso el código HTML) y determinar un nivel fundamental de similitud. Esta característica única de dnstwist puede ser habilitada con el argumento --ssdeep. Para cada dominio generado, dnstwist obtendrá el contenido del servidor HTTP que responda (siguiendo posibles redireccionamientos) y comparará su fuzzy hash con el del dominio original (inicial). El nivel de similitud se expresará como un porcentaje.

Nota: Ten en cuenta que es bastante improbable que se obtenga una coincidencia del 100% para una página web generada dinámicamente, y que un sitio de phishing puede tener un código fuente HTML completamente diferente. Sin embargo, cada notificación es un fuerte indicador y debe ser inspeccionada cuidadosamente sin importar el puntaje.

$ dnstwist --ssdeep domain.name

En algunos casos, los sitios de phishing se sirven de una URL específica. Si proporciona una dirección URL completa o parcial como argumento, dnstwist la analizará y aplicará para cada variante de nombre de dominio generada. Obviamente, esto es útil sólo con la función fuzzy hashing.

$ dnstwist --ssdeep https://domain.name/owa/
$ dnstwist --ssdeep domain.name/login

A veces los atacantes instalan honey pots de correo electrónico en los dominios de phishing y esperan a que lleguen los correos electrónicos mal escritos. En este escenario, los atacantes configuraban su servidor para aspirar todo el correo electrónico dirigido a ese dominio, independientemente del usuario al que se enviara. Otra característica de dnstwist permite realizar una simple prueba en cada servidor de correo (anunciado a través de un registro MX de DNS) para comprobar cuál puede ser utilizado para tales propósitos hostiles. Los servidores sospechosos serán marcados con la cadena SPYING-MX .

Nota: Estén atentos a posibles falsos positivos. Algunos servidores de correo sólo pretenden aceptar correos electrónicos con direcciones incorrectas pero luego descartan esos mensajes. Esta técnica se utiliza para evitar el “ataque de recolección de directorios”.

$ dnstwist --mxcheck domain.name

Si las permutaciones de dominio generadas por los algoritmos de fuzzing son insuficientes, por favor, suministren a dnstwist n archivo de diccionario. Se incluyen algunas muestras de diccionario con una lista de las palabras más comunes utilizadas en las campañas de phishing.

$ dnstwist --dictionary dictionaries/english.dict domain.name

Si necesitas comprobar si existen dominios con diferentes TLD, sólo tienes que proporcionar un archivo de diccionario con la lista de TLD.

$ dnstwist --tld dictionaries/common_tlds.dict example.com

Además de la colorida salida del terminal, la herramienta permite exportar los resultados a CSV y JSON. En caso de necesitar sólo las permutaciones sin hacer ninguna búsqueda en el DNS, usa el argumento --format list:

$ dnstwist --format csv domain.name | column -t -s,
$ dnstwist --format json domain.name | jq
$ dnstwist --format list domain.name

La herramienta puede realizar búsquedas en tiempo real para obtener la ubicación geográfica (aproximada al país) de las direcciones IPv4.

$ dnstwist --geoip domain.name

Para mostrar todas las opciones disponibles con breves descripciones, simplemente ejecuta la herramienta sin ningún argumento.

¡Feliz cacería!

Notas sobre la cobertura

Junto con la longitud del dominio, el número de variantes generadas por los algoritmos aumenta considerablemente y, por lo tanto, el tiempo y los recursos necesarios para verificarlas. Es matemáticamente imposible verificar todas las permutaciones de dominio, especialmente para los dominios de entrada más largos que requerirían millones de búsquedas DNS. Por esta razón, esta herramienta genera y verifica dominios muy cercanos al original. Teóricamente, estos son los dominios más atractivos desde el punto de vista del atacante. Sin embargo, hay que tener en cuenta que la imaginación de los agresores es ilimitada.

Las tablas de Unicode consisten en miles de caracteres con muchos de ellos visualmente similares entre sí. Sin embargo, a pesar de que ciertos caracteres son codificables utilizando punycode, la mayoría de las autoridades de los TLD los rechazarán durante el proceso de registro de los dominios. En general, las autoridades de TLD no permiten la mezcla de caracteres provenientes de diferentes scripts de Unicode o mantienen sus propios conjuntos de caracteres aceptables. Dicho esto, el fuzzer de los homogilíficos se construyó sobre una gama de caracteres Unicode (homogilíficos) cuidadosamente investigados para asegurar que los dominios generados puedan ser registrados en la práctica.

Realmente funciona

El escáner es utilizado por decenas de SOC y equipos de respuesta a incidentes en todo el mundo, así como por analistas e investigadores independientes de seguridad de la información. Además, está integrado en los productos y servicios de muchos proveedores de seguridad, en particular, pero no sólo: Splunk, RecordedFuture, SpiderFoot, DigitalShadows, SecurityRisk, SmartFense, ThreatPipes, Cortex XSOAR, Mimecast.

Dark Mode

dnstwist (este enlace se abre en una nueva ventana) por elceef (este enlace se abre en una nueva ventana)

Domain name permutation engine for detecting homograph phishing attacks, typo squatting, and brand impersonation

Contacto

Para enviar preguntas, pensamientos o una barra de chocolate, sólo tiene que enviar un correo electrónico a marcin@ulikowski.pl. Puedes seguir al autor en Twitter para estar al tanto de las principales mejoras y noticias relacionadas. Se agradece cualquier comentario. Si has encontrado algunos dominios de phishing confirmados o simplemente como esta herramienta, por favor no dude en enviar un mensaje. Gracias.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda