domingo, junio 30, 2019

WhatBreach: Localiza e-mails asociados a bases de datos robadas

WhatBreach es una herramienta OSINT para buscar cuentas de correo electrónico utilizadas en servicios en Internet que han sido comprometidos y cuyas identidades digitales hayan quedado expuestas. Para ello utiliza la API del servicio Haveibeenpwned.com y de Pastebin.

Figura 1: WhatBreach: Localiza e-mails asociados a bases de datos robadas

Si alguno de ellos detecta una contraseña vinculada a la cuenta de correo electrónico, buscará también el enlace de consulta en el servicio Dehashed, un motor de búsqueda de identidades digitales vulneradas creado para analistas de seguridad, periodistas, compañías de seguridad y personas comunes para ayudar a proteger cuentas y brindar información sobre fugas de información de datos de carácter personal.

Instalación de WhatBreach

La instalación de la herramienta es sencilla, basta obtener una copia desde su repositorio de GitHub ejecutando el comando “git clone https://github.com/Ekultek/WhatBreach” desde nuestro Kali Linux.

Figura 2: Obtención de la copia de WhatBreach de un repositorio de GitHub

Posteriormente instalamos las dependencias de los paquetes necesarios para el funcionamiento de la herramienta ejecutando del comando “pip install -r requirements.txt”. Únicamente necesita los paquetes arrow (versión 0.13.1), requests (versión 2.21.0) y bs4 (versión 0.0.1).

Figura 3: Instalación de las dependencias necesarias para WhatBreach

Funcionamiento de WhatBreach

Para consultar las opciones de la herramienta ésta dispone del parámetro “-h”:

Figura 4: Parámetros de funcionamiento de WhatBreach

Los parámetros principales son los siguientes:

Parámetro obligatorio:
  -e EMAIL, --email EMAIL 
Dirección única de correo electrónico para su búsqueda.

Parámetros opcionales:
-l PATH, -f PATH, --list PATH, --file PATH
 Ruta absoluta del fichero que contiene los correos electrónicos, uno por línea para escanear.

Opciones de búsqueda:
  -nD, --no-dehashed    Suprimir salida proporcionada por el servicio Dehashed.
  -nP, --no-pastebin    Suprimir salida proporcionada por el servicio Pastebin.

Miscelanea:
  -cT, --check-ten-minute
                        Está durante 10 minutos intentando comprobar si la dirección de correo electrónico proporcionada está disponible.
  -d, --download        Intenta descargar la base de datos si hay una
                        disponible

Búsqueda simple de correo electrónico

Para comprobar si la clave de acceso de un correo electrónico ha sido expuesta en Internet, basta ejecutar “python whatbreach.py -e administrador@gmail.com”. Se observa como lo primero que hace WhatBreach hacer una consulta en el servicio “haveibeenpwned” para ver si la cuenta de correo electrónico se ha utilizado en otros servicios que hayan sido comprometidos previamente.

Figura 5: Petición DNS de resolución directa para la obtención de
la dirección IPv4 e IPv6 para el servicio haveibeenpwned

También se observa cómo la herramienta hace uso del servicio “dehashed”, un motor de búsqueda de bases de datos que almacenan identidades digitales expuestas en Internet y creado para analistas de seguridad, periodistas, compañías de seguridad y personas comunes con el objetivo de proteger las identidades digitales comprometidas.

Figura 6: Petición DNS de resolución directa para la obtención
de la dirección IPv4 e IPv6 para el servicio Dehashed.

Para la cuenta de correo electrónico “administrador@gmail.com” , la herramienta detecta que la cuenta de correo electrónico se ha utilizado en tres servicios cuyas identidades digitales han quedado expuestas y han sido detectadas en “haveibeenpwned” o “dehashed”.

Figura 7: Resultados de la búsqueda de administrador@gmail.com

Descarga de la base de datos con identidades digitales expuestas

En el caso de querer descargar las bases de datos en las que aparece una identidad digital presente en “haveibeenpwned”, “pastebin” o “dehashed”, basta añadir el parámetro “-d” o “--download” para descargar la base de datos donde se encuentra la información de la identidad digital comprometida y expuesta. Por ejemplo, para descargar aquellas bases de datos con la informacición de una cuenta de correo electrónico, el comando a ejecutar sería:
“python whatbreach.py -e username@gmail.com -d”.
Analizando el tráfico de red generado, se observa que la herramienta hace uso de “databases.today”, un servicio que recopila una colección gratuita y pública de bases de datos de sitios web para su descarga destinada a periodistas e investigadores.

Figura 8: Uso del servicio databases.today para obtener las
bases de datos con la información de la identidad digital

En caso de que la cuenta de correo electrónico esté presente en “databases.today”, se muestra un enlace de descarga de las bases de datos donde se encuentra esa cuenta de correo electrónico con su contraseña expuesta. En la siguiente figura se muestra el enlace de descarga de una base de datos de un tamaño considerable (179 GB) con identidades digitales que han quedado expuestas en Internet.

Figura 9: Base de datos con identidades digitales de Dropbox preparada para su descarga

Búsqueda de varias identidades digitales de manera automatizada

La herramienta también permite introducir en un fichero de texto varias cuentas de correo electrónico y así automatizar la búsqueda para determinar cuáles han podido quedar comprometidas. Basta utilizar el parámetro “-l” o “--list” junto con la ruta del fichero de texto que contiene las cuentas de correo electrónico (una por línea).

En el siguiente ejemplo se muestra cómo utilizar la herramienta con un fichero de cuentas de correo electrónico. La herramienta mostrará qué cuentas de correo electrónico han podido quedar vulneradas en Internet y cuáles no.

Figura 10: Búsqueda de cuentas de correo electrónico expuestas a través de un diccionario

Lo que no hace esta herramienta es mostrar en qué servicios vulnerados en Internet se han utilizado (con una sola cuenta de correo electrónico sí que lo hace) y permitir la descarga de las bases de datos en caso de estar presente la cuenta de correo electrónico (con una sola cuenta de correo electrónico sí que lo hace).

Conclusiones

Si detectas que una cuenta de correo electrónico ha quedado expuesta porque se ha vulnerado algún servicio en Internet donde era necesaria esa identidad digital, es muy probable que la contraseña de acceso también, lo que indica que alguien más que su dueño conoce ese password, aunque es imposible a priori determinar cuántas personas más a parte de su dueño la conocen y cuantas veces ha sido utilizada.

También es muy probable que las contraseñas expuestas estén presentes en más servicios utilizados por el mismo usuario, aumentando de manera considerable la superficie de exposición del usuario o incluso, la de una organización, si sus miembros utilizan cuentas de correo electrónico corporativas para darse de alta en servicios de Internet que hayan sufrido fugas de información, como se muestra en la siguiente imagen.

Figura 11: Cuentas de correo electrónico corporativas expuestas en Internet

Por todos estos motivos puede ser conveniente el uso de segundos factores de autenticación como Latch y autorización, además de revisar de manera periódica el historial de accesos a una determinada cuenta de correo electrónico, aunque el servicio avise en caso de detectar posibles anomalías de acceso.

Figura 12: Actividad reciente de acceso a una cuenta de correo electrónico

No todos los servicios que detectan anomalías en los accesos de sus usuarios restringen por defecto el acceso.

Autor: Amador Aparicio de la Fuente (@amadapa), escritor de libro "Hacking Web Technologies"

No hay comentarios:

Publicar un comentario