mitm dns spoof y set
DESCRIPTION
Manual de en el que se describe el ataque del hombre de enmedio, muy recomendableTRANSCRIPT
-
MITM, DNS Spoofing
y Set
Eduardo Arriols Nuez
-
En este documento vamos a hablar sobre los ataques MiTM (Man in The Middle), que
son y una de las formas ms bsicas de realizarlos. Tambin veremos cmo podramos
crear una web falsa, haciendo una copia exacta de otra web con la herramienta SET
(Social Engineer Toolkit) y adems veremos cmo es posible redireccionar a las vctimas
del MiTM o a las vctimas 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 comn en el que el atacante es
capaz de interceptar una comunicacin 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 informacin que sea transmitida entre ambas maquinas.
Es decir, el atacante estar en medio de la comunicacin, por lo que cuando la vctima
enve 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 vctima. Ocurrir lo
mismo cuando el servidor mande paquetes a la vctima, que antes de llegar a la victima
pasaran por el atacante.
Antes de ver un ejemplo prctico vamos a ver un poco la teora de como se produce este
tipo de ataques. Lo primero que tenemos que hacer para poder recibir los paquetes tanto
de la vctima 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 vctima como del servidor engandoles 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
Direccin 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 sera el router para poder
interceptar las comunicaciones en una LAN, antes del ataque seria
Direccin 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
Direccin 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
Direccin 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 informacin que deseemos en la comunicacin. 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 cmo podramos 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).
Despus 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 direccin).
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 prctico 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
estaramos en medio de la conexin entre el router y el equipo vctima. Como vemos a
continuacin en el equipo victima hemos conseguido cambiar en la tabla ARP la
direccin MAC del router, haciendo que sea la nuestra.
-
Ahora si quisiramos ver todo el trafico de la maquina victima que nicamente
necesitaramos abrir algn analizador de paquetes como wireshark y lo veramos todo,
como por ejemplo las claves en claro que introdujera la vctima en alguna web (bajo
HTTP, aunque ms adelante veremos cmo hacer lo mismo para HTTPS). En el
prximos post hablaremos de cmo realizar un ataque DNS Poisoning adems de ver
cmo crear una web falsa mediante la herramienta SET.
-
Ahora vamos a ver como podramos con la situacin anterior redirigir a las vctimas a
una pgina falsa creada por nosotros, con el fin normalmente de obtener credenciales de
acceso a alguna web o crear una web que adems 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 opcin, pero en el siguiente post
abordaremos la segunda
Para empezar lo primero que deberamos hacer sera crear una web falsa o una copia de
la web de la que queremos obtener los credenciales de la vctima. Para ello tenemos
varias opciones pero en mi opinin la mejor es la herramienta SET (En siguientes post
nos meteremos ms a fondo con esta herramienta ya que tiene de todo), as que vamos
al lo...
Debemos abrir la herramienta y nos aparece el siguiente men donde deberemos pulsar
la opcin que aparece en la imagen, en este caso la 1 para realizar ataques de
ingeniera social
-
Despus nos aparece la siguiente imagen donde debemos seleccionar la 2 para realizar
ataques web
-
A continuacin 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 opcin para realizar una copia de un sitio web
-
Ahora llegamos a la parte donde nos pide ciertos datos, concretamente nos va a pedir la
direccin 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 lgicamente 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 continuacin
Una buena forma de comprobar que todo ha salido bien es realizar una conexin desde
nuestro navegador a localhost o 127.0.0.1
-
En este caso como vemos la ha creado perfectamente, y adems como podemos ver
abajo a la izquierda la herramienta SET nos indica desde donde se ha realizado la
peticin, 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 estn montados los equipos son un poco distintas vamos a ver de nuevo como lo
haramos. La configuracin 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 podra hacer de otras formas ya que soy yo su router o gateway, de todas
formas vamos a verlo para demostrar como se hara 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 estaramos 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 situacin 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 ms maquinas con el fin de que cuando
esas maquinas que estn siendo monitorizadas por el MiTM hagan una peticin a una
cierta web, el atacante capture esa peticin y en vez de mandarla al DNS verdadero sea
l, el que responda a la peticin, suplantando la identidad del DNS y ofreciendo una
respuesta falsa a dicha peticin.
Con esto logramos que si nosotros queremos suplantar la web de Titear, cuando alguien
pregunte por Twitter (Mande una peticin DNS para conocer la IP del servidor de Twitter)
seamos nosotros los que respondamos y en vez de mandar a la vctima al servidor
legtimo lo mandaremos al servidor que hemos montado nosotros para realizar el
phishing.
Para realizar este ataque tenemos la herramienta dnsspoof, la cual necesita como
parmetro de entrada un fichero donde se encuentran las web de las que queremos
capturar la peticin DNS y servir una respuesta falsa. Un ejemplo de este fichero seria
como se muestra a continuacin
Con este archivo le estaramos 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 deberamos 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) tambin le realice el
ataque, esto se consigue con el siguiente comando, donde especificamos al host al que
queremos realizar el ataque (Lo cual tambin 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 vctima, abrimos el navegador y vemos que en chrome
al poner facebook.com ya est realizando una peticin DNS que es capturada por la
herramienta dnsspoof por lo que todo va sobre rueda. Ahora realizamos la peticin y
vemos que nos sale lo siguiente
-
Como vemos funciona PERFECTAMENTE, ya que a capturado la peticin 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 despus 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 cartn en la prueba, lo lgico sera poner
siempre la misma en ambos
Por ejemplo para copiar Twitter de verdad en este ataque nicamente tendramos 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 vctima 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 Sesin vemos que pasa lo siguiente
-
Como vemos el usuario es redirigido a la web REAL de Twitter, por lo que creera 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
contrasea de la victima sin esta haberse percatado
Y con esto hemos llegado al final del post, donde hemos visto como sera 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 ms elaborados