Archivo de posts de la categoria: ‘arp frame’
Ataque tipo: Man in the middle
A pesar de que existen herramientas específicas usadas por los pentesters y auditores de seguridad (además de terceros con peores intenciones…) para realizar este tipo de operaciones, vamos a enfocar el proceso paso a paso con el fin de entenderlo y poder atajar sus efectos.
Herramientas como Cain, Nemesis o Ettercap hacen este tipo de procesos/ataques a las mil maravillas, con variantes e ingredientes añadidos, pero la base de un MITM (Man In The Middle), pasa por entender lo que ocurre cuando enviamos algo a otro sistema informático.
Normalmente, las personas retenemos mal una secuencia de números de cierto número de cifras pero nos es mucho mas fácil de retener una secuencia de letras porque le vemos mas sentido.
Por ello los dominios tienen nombres como: google.com
Esta cadena de caracteres (“google.com”), nos resulta mas amigable que un 74.125.230.81
Ese conjunto de números es lo que denominamos IP y todos ya tenemos en nuestro vocabulario común. Más concretamente una IPv4 consistente en 32 bits agrupadas en 4 grupos de un byte cada uno (1 byte=8 bits), de ahí los puntos entre los números. Dado que este tipo de información es tan básico dejaremos que quien precise mas información sobre IPs vaya aquí.
El caso es que cuando introducimos una dirección como “www.google.com” en un programa, el ordenador no tiene la mas remota idea de donde está esa web, equipo, servicio o lo que quiera ser esa cadena de caracteres.
Por ello “pregunta” a otros ordenadores, denominados servidores DNS ago como (entiendase conversación entre ordenadores
):
Tu equipo: ” -¿Sabría usted decirme la IP de esta cadena que me ha pedido el usuario?“
El servidor DNS: “-Si claro, como no… vaya a la dirección 74.125.230.81 y olvidese de lo que su usuario le ha pedido. Comprobara que pese a esto, su usuario se siente satifecho con lo que usted le ofrece…(porque es lo mismo)“
La cosa es que el equipo “va” a la dirección IP y no al nombre que el usuario ha pedido, porque si bien son lo mismo, podemos decir que el texto es la forma en la que se refieren los usuarios a un determinado sitio/equipo/web/servicio, mientras que los números (IP), es la forma de denominarlo que tienen los ordenadores…
Ahora la pregunta es:
¿Y que ocuriría si el servidor DNS al que preguntas…resulta ser un suplantador del original?
Podría dirigir cualquiera de las peticiones que el usuario efectúa, hacia cualquier otro lugar…
Ese suplantador, es uno de tantos tipos de man in the middle, si bien veremos otros tipos de forma mas profunda.
Este ataque es de fácil realización por várias técnicas, si bien la de modificar la configuracíón del router de acceso a internet del usuario o cambiar las DNSs de su equipo son las mas fáciles y utilizadas.
Sigamos profundizando algo más en la comunicación entre equipos.
Hemos visto que las cadenas de caracteres se transforman en IPs, pero hay pasos adicionales.
Veámoslo con ejemplos.
Si utilizas MS Windows (si usas Linux y no sabes que es una shell…mal lo llevamos…), pulsas inicio, ejecutar y tecleas “cmd” (+ enter), para abrir una de esas consolas negras “que no sirven para nada porque no tienen iconos…:-)”
Si en dicha consola (a la que denominaremos “shell”), tecleas hostname y verás el nombre de tu equipo y si introduces el comando “ipconfig” (ifconfig en Linux), verás la dirección IP de tu ordenador.
Pero hay más…
Si hacemos un ping (simplificando: comando para comprobar que el destinatario responde) a tu propia ip, comprobarás que responde a la petición.
Podríamos decir que la dirección IP es otro número “impuesto” al equipo (como el número de la seguridad social, o del carnét de conducir), si bien no es propio del equipo por construcción.
Hay otro número (hablando en binario), que SI que es intrinseco al equipo y que viene en su “ADN”, pues se le otorga durante su contrucción y se supone único a nivel mundial… “:-/”
A este número se le denomina dirección MAC o dirección física y cada tarjeta de red tiene uno diferente.
Una vez que un ordenador sabe a que IP debe enviar su mensage/peticion/lo que sea…dentro de una LAN (red local) pregunta a dicho equipo por su dirección MAC.
Tu ordenador: “-Oye 192.168.1.23, te importa darme tu dirección física para enviarte los datos?, por cierto, la mía la tienes en mi propia petición“
El otro equipo/router/aparato: “-Si claro, mi MAC es esta: 00:1E:0B:00:2F:3C“
La representación se suele realizar en formato hexadecimal, ya que es mas corto que el mismo número en binario que sería este:
1111000001011000000000010111100111100
Que a su vez corresponde a este otro en decimal (formato numérico al que mas acostumbrado el está la mayoria de NO informáticos…)
129033580348
Así como el protocolo para resolver una IP, en base a una FQDN (Full Qualified Domain Name) como www.google.com, el algoritmo utilizado era DNS… existe otro algoritmo utilizado para resolver direcciones MAC en base a una dirección IP: Se denomina ARP (Address Resolution Protocol).
E xiste una forma de ver las direcciones MAC que un ordenador tiene en cache, o dicho de otro modo, las ultimas y mas habituales a las que ha contactado durante los ultimos instantes. El comando es “arp -a“. Con dicho comando veremos una lista de equivalencias entre IPs y MACs, que usa el equipo para no tener que resolver direcciones que ya haresuelto hace poco tiempo (segundos/minutos dependiendo de configuraciones).
Cualquier trama que un equipo envía, incluye la dirección MAC de éste (así como su IP), y por tanto un simple ping a la IP de un equipo, desencadena la resolución de su dirección física (a no ser que la tengamos ya en memoria, por una transmisión reciente anterior).
Ahora bien, el ataque del que hablamos, se cimenta en este mecanismo de resolución.
Supongamos que desde tu equipo estás conectado a internet mediante un router. Ello implica que tanto router como tu equipo tienen la IP y MAC del otro y de ese modo transmiten datos entre ambos (y tambien al resto del mundo).
Como sabemos, todo lo que se envía, se pasa en un momento u otro a binario (ceros y unos), y por tanto entre ese conjunto de ceros y unos debe estar incluida la información de la IP, la MAC y otros datos. Si sabemos exactamente donde y conseguimos realizar un falseado de los mismos…tendremos desencadenado el ataque y conseguiremos “ver” todo el tráfico que intercambien los equipos atacados (en este caso un equipo y su router de internet).
El esquema quedaría de este modo:
Veamos el proceso paso a paso:
1.- Cuando el equipo víctima y el router, quieren comunicar entre si, intercambian sus ips y direcciones MAC por medio de ARP
2.- Este mecanismo se realiza de vez en cuando para refrescar la información.
3.- El atacante consigue la ip y la mac de ambos (equipo victima y router), por medio de un simple ping a cada uno( u otro mecanismo cualquiera).
4.- Falsea la información de ambos equipos (equipo víctima y router) y ellos mismos empiezan a mandarle la información “creyendo” que
lo hacen a su legítimo interlocutor.
Ahora vamos a la práctica:
El atacante hace un simple ping a los equipos víctima:
Además captura una trama para modificarla:
Esta trama, almacenada en formato “pcap”, puede almacenarse en un fichero y modificarse con un editor hexadecimal.
El atacante creará dos tramas “envenenadas”.
En la trama que , el atacante, mandará al router, cambia la mac del equipo víctima por la suya,( manteniendo la ip del equipo víctima). De este modo cada vez que el router quiera mandar datos al equipo víctima, realmente la mandará a laMAC del atacante y este observará todo el tráfico.
En la trama que enviará al equipo víctima, cambiará la MAC del router por la suya propia, para que el tráfico generado por la víctima y con destino al router, realmente vaya a parar al atacante.
Posteriormente, solo tiene que crear un pequeño script que envíe cada pocos segundos estas tramas a ambas víctimas (equipo y router), porque sino en unos segundos, ellos mismos, mandarán los datos correctos al otro y el ataque cesará. Este envío contínuo de datos manipulados es lo que llamamos envenenamiento por ARP (ARP Spoofing o ARP Poisoning). (para los mas curiosos:el programita “file2cable”, permitirá mandar por la red el contenido de los archivos manipulados como tramas).
La víctima ahora está a merced del atacante que puede ver todo el contenido de sus transmisiones con el router así como cortarlas, almacenarlas, modificarlas antes de que lleguen a su legítimo destino, reenviarlas…
Como contramedidas o forma de protegerse de este tipo de ataque, hay programas y software de seguridad que permite bloquear o avisar ante cambios de direcciones MAC. Hay quienes optan por tener fijas ciertas direcciones como las del router, evitando su cambio sin autorización. Hay varias formas de evitar este tipo de ataques, pero lo primero para ello, es conocer como se efectúa y como consecuencia entender que elementos deben ser vigilados en una red.
Filed under: Networking, Seguridad Tagged: ARP, arp frame, ARP spoofing, DNS, man in the midle, MITM



Teléfono de atención a clientes y partners: