en esta ocasión les comparto uno de los ataques más
peligrosos y destructivos que se puede hacer a nivel de capa 2.
Irónicamente el envenenamiento ARP se considera como hacking básico.
Incansablemente lo repetiré: el único y
verdadero objetivo de este escrito es promover una cultura de seguridad
informática y orientar a los administradores de red acerca de cómo
prevenir ataques de tipo envenenamiento ARP.
Conocimientos previos
El protocolo ARP (address resolution
protocol) opera a nivel de la capa 2. Es ampliamente usado en redes de
área local. Su función básica es asociar una dirección lógica (IP) con
una dirección física (MAC). Esta asociación se almacena en cada host de
la red y es conocida como ARP-Caché. La ARP-Caché puede consultarse en
máquinas Windows bajo el comando: arp –a.
Supóngase el caso de que el Host A
(192.168.0.1) desee comunicarse con el Host B (192.168.0.2) para copiar
el último éxito de los Wachiturros. El algoritmo a seguir es el
siguiente:
- El host A verifica su ARP cache en la búsqueda de la dirección MAC de 192.168.0.2, si no la encuentra, procede a actualizar su ARP-Caché mediante los siguientes pasos:
- El host A(192.168.0.1) envía a todos los equipos de la red un paquete del tipo ARP-Request, preguntando la dirección MAC del IP 192.168.0.2.
- Todas las maquinas reciben el paquete pero solo responde la que tenga la dirección 192.168.0.2. La respuesta es un paquete ARP-Reply que incluye la dirección MAC de 192.168.0.2
- El host A recibe el paquete ARP-Reply, extrae la dirección MAC de B y la almacena en su ARP-Caché
Lo antes descrito sucede en la capa dos
del modelo OSI, posteriormente se procederá con pasos adicionales a
nivel de las capas superiores a fin de completar la transmisión.
Entrado en materia
Supóngase el siguiente escenario:
Las ARP-Caché de cada host deberían ser:
Para el host A:
IP | MAC |
192.168.0.2 | Y |
192.168.0.3 | Z |
Para el host B:
IP | MAC |
192.168.0.1 | X |
192.168.0.3 | Z |
Para el host C:
IP | MAC |
192.168.0.1 | X |
192.168.0.2 | Y |
La vulnerabilidad
Ahora, suponga que un usuario mal intencionado hace uso del equipo B e instala el software Cain y Abel,
procede a hacer un escaneo de red, y elige a dos víctimas (A y C) para
llevar a cabo el ataque de envenenamiento ARP. Luego del envenenamiento
exitoso, las ARP-Caché de A, B y C quedan de la siguiente forma:
Para el host A:
IP | MAC |
192.168.0.2 | – |
192.168.0.3 | Y |
Para el host B:
IP | MAC |
192.168.0.1 | X |
192.168.0.3 | Z |
Para el host C:
IP | MAC |
192.168.0.1 | Y |
192.168.0.2 | – |
Nótese que las tablas de los Host A y C
están corruptas, y que solo las tablas de B (el atacante) se mantiene
integra. Este envenenamiento se logró gracias a que el software
instalado en el host B, fue capaz de generar paquetes ARP-Reply
especialmente diseñado para corromper las ARP-Caché de A y C.
ARP es un protocolo que no soporta
autenticación y por lo tanto cualquier host puede actualizar las
ARP-Cache de los demás sin necesidad de un paquete ARP-Request.
Las consecuencias
Es a partir de ese momento que B se
convierte en un intermediario entre las actuales y futuras
comunicaciones entre A y C. Los protocolos que son vulnerables a este
tipo de ataques
son: ftp, http, imap, pop3, smtp, smb, telnet, mysql, vnc, etc.
¿Cómo evitar el ataque?
Lamentablemente este tipo de ataque
requiere como única solución el desactivar el protocolo ARP. Esto solo
es posible si el administrador escribe manualmente la tabla ARP-Caché en
cada equipo de la red.
Otra posible medida de seguridad es
implementar versiones seguras de los protocolos afectados, por ejemplo:
en vez de http usar https, en vez de telnet usar ssh, y así
sucesivamente. Esto no detendrá el ataque, pero el atacante solo tendrá
acceso a los Hash de los password. Para decodificarlos deberá hacer uso
de ataques de fuerza bruta o diccionarios.
0 comentarios:
Publicar un comentario