MITM, DNS Spoofing y Set

Transcripción

MITM, DNS Spoofing y Set
MITM, DNS Spoofing
y Set
Eduardo Arriols Nuñez
En este documento vamos a hablar sobre los ataques MiTM (Man in The Middle), que
son y una de las formas más básicas de realizarlos. También veremos cómo podríamos
crear una web falsa, haciendo una copia exacta de otra web con la herramienta SET
(Social Engineer Toolkit) y además veremos cómo es posible redireccionar a las víctimas
del MiTM o a las víctimas que se hayan conectado a nuestro Fake AP a la web falsa que
hemos creado en vez de a la pagina real.
Entrando en materia, lo primero que vamos a hacer es definir que es un MiTM o un
ataque de hombre en el medio. Es un ataque bastante común en el que el atacante es
capaz de interceptar una comunicación entre dos maquinas sin que ninguna de ellas
conozca lo que está ocurriendo, esto va a permitir al atacante leer, inyectar o modificar
cualquier tipo de información que sea transmitida entre ambas maquinas.
Es decir, el atacante estará en medio de la comunicación, por lo que cuando la víctima
envíe un paquete al servidor realmente lo estará enviando al atacante, y será este el que
se encargue de hacerle llegar el paquete al servidor como si fuera la víctima. Ocurrirá lo
mismo cuando el servidor mande paquetes a la víctima, que antes de llegar a la victima
pasaran por el atacante.
Antes de ver un ejemplo práctico vamos a ver un poco la teoría de como se produce este
tipo de ataques. Lo primero que tenemos que hacer para poder recibir los paquetes tanto
de la víctima como del servidor es realizar un ataque ARP Spoofing (necesario
únicamente en redes switcheadas y no con hubs ya que en este caso todas las
comunicaciones ya llegan a todos los host). Este ataque se basa en rellenar las tablas
ARP tanto de la víctima como del servidor engañándoles para que crean que nosotros (el
atacante) es la maquina hacia la que quieren comunicarse.
Vamos a ver un ejemplo:
Supongamos que nuestra MAC es 00:11:22:33:44:55
La tabla ARP de la victima (IP 192.168.1.2) antes del ataque seria…
Dirección IP 192.168.1.1 (Router) –> MAC: FA:54:DE:2C:37:99
La tabla ARP de la victima 2 (IP 192.168.1.1) que en este caso sería el router para poder
interceptar las comunicaciones en una LAN, antes del ataque seria…
Dirección IP 192.168.1.2 (Victima 1) –> MAC: 3F:54:E2:CA:21:D3
Una vez ejecutado el ataque, las tablas ARP de las victimas serian las siguientes:
La tabla ARP de la victima (IP 192.168.1.2) seria…
Dirección IP 192.168.1.1 (Router) –> MAC: 00:11:22:33:44:55
La tabla ARP de la victima 2 (IP 192.168.1.1) seria…
Dirección IP 192.168.1.2 (Victima 1) –> MAC: 00:11:22:33:44:55
Como vemos ahora las maquinas victimas no enviaran los paquetes a nosotros, y ahora
tendremos que redirigir esos paquetes para sus respectivos destinos, pudiendo
modificar, leer o inyectar cualquier información que deseemos en la comunicación. Para
que este ataque sea efectivo tendremos que estar mandando paquetes ARP maliciosos
a ambas maquinas de forma continua para evitar que refresquen su tabla ARP con los
valores correctos. Este tipo de ataques se puede hacer con infinidad de herramientas
como CAIN, Ettercap, etc.…
Ahora vamos a ver cómo podríamos realizar este ataque en un entorno real.
Lo primero que tenemos que hacer es abrir una consola e introducir:
echo 1 > /proc/sys/net/ipv4/ip_forward (para activar el reenvió de paquetes).
Después introducimos:
iptables -t nat -A PREROUTING -p tcp –destination-port 80 -j REDIRECT
–to-port 10000 (regla de IPTABLES para que se lleve a cabo la dirección).
Ahora vamos a realizar el ataque ARP Spoofing. Este lo podemos realizar a toda la red,
de forma que todo pase por nosotros o podemos hacerlo únicamente entre dos
maquinas. Las formas de hacerlo serian las siguientes:
A toda la red:
arpspoof -i INTERFAZ_RED IP_ROUTER
Únicamente entre dos maquinas:
arpspoof -i INTERFAZ_RED -t IP_VICTIMA1 IP_VICTIMA2″ y ”arpspoof -i
INTERFAZ_RED -t IP_VICTIMA2 IP_VICTIMA1
(En dos ventanas distintas para realizar el ataque en ambas maquinas)
En nuestro caso práctico seria:
arpspoof -i wlan0 -t 192.168.1.1 192.168.1.10″ y “arpspoof -i
wlan0 -t 192.168.1.10 192.168.1.1
Como vemos en la imagen hemos seguido todos los pasos, por lo que ahora mismo
estaríamos en medio de la conexión entre el router y el equipo víctima. Como vemos a
continuación en el equipo victima hemos conseguido cambiar en la tabla ARP la
dirección MAC del router, haciendo que sea la nuestra.
Ahora si quisiéramos ver todo el trafico de la maquina victima que únicamente
necesitaríamos abrir algún analizador de paquetes como wireshark y lo veríamos todo,
como por ejemplo las claves en claro que introdujera la víctima en alguna web (bajo
HTTP, aunque más adelante veremos cómo hacer lo mismo para HTTPS). En el
próximos post hablaremos de cómo realizar un ataque DNS Poisoning además de ver
cómo crear una web falsa mediante la herramienta SET.
Ahora vamos a ver como podríamos con la situación anterior redirigir a las víctimas a
una página falsa creada por nosotros, con el fin normalmente de obtener credenciales de
acceso a alguna web o crear una web que además se dedique a lanzar exploits contra el
navegador de la victima intentando explotar alguna vulnerabilidad y tener acceso a su
PC. En este post vamos a tratar la primera opción, pero en el siguiente post
abordaremos la segunda
Para empezar lo primero que deberíamos hacer sería crear una web falsa o una copia de
la web de la que queremos obtener los credenciales de la víctima. Para ello tenemos
varias opciones pero en mi opinión la mejor es la herramienta SET (En siguientes post
nos meteremos más a fondo con esta herramienta ya que tiene de todo), así que vamos
al lío...
Debemos abrir la herramienta y nos aparece el siguiente menú donde deberemos pulsar
la opción que aparece en la imagen, en este caso la 1º para realizar ataques de
ingeniería social…
Después nos aparece la siguiente imagen donde debemos seleccionar la 2º para realizar
ataques web…
A continuación se nos da a elegir entre una serie de vectores de ataque a nivel web, del
que en este caso tenemos que seleccionar el 3º ya que vamos a realizar un robo de
credenciales…
Ahora nos pide que seleccionemos de que forma vamos a realizar el phishing, y en este
caso seleccionaremos la 2º opción para realizar una copia de un sitio web…
Ahora llegamos a la parte donde nos pide ciertos datos, concretamente nos va a pedir la
dirección IP que alojara la web, en este caso será mi PC con la IP 192.168.1.17 como se
puede ver en la imagen…
Y para terminar nos pide lógicamente cual es la web que queremos “copiar”, en este
caso yo voy a hacer una copia de twitter.com…
Una vez hemos seguido los pasos nos monta la web en el puerto 80 como podemos
observar a continuación…
Una buena forma de comprobar que todo ha salido bien es realizar una conexión desde
nuestro navegador a localhost o 127.0.0.1…
En este caso como vemos la ha creado perfectamente, y además como podemos ver
abajo a la izquierda la herramienta SET nos indica desde donde se ha realizado la
petición, que recurso a pedido, fecha, etc.…
Bueno, llegados a este punto ya tenemos nuestra web falsa o nuestro phishing listo,
ahora debemos realizar el MiTM visto en el post anterior. Como las condiciones en las
que están montados los equipos son un poco distintas vamos a ver de nuevo como lo
haríamos. La configuración de ambas maquinas es la siguiente…
En este caso tengo mi PC con Backtrack y un Windows XP en una maquina virtual
conectada mediante NAT, por lo que vamos a realizar un ataque MiTM al Win XP
(Aunque se podría hacer de otras formas ya que soy yo su “router” o gateway, de todas
formas vamos a verlo para demostrar como se haría en otros casos). Los pasos a seguir
para poder realizar el MiTM serian los que podemos observar en la siguiente imagen…
Una vez realizados esos pasos ya estaríamos de MiTM. Vamos ahora que es y como
podemos realizar un ataque de DNS Spoofing.
Para empezar un ataque DNS Spoofing se basa en que dada una situación de MiTM
donde todas las comunicaciones pasan por nosotros, estar a la escucha de todas y cada
una de las peticiones DNS que realice una o más maquinas con el fin de que cuando
esas maquinas que están siendo monitorizadas por el MiTM hagan una petición a una
cierta web, el atacante capture esa petición y en vez de mandarla al DNS verdadero sea
él, el que responda a la petición, suplantando la identidad del DNS y ofreciendo una
respuesta falsa a dicha petición.
Con esto logramos que si nosotros queremos suplantar la web de Titear, cuando alguien
pregunte por Twitter (Mande una petición DNS para conocer la IP del servidor de Twitter)
seamos nosotros los que respondamos y en vez de mandar a la víctima al servidor
legítimo lo mandaremos al servidor que hemos montado nosotros para realizar el
phishing.
Para realizar este ataque tenemos la herramienta dnsspoof, la cual necesita como
parámetro de entrada un fichero donde se encuentran las web de las que queremos
capturar la petición DNS y servir una respuesta falsa. Un ejemplo de este fichero seria
como se muestra a continuación…
Con este archivo le estaríamos diciendo que todo aquel que esté bajo el MiTM y
pregunte por Facebook sea redirigido a la IP 192.168.1.17 en vez de al servidor real.
Ahora para poder ejecutar el ataque DNS Spoofing deberíamos introducir el siguiente
comando…
dnsspoof -i INTERFAZ_DE_RED_UTILIZADA -f FICHERO_HOSTS
En mi caso el comando será un poco distinto ya que al estar haciendo NAT a la maquina
victima tengo que decirle al programa que a mi PC (El atacante) también le realice el
ataque, esto se consigue con el siguiente comando, donde especificamos al host al que
queremos realizar el ataque (Lo cual también puede ser útil en otras situaciones de
MiTM donde únicamente queramos dirigir el ataque de phishing a una determinada IP)…
dnsspoof -i wlan0 -f hosts host 192.168.1.17 and udp port 53
Para comprobar que todo el vector de ataque de MiTM y DNS Spoofing va de forma
correcta nos vamos a la maquina víctima, abrimos el navegador y vemos que en chrome
al poner facebook.com ya está realizando una petición DNS que es capturada por la
herramienta dnsspoof por lo que todo va sobre rueda. Ahora realizamos la petición y
vemos que nos sale lo siguiente…
Como vemos funciona PERFECTAMENTE, ya que a capturado la petición DNS y le ha
redirigido a nuestro servidor falso como podemos observar tanto a la izquierda en el
dnsspoof como a la derecha en el navegador. Como veis estamos en el dominio
supuestamente de facebook.com pero nos está sirviendo la web de Twitter… ¿Y esto
porque? Pues porque al principio hemos copiado la web de Twitter, y después en el
dnsspoof le hemos dicho que todo aquel que pregunte por Facebook sea redirigido a
nosotros, por lo que cuando alguien pregunte por Facebook le saldrá Twitter. Esto lo he
hecho para que vierais que no hay trampa ni cartón en la prueba, lo lógico sería poner
siempre la misma en ambos
Por ejemplo para copiar Twitter de verdad en este ataque únicamente tendríamos que
cambiar el archivo hosts por lo siguiente…
En nuestro caso yo voy a seguir con el dominio de Facebook para no alargar demasiado
el post. Ahora que ya tenemos todo montado, suponiendo que realmente el dominio es
Twitter y no Facebook, simulamos ser una víctima y nos “logeamos” a Twitter al no
sospechar pues la web es complementa igual y no se ve nada raro…
El usuario que hemos utilizado es “esto es una prueba” y la pass es la misma. Cuando el
usuario la da a “Iniciar Sesión” vemos que pasa lo siguiente…
Como vemos el usuario es redirigido a la web REAL de Twitter, por lo que creería que ha
introducido mal el usuario y se logearia sin problemas en su Twitter pero… Mientras
tanto el atacante como podemos ver en la siguiente imagen habrá obtenido el usuario y
contraseña de la victima sin esta haberse percatado…
Y con esto hemos llegado al final del post, donde hemos visto como sería posible realizar
un MiTM en una red, crear una web falsa para realizar phishing y capturar todas las
peticiones DNS para modificar aquellas que nos interesen y enviarlas a nuestro servidor
falso. El ejemplo como ya he dicho esta hecho sobre el dominio de Facebook con la web
de Twitter para que vierais que ambas cosas son completamente independientes y que
este tipo de ataques son muy flexibles y es posible hacerlos mucho más elaborados

Documentos relacionados