¿Qué es un ataque de Pharming?
Un ataque Pharming es un tipo de ciberataque que consiste en redirigir el tráfico de Internet de un usuario a un sitio Web falso, incluso si el usuario teclea la URL correcta. El sitio Web falso puede parecer legítimo y puede utilizarse para robar información confidencial, como credenciales de inicio de sesión o información financiera, del usuario. El ataque puede llevarse a cabo mediante diversos métodos, como la manipulación de la configuración DNS del usuario, el uso de malware para redirigir el tráfico o el envío de correos electrónicos de SPAM que contengan enlaces al sitio Web falso.
Esquema del laboratorio
La idea de esta simulación es realizar un ataque de “Spear” Pharming dirigido contra un usuario en concreto. Para ello, el primer paso es vulnerar la seguridad del equipo de la víctima con el fin de poder acceder a ella y modificar el archivo hosts. Para poder modificar este archivo necesitamos privilegios máximos en el sistema.
También recordar que un archivo hosts es un archivo de texto que asigna nombres de host a direcciones IP. Los ordenadores lo utilizan para determinar la dirección IP de un nombre de host concreto, lo que permite a los usuarios acceder a los sitios Web tecleando un nombre de dominio en lugar de la dirección IP. El archivo hosts suele encontrarse en la carpeta de sistema de un sistema operativo y puede ser editado por el usuario para bloquear o redirigir determinados sitios Web. Por ejemplo, si un usuario quiere bloquear un sitio Web específico, puede añadir una entrada en el archivo hosts que asigne el nombre de host del sitio Web a una dirección IP Localhost, bloqueando así el acceso al sitio Web. Del mismo modo, si un usuario desea redirigir un sitio Web específico a una dirección IP diferente, puede añadir una entrada en el archivo hosts que asigne el nombre de host del sitio Web a la dirección IP deseada.
Cuando un usuario realiza la búsqueda de un sitio Web, el navegador consulta primero a este archivo hosts, y si en este no encuentra relación, entonces comienza la búsqueda en servidores de DNS.
Un servidor DNS (Domain Name System) es aquel encargado de traducir los nombres de dominio en direcciones IP. Cuando un usuario teclea un nombre de dominio en su navegador Web, el servidor DNS convierte el nombre de dominio en la dirección IP correspondiente y dirige el tráfico de Internet del usuario al sitio Web correcto. Los servidores DNS se utilizan para gestionar los nombres de dominio y facilitar el uso de Internet, ya que permiten a los usuarios acceder a los sitios Web utilizando nombres legibles en lugar de largas cadenas de números. Hay muchos servidores DNS en todo el mundo, y cada uno es responsable de gestionar una parte específica del espacio de nombres de dominio de Internet.
Configurando el sitio Web malicioso
Para la configuración del servidor malicioso donde redirigiremos a la víctima, vamos utilizar una virtualización de Ubuntu 20.04 a modo de servidor y la herramienta “blackphish”, que es una herramienta de ingeniería social que dispone de plantillas de sitios Webs populares, para suplantar los sitios Webs legítimos.
Para configurar la herramienta, seguiremos los siguientes pasos:
- git clone https://github.com/iinc0gnit0/BlackPhish
- cd Blackphish
- ./install.sh
Una vez instalada la herramienta ejecutamos con el siguente comando:
sudo python3 blackphish.py
Y podremos ver las diferentes opciones de plantillas que dispone la herramienta.
Y ya estaría preparado el servidor Web malicioso para capturar las credenciales introducidas por el usuario desde el equipo víctima.
Vulnerando la seguridad del equipo de la víctima
Recolección de información
Comenzamos escaneando los servicios que tiene el equipo objetivo abiertos. Esta tarea la realizaremos con NMAP, dividida en dos fases:
- Escaneo rápido de todos los puertos
- Escaneo detallado de los puertos que tiene abierto el equipo objetivo
El objetivo es un Windows 7 SP1. Además como podemos observar, están abiertos los puertos 139 y 445 correspondientes al servicio SMB. ¿Vulnerable a Eternal Blue? Vamos a comprobarlo.
Obtenemos resultados positivos. El equipo de la víctima es vulnerable a Eternal Blue. Vamos a obtener acceso como usuario administrador para poder realizar los cambios necesarios en el equipo objetivo para poder realizar el ataque de Pharming. Esta vulneración de seguridad la vamos a realizar de manera manual y automática.
Elevación de privilegios
Configuramos el exploit con los datos de la IP local y la del equipo que queremos vulnerar.
Configuración de Remote Host
Configuración de Local Host
El siguiente paso será ejecutar el exploit.
Tenemos acceso con privilegios máximo al equipo objetivo. Vamos a buscar ahora el archivo hosts objetivo. Este archivo está en el directorio C:\Windows\system32\drivers\etc. Vámonos a este directorio.
Modificando el archivo hosts
Para editar este archivo, lo descargamos a nuestra máquina.
Y lo modificamos añadiendo la redirección al servidor malicioso.
Guardamos y volvemos a cargar en la máquina víctima.
De esta manera cuando el usuario acceda al netflix.com, este será redireccionado al servidor malicioso donde introducirá sus credenciales, tras lo cual será redirigido al sitio Web legítimo, haciendo creer que el usuario ha introducido mal las credenciales.
Recolectando passwords
Una vez hemos modificado el archivo hosts del equipo víctima, solo tendremos que esperar a que este acceda al sitio Web que estamos suplantando e introduzca sus credenciales para que las capturemos en nuestro servidor malicioso.
El usuario introduce las credenciales creyendo que es la página legítima de Netflix.
Cuando el usuario pulse “Signin” será redireccionado a la página Web real de Netflix haciendo creer al usuario que no ha introducido bien las credenciales pero en este momento ya tendremos las credenciales capturadas en nuestro servidor malicioso.
Aparte de vulnerar la seguridad y obtener privilegios máximos en el equipo del usuario víctima (podemos acceder a toda la información contenida y modificar archivos), ejecutando un ataque de Pharming también podemos obtener las credenciales del usuario en las diferentes plataformas que utilice.
Además como el formulario de Login no está cifrado, podemos interceptar las credenciales con un sniffer de red (Wireshark).
Determinar si el sitio Web es malicioso
Existen varias maneras con las que podemos determinar si un sitio Web es malicioso. Algunas de ellas son las siguientes:
- Formulario de Login sin conexión segura HTTPS (no es certero al 100% pero puede ser indicativo).
- Enlaces del sitio Web que dan error en el redireccionamiento y no devuelven el resultado esperado.
- Hacer ping y comparar la dirección IP devuelta con la dirección IP real del sitio al que queremos acceder.
Conclusiones
Después de concluir la investigación, llegamos a las siguientes conclusiones:
- Debemos monitorizar el archivo hosts de nuestros equipos para detectar posibles redirecciones maliciosas con las que nos puedan robar información.
- Debemos asegurarnos que los formularios de login se realicen con conexión HTTPS.
- Los sitios Webs maliciosos, por norma general, están construidos de forma simplista, es decir, se centra en los elementos necesarios. Por ejemplo, el formulario de Login estará desarrollado pero el resto de “enlaces” no tendrán redirección o serán erróneos. Puede ser otra forma de determinar si el sitio es legítimo o no.
- Mantener actualizado los equipos informáticos para evitar ataques. Como se demuestra en esta simulación, no es necesario que el enlace malicioso llegue a través de un sms o un email. Este puede llegar a través de la modificación del archivo hosts perpetrada por un atacante que vulneró la seguridad del equipo.
No responses yet