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”