viernes, julio 01, 2016

¿Es difícil suplantar tu dirección de correo electrónico? #Spoofing #Pentesting #Python

El e-mail spoofing es una técnica muy antigua pero que sigue siendo muy utilizada en los esquemas de ataque de Spear Phishing o Spear Apps para engañar a un usuario haciéndole creer que está recibiendo un correo electrónico de una persona concreta, cuando esto no es así. Es decir, un usuario suplanta la identidad de otro e intenta hacer un mensaje lo más creíble posible. En muchos procesos de hacking ético se debe llevar a cabo este tipo de pruebas para verificar varias cosas, por ejemplo que un conjunto de empleados están concienciados y no caerán ante este tipo de práctica, aunque en algunas ocasiones es muy difícil no caer, y, por otro lado, verificar la correcta configuración de mecanismos de atenuación como SPF (Sender Policy Framework)/SenderID, DKIM (Domain Keys Idetified Mail) o DMARC (Domain-based Message Authentication, Reporting and Conformance), aunque la única solución efectiva es que todos los empleados utilicen sistemas de firma digital como SMIME o PGP.

Figura 1: ¿Es difícil suplantar tu dirección de correo electrónico?

Hoy os hablaré de un par de herramientas escritas en Python que pueden ser utilizadas en nuestros procesos de Ethical Hacking y que permiten comprobar si un dominio es spoofeable y, por lo tanto, se puede enviar un correo electrónico falso que permita engañar a la víctima. De este par de herramientas la que realmente me ha sido más útil, quizá por sencillez es la de SpoofCheck. Esta herramienta permite verificar una serie de condiciones para demostrar si un dominio es spoofeable o no, tal y como lo hacemos nosotros en las auditorías de seguridad persistentes que hacemos con Faast. Es decir, la herramienta nos dirá si el dominio que se quiere suplantar es, probablemente, spoofeable o, si por el contrario, deberíamos buscar otro tipo de vía como usar nombres parecidos. Por otro lado, la herramienta SimpleEmailSpoofer es un script escrito en Python que se encarga de conectar con un servidor SMTP Postfix local y llevar a cabo el envío del e-mail, con los parámetros y atributos que le indiquemos a la aplicación. Instalación

La instalación o descarga de estas aplicaciones es muy sencilla. Directamente se pueden obtener desde sus repositorios de Github. Una vez descargadas ambas herramientas con el comando git clone, por ejemplo, se debe instalar las dependencias que éstas tienen. La ejecución del comando pip install –r requirements.txt se debe llevar a cabo.

SpoofCheck

¿Cuándo un dominio es spoofeable? La herramienta SpoofCheck se encarga de ir comprobando una serie de condiciones. A continuación podemos ver las condiciones que se evalúan para verificar si un dominio es spoofeable o no:
• Ausencia del registro SPF o DMARC.
• El registro SPF del DNS del dominio no especifica ~all o –all.
• La política DMARC está configurada a p=none o no existe.
Viendo estas condiciones vamos a realizar algunas pruebas con dominios conocidos. En el primer ejemplo vamos a analizar apple.com. Como se puede ver en la siguiente imagen Apple dispone de un registro SPF habilitado y con política –all. Sin embargo, aunque existe registro DMARC, la política no se encuentra específica, por lo que dicho dominio es potencialmente spoofeable. Apple ha mejorado su política, pues cuando sucedió el Celebgate, el dominio tenía la política ~all, lo que lo hacía más fácil aún de suplantar.

Figura 2: Verificación del dominio Apple.com

Como segundo ejemplo vamos a realizar un análisis de Gmail y Outlook, como ejemplo de proveedores de correo electrónico gratuito más utilizados en el mundo. Tal y como se puede ver en la imagen ambos tienen de registro SPF, dónde se incluyen las direcciones IP o dominios que son utilizados por los servidores de correo electrónico autorizados. Ambos disponen de DMARC pero sin política aplicada, por lo que la aplicación SpoofCheck nos devuelve que son dominios potencialmente spoofeables.

Figura 3: Verificación de gmail.com y outlook.com

Para el caso de Paypal observamos una grata diferencia. No es spoofeable debido a que dispone de registro SPF con direcciones IP especificadas. Dispone de registro DMARC y, además, tiene una política de rechazo habilitada.

Figura 4: Verificación de Paypal.com

Hay que recordar que Paypal tiene otros pequeños errores o debilidades, como la posibilidad de robar cuentas por el fallo del usuario al registrar un correo electrónico no real al crear su cuenta de Paypal.

SimpleEmailSpoofer

La herramienta SimpleEmailSpoofer es muy sencilla de configurar y ejecutar. Lo primero de todo es disponer de un archivo en el incluyamos el código HTML del body del correo. Para el ejemplo que se muestra a continuación se ha realizado un pequeño ejemplo de un correo de Apple. En el body se puede ver la carga de una imagen, la cual es la manzana de Apple.

Figura 5: Envío del correo spoofeado

Una vez generado el fichero se deben utilizar una serie de parámetros para poder enviar el correo electrónico. Antes de poder utilizar SimpleEmailSpoofer hay que estar seguros de Postfix se encuentra instalado en el sistema. En caso de no estar instalado, se debe ejecutar apt-get install postfix, y posteriormente service postfix start.

Figura 6: correo electrónico generado

Se utilizan diferentes parámetros para indicar el archivo con el body del mensaje, la dirección de e-mail a la que enviaremos el correo electrónico, la dirección de remitente que se quiere spoofear y el nombre del usuario que envía el correo electrónico. Por último, el parámetro –j nos permite indicar el asunto con el que se enviará el correo. Si vemos el correo electrónico que nos llega vemos como podría pasar perfectamente por un correo real.

En conclusión, un par de herramientas útiles y que hay que tener en la mochila para nuestras auditorias y hacking éticos. Sobre todo herramientas como SpoofCheck, la cual permite inferir si un dominio será spoofeable y ver si tendremos éxito o no con la manipulación y creación de un correo electrónico falso en nuestra auditoria.

Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking" y “Pentesting con Powershell

7 comentarios:

Pablo F dijo...

Muy buen artículo. Gracias.

brayan guzman caceres dijo...

Hola Chema muy buen aporte, podrias dar un ejemplo del html.
muchas gracias

Carlos Castro dijo...

Chemma muy buen artículo. Gracias.

Kn0wLeDgE dijo...

por mas que puedas spoofear la direccion de email, por ejemplo en el caso de gmail, verifica desde donde lo estás enviando y sino es desde el dispositivo habilitado o desde la cuenta de gmail, le envia un email al dueño del email y no deja enviarlo. Seria el caso de hacer por ejemplo un script en python y usar el email a spoofear, o enviarlo desde cualquier aplicacion de metasploit, etc.

brayan guzman caceres dijo...

Me podrían ayudar con un ejemplo del body del HTML que debemos incluir, por favor

Unknown dijo...

Hola buenas, quería hacer una pregunta, hay alguna posibilidad de trabajar en algo de esto, (sea como programador, en seguridad informática, o algo de este estilo) sin estudiar una carrera específica? Osea me refiero a estudiar por cuenta propia, se que no es algo fácil y que es un tema bastante complicado, pero quería saber como era el mundo laboral con respecto de la informática

maria teresa viera santana dijo...

Hola¡¡

Excelente artículo.
Muchas gracias por todo lo que nos aportas.

Entrada destacada

Joinnovation & KeepCoding Connect: 2 Eventos para DOERS en #Madrid

Ayer fue el día de ver los proyectos de EQUINOX , el hackathon de ElevenPaths donde durante 24 horas se lanzan proyectos que normalmente ...

Entradas populares