Mitm DNS Spoof y Set

17
MITM, DNS Spoofing y Set Eduardo Arriols Nuñez

description

Manual de en el que se describe el ataque del hombre de enmedio, muy recomendable

Transcript of Mitm DNS Spoof y Set

  • 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