Las vulnerabilidades de la red
Aspectos generales
Las redes actuales se basan en estándares y normas que se remontan a la creación de Internet. Las evoluciones tecnológicas y la aparición de nuevos medios de comunicación, han creado nuevas vulnerabilidades además de los defectos residuales originales.
Las vulnerabilidades de la red afectan tanto al individuo simple como a la gran empresa. Este capítulo nos ayudará a entender algunos aspectos del hacking a nivel de red y las contramedidas asociadas.
Recordatorio sobre las redes TCP/IP
Los conceptos descritos a continuación son esenciales. Son la base de cualquier red TCP/IP moderna.
1. El modelo OSI
Escribir un solo programa que maneje todas las tareas necesarias para ejecutar una red sería muy complejo, incluso una pesadilla para la persona que tiene que hacerlo o mantenerlo. Asimismo, con fines de estandarización y simplificación, se creó el modelo OSI (Open Standardization for Interconnection). Cada capa desempeña su función y depende del resto de capas para las funcionalidades que no están dentro de su ámbito.
A continuación, se presenta un resumen:
Resumen del modelo OSI
2. Dirección MAC y dirección IP
En las redes locales actuales, los dispositivos de red se conectan muy a menudo entre sí mediante un enlace cableado de tipo Ethernet (estándar 802.3x) o wifi inalámbrico (802.11a/b/g/n/ac). En ambos casos, la(s) tarjeta(s) de red presentes en los dispositivos se identifican individualmente mediante una dirección denominada dirección MAC (Media Access Control). Esta dirección MAC se gestiona en la capa 2 del modelo OSI.
La dirección MAC, desarrollada para operar en una red de área local (LAN), solo se usa localmente y la información no pasa por lo rúters.
Con la llegada de Internet, la situación cambia ya que se permite conectar un conjunto de redes a la web usando rúters. El rúter es un elemento esencial de las redes modernas, y su principal tarea es enviar información en la dirección correcta (a la red correcta).
Por lo tanto, es necesario definir la información que permita identificar un periférico y que pueda pasar por un rúter; se trata de la dirección IP. Al igual que la dirección postal determina de manera única e inequívoca una casa, una dirección IP identifica una interfaz en una red (incluso el dispositivo, si solo tiene una interfaz).
La gestión de las direcciones IP la realiza la capa 3 del modelo OSI. En la versión 4, la dirección IP (Internet Protocol) consta de cuatro números del 0 al 255 separados por un punto (XXX.XXX.XXX.XXX). En el ejemplo de la siguiente imagen, la dirección IPv4 es 192.168.200.51.
Ejemplo de dirección IPv4 en Windows
El rápido desarrollo de Internet ha provocado una escasez...
Herramientas prácticas
Esta parte reúne varias herramientas que son útiles en el día a día.
1. Información sobre los sockets
netstat permite conocer los servicios y puertos abiertos en su máquina, así como los diferentes estados de las conexiones (Linux, OSX y Windows). Hay que ejecutar:
netstat -a[nt]
-a Muestra todas las conexiones y puertos de escucha.
-n Muestra direcciones y números de puerto en formato numérico.
-t Muestra el estado actual de descarga de la conexión.
Visualización de los sockets con netstat en Windows
Los estados posibles son los siguientes:
-
ESTABLISHED: conexión establecida.
-
SYN_SENT y SYN_RECV: se está estableciendo la conexión.
-
CLOSE: socket cerrado.
-
CLOSE_WAIT: socket en espera de ser cerrado.
-
LISTENING: un servicio está abierto en este puerto.
El análisis de los resultados muestra que:
-
se han establecido dos conexiones a los servidores de Google (173.194.65.91 y 173.194.66.100) en los puertos 443 (HTTPS);
-
se ha establecido una conexión con un servidor ENI (185.42.28.201) en el puerto 80 (HTTP).
lsof permite listar todos los archivos abiertos. Dado que en Linux todos los elementos del sistema se consideran archivos, los sockets no son una excepción. Ejecute:
lsof -ni tcp
-n impide la conversión de números de red (direcciones decimales) a nombres de host para los archivos de red.
-i selecciona archivos cuya dirección de Internet coincida con la dirección especificada en -i.
Este comando permite listar las conexiones y los PID asociados con los distintos programas en funcionamiento.
Esta herramienta puede ser muy útil para saber qué programa abre sockets en su ordenador.
Visualización de los programas que han abierto sockets con lsof
Para tener el mismo tipo de información en Windows, es necesario usar TCP View de Mark Russinovich. La "Sysinternals Suite" completa también es muy útil para los administradores de Windows.
Visualización de los programas que han abierto sockets con TCP View
2. Información de una dirección pública o un nombre de dominio
Hay sitios especializados como http://whois.domaintools.com/ que permiten registrar nombres de dominio en Internet y mostrar todos los datos relacionados con un dominio.
Ejemplo de información disponible a través...
DoS y DDoS
Un DoS (Denial of Service) es un ataque de denegación de servicio. El propósito de una denegación de servicio es hacer que dicho servicio no funcione o derribar el servidor que lo aloja.
Establecimiento de una sesión TCP
TCP es un protocolo orientado a la conexión. Establecer una sesión garantiza que las aplicaciones queden listas para recibir los datos y que el destinatario reciba toda información.
Por lo tanto, es posible que los datos se transmitan varias veces porque no se han recibido a tiempo. Después de cerrar una conexión TCP, la llegada tardía de porciones duplicadas podría hacer que el puerto se reabriera innecesariamente. Para evitar esto, se activa un timer quiet (igual al doble del TTL IP) y se bloquea el puerto.
El TTL (Time To Live) de un paquete IP que pasa por una red se reduce en 1 cada vez que pasa por un rúter para evitar que el paquete se repita indefinidamente. De hecho, cuando el TTL es cero, el rúter simplemente opta por descartar el paquete.
Principio del handshake en tres pasos durante el inicio de sesión TCP
El ataque por SYN flood es uno de los ataques más extendidos, consiste en solicitar conexiones y no responder a ellas. Durante una solicitud de conexión, el servidor está a la espera y bloquea parte de sus recursos durante un tiempo determinado para esta nueva conexión.
El objetivo es enviar más solicitudes...
Sniffing
Los sniffers, o rastreadores de paquetes, son herramientas que se utilizan para recuperar todos los datos transmitidos a través de una red, desde la capa 2 hasta la capa 7 del modelo OSI.
Para poder escuchar el tráfico, será necesario configurar la tarjeta de red en modo "promiscuo". Este modo permite interceptar todo el tráfico de la red, incluso los paquetes que no están destinados a ella.
Muchos protocolos de red no cifran los datos, por lo que es posible ver las contraseñas de Telnet, POP, FTP, etc.
Pero también es posible ver los sitios visitados en su red o incluso las conversaciones de MSN y leer los datos sin cifrar (usuario y contraseña incluidos).
Wireshark, anteriormente conocido como Ethereal, es un sniffer de software.
Instalación de Wireshark en Debian:
apt install wireshark
O descargue las fuentes o el instalador para otros sistemas operativos desde http://www.wireshark.org. Una versión 2 está actualmente disponible en "preview".
Nueva presentación de Wireshark
El analizador de paquetes en línea de comandos tcpdump (WinDump en Windows) puede capturar el tráfico visible desde una interfaz de red e incluso guardarlo en un formato compatible con Wireshark.
1. Capturar datos con Wireshark
Una vez instalado, ejecute Wireshark con el usuario root o realice las siguientes operaciones:
# dpkg-reconfigure wireshark-common
Seleccione la opción "sí".
# usermod -a -G wireshark <usuario>
Vuelva a conectarse con su usuario
Haga clic en Capture - Interface.
Elija su interfaz de captura y luego haga clic en Start.
Comienza la captura. En unos instantes, se muestran...
Man In The Middle en una red local
1. Corrupción de la caché ARP (teoría)
El ataque del hombre en el medio o Man In The Middle (MITM), es un ataque que requiere al menos tres ordenadores. Desde el punto de vista del primer ordenador el de en medio se hace pasar por el segundo y, desde el punto de vista del segundo, se hace pasar por el primero. El ordenador de en medio intercepta y devuelve las comunicaciones y puede modificarlas si es necesario.
En una red local de tipo Ethernet, las máquinas de una misma red no se comunican a través de su dirección IP, sino a través de su dirección MAC. La dirección MAC identifica de forma única una máquina en una red Ethernet. Esta dirección se define en 6 bytes (48 bits).
En una red IPv4, el protocolo ARP (Address Resolution Protocol) juega un papel importante en el funcionamiento de las comunicaciones de la red, ya que es el que permite que una máquina conozca la dirección MAC de una máquina remota.
En la jerga, la operación que consiste en encontrar esta dirección MAC se llama resolución, por lo que hablamos de resolución ARP.
El objetivo de ARP es resolver la dirección de nivel 3 (la dirección IPv4) en una dirección de nivel 2 (la dirección MAC). Una dirección IP es una dirección lógica, a diferencia de la dirección MAC que es una dirección física.
En consecuencia, el administrador de la red o el usuario pueden asignar esta dirección IP. Por lo tanto, es posible proporcionar la información de la dirección IP de destino al sistema con el que desea comunicarse.
ARP encuentra la dirección MAC del sistema de destino utilizando la dirección de nivel 3, la dirección IPv4.
Principio de una petición ARP
En el escenario donde la estación PC01 se quiere comunicar con la estación PC02, donde aún no se ha producido ninguna comunicación, PC01 aún no puede conocer la dirección MAC de PC02, al igual que PC02 no puede conocer la dirección MAC de PC01. Para mostrar la lista de direcciones MAC conocidas por el dispositivo hay que utilizar el comando arp -a (punto 2 en el esquema).
El switch que conecta las dos máquinas tampoco tiene ninguna información por el momento, ya que solo llena su tabla de correspondencia...
Robo de sesión TCP (hijacking) y spoofing de IP
La corrupción de caché ARP involucra a las capas 2 y 3 del modelo OSI. Pero también es posible atacar la capa 4.
La capa Transporte del modelo OSI (la capa 4) contiene, entre otras cosas, TCP y UDP.
Sería interesante tomar el control de una sesión TCP para, por ejemplo, suplantar una sesión Telnet ya inicializada o bloquear la comunicación del cliente real y enviar comandos. Todo esto sin introducir ningún usuario o contraseña. De hecho, con esta técnica ni siquiera es necesario conocer los identificadores.
El hijacking compromete las conexiones no cifradas, por ejemplo: Telnet.
Peor aún, el hijacking hace que cualquier autenticación por dirección IP como RLOGIN haya quedado obsoleta.
1. La vulnerabilidad: ACK/SEQ
Establecer una sesión TCP requiere varias etapas que garanticen el orden de transmisión de los paquetes a lo largo del tiempo (consulte el diagrama en la sección DoS y DDoS).
Las etapas para establecer una conexión TCP son las siguientes:
-
El cliente envía un paquete de petición de sincronización (SYN), que contiene un número de secuencia al que llamaremos SEQ-CLIENT.
-
El servidor devuelve un paquete (SYN/ACK), que contiene un par ACK/SEQ:
-
ACK-SERVER contiene el número de secuencia (SEQ-CLIENT+1) del paquete de cliente anterior.
-
SEQ-SERVER generado por el servidor.
-
El cliente envía un ACK = (SEQ-SERVER+1), SEQ= ACK-SERVER = (SEQ-CLIENT+1).
Una vez que se establece la conexión, los números de secuencia aumentan en función de los paquetes recibidos o enviados.
Por lo tanto, nada impide crear un paquete TCP con la dirección IP del cliente con destino al servidor; será aceptado si la pareja ACK/SEQ se ajusta a las expectativas del servidor.
En una red no conmutada o con un ataque de corrupción ARP, además es posible enviar y recibir paquetes destinados a la máquina legítima.
El objetivo final es hacer spoofing de IP, es decir, usurpar direcciones IP existentes o no. Sin embargo, para conseguirlo es obligatorio entender el hijacking y dominar el arte de predecir la pareja ACK/SEQ.
Por lo tanto, es muy interesante tener la misma configuración que el objetivo del ataque en una red local para entender cómo se generan las ACK/SEQ en función...
Vulnerabilidades Wi-Fi
Desde principios de la década de los 2000, con la llegada de los medios inalámbricos, el estándar Wi-Fi se ha vuelto imprescindible. Las ondas no se detienen en las puertas y ventanas, por lo que la seguridad de este tipo de red se limita al cifrado.
WPA2 AES con autenticación RADIUS parece ser una buena solución en el momento de escribir este libro.
1. Crackear una red WEP
Sobre todo, ya no se debería usar el estándar WEP en un entorno de producción. Aquí se estudia con fines pedagógicos.
Aircrack es el paquete de software que nos permite crackear redes Wi-Fi.
Instalación en Debian de aircrack-ng:
apt install aircrack-ng
a. Capturar los paquetes
Para descifrar la clave WEP, se deben capturar paquetes. Las hipótesis para el ejemplo son:
-
una tarjeta Wi-Fi llamada wlan0;
-
un nombre de la red (ESSID) ACISSI;
-
la dirección MAC del punto de acceso Wi-Fi es: 00:11:22:33:44:55;
-
la dirección MAC del ordenador cliente es: 00:00:00:00:00:01.
El comando iwconfig permite conocer el nombre de la interfaz Wi-Fi.
airodump-ng --write capture1 wlan0
Airodump es el programa que captura los paquetes Wi-Fi.
Para el ejemplo, los paquetes se capturan desde la interfaz wlan0 y se guardan en el archivo capture1.cap. El archivo capture1.txt contiene información útil como los clientes conectados a los puntos de acceso, las direcciones MAC, etc.
CH 10 ][ Elapsed: 3 mins ][ 2009-02-13 12:23
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
4A:9A:6D:77:83:49 0 176 1 0 1 54e OPN FreeWifi
00:18:E7:23:A5:DD 0 0 0 0 6 54e. WPA TKIP PSK Livebox-31B6
62:BA:70:71:55:2F 0 0 0 0 1 54e WPA TKIP MGT freephonie
BSSID STATION PWR Rate Lost Packets Probes ...
IP over DNS
1. Principios básicos
La IP over DNS es una técnica que tiende a extenderse. De hecho, cada vez hay más hotspots Wi-Fi disponibles. El problema es que a menudo es necesario autenticarse para acceder a Internet.
La mayoría de estos hotspots están mal configurados y dejan pasar las peticiones DNS. Por lo tanto, es posible encapsular paquetes TCP/UDP en una petición DNS falsa para crear un túnel. Esta técnica es conocida, pero aún no está muy extendida debido a la falta de recursos. De hecho, para realizar este ataque necesitamos tener: un servidor, una IP pública y un nombre de dominio.
2. En la práctica
Iodine es una implementación de IP over DNS que puede explotar conexiones garantizadas por hash MD5 y también puede filtrar paquetes que no provienen de la dirección IP utilizada durante la conexión.
Instalación de iodine
Recuperamos el archivo en el sitio http://code.kryo.se/iodine/
# descompresión del archivo
tar xvzf iodine-0.5.2.tar.gz
# compilación iodine
make
# instalación de iodine en root
make install
# lance iodine servidor
iodined -f 10.0.0.1 sudominio.com
Necesitamos modificar el archivo de zona del dominio para delegar el subdominio en nuestro servidor falso DNS.
tunnel1host IN A ipdelservidor
tunnel1 IN NS tunnel1host.mytunnel.com....
La telefonía sobre IP
La voz por IP (VOIP, Voice over IP) ha experimentado un crecimiento significativo en España, tanto entre las empresas como entre los particulares gracias, principalmente, a la simplificación de las ofertas. El phreaking, la técnica de pirateo dedicada a la telefonía, está inevitablemente próxima al hacking. En efecto, si la telefonía utiliza la red informática, hereda sus vulnerabilidades.
La telefonía siempre ha sido objeto de dos tipos de ataques diferentes: la escucha de conversaciones telefónicas y el uso fraudulento de las mismas.
El phreaking era una disciplina deportiva, porque el phreaker se tenía que mover físicamente para conectar los cables para poder escuchar, tomar el control o incluso cortar la línea. En la actualidad, todas estas operaciones son posibles sin moverse y con pocas manipulaciones. Por lo tanto, hay que admitir que la telefonía IP ayuda a los piratas gracias a la discreción resultante.
En una red informática, el sniffing permite escuchar el tráfico, por lo que solo hay un paso para escuchar una conversación telefónica. En lo que respecta a la suplantación de línea, la pareja identificador/contraseña se puede descubrir usando la fuerza bruta fuera de línea.
1. Escuchar la conversación
El programa VoiPong permite grabar una conversación VoIP...
IPv6
La gran migración de Internet a IPv6 aún no se ha producido. Sin embargo, estamos al borde de la escasez de direcciones IPv4 en Europa y Estados Unidos. Por otro lado, Asia ya no tiene direcciones IPv4 disponibles desde abril de 2011.
En Europa, la fecha estimada de vencimiento también ha pasado.
Sin embargo, la mayoría de las empresas y operadores no han migrado a IPv6.
En la era de la virtualización donde necesitamos más y más direcciones IP, tenemos la impresión de que IPv6 es solo un mito. ¿Por qué?
Hay diferentes tipos de problemas relacionados con una migración tan importante en una empresa.
1. El software
Aquí tenemos el típico ejemplo del bug del año 2000. Durante la creación del software, hace entre 10 y 20 años, era inimaginable proveer software de tipo cliente/servidor con IPv6, ya que los propios sistemas operativos aún no lo implementaban.
Generalmente, con respecto a las aplicaciones clásicas, es suficiente con una simple actualización, muchas veces de pago.
Pero para aplicaciones de negocio desarrolladas muy específicas o para las que el editor ya no existe, es más complicado.
Solo un pequeño conjunto de máquinas con Windows XP no integran la pila IPv6 de forma predeterminada, se debe ir a cada máquina para activarla a través de una consola.
2. El hardware
Será necesario cambiar algunos equipos de red.
E incluso aquellos compatibles que necesitan una simple actualización, quizás ya no puedan establecer tantas conexiones como antes, dado el lugar que ocupa IPv6 frente a su antecesor en un sistema embebido. Esto puede marcar un gran diferencia.
3. El ser humano
IPv6 requiere una formación para los informáticos. Esto representa un coste no despreciable.
Por lo tanto, es posible migrar lentamente a una arquitectura IPv6, incluso si eso significa coexistir IPv4 e IPv6 durante varios años.
Pero ¿cuál es la ventaja? ¿Realmente vale la pena para una empresa hoy en día, sabiendo las limitaciones de coste, tiempo y problemas que esto puede representar, cuando en la actualidad todo está funcionando y la ventaja no se verá de inmediato?
Actualmente, la respuesta parece ser no: dada la escala del trabajo, mientras el sistema de información...
Conclusión
Las vulnerabilidades de la red son ataques temibles y bien conocidos, porque no son fáciles de solucionar. Erradicar estas vulnerabilidades significa cambiar la arquitectura de la red: esto es costoso y, en el contexto de la red de redes, cambiar todo en unos meses sería una utopía, hay un número enorme de máquinas conectadas. Sin embargo, las mejoras están llegando con IPv6.
Pero solo este cambio de protocolo llevará mucho tiempo y será necesario mantener la compatibilidad con IPv4 durante bastante tiempo.
Hoy en día, hay muy pocas direcciones IPv4 públicas disponibles.
IPv6 para los no iniciados representa un gran riesgo. De hecho, desde el ADSL, muchos no prestan atención a tener un firewall en su máquina: la falta de direcciones IP nos ha aislado detrás de la NAT de nuestros rúters.
Cuando se pase a IPv6, sus puertos abiertos estarán disponibles para cualquier persona que tenga una IPv6, a menos que el rúter incluya un firewall.
Es cierto que escanear IPv6 es mucho más lento: en lugar de escanear una IP pública, también tendrá que escanear todas las IPv6 que no se utilizan en su red. Sin embargo, las técnicas se están refinando para realizar un escaneo de forma no lineal, basado en la probabilidad y de manera distribuida.
Se empiezan a diseñar herramientas y, por ejemplo, encontrará el excelente...