Interceptando el tráfico de red con el espionaje de paquetes Sniffer


La práctica del rastreo de paquetes ha existido desde fines de la década de 1980. Se ha utilizado ampliamente en toda la comunidad de ciberseguridad y sirve para muchos propósitos. Primero, creo que deberíamos cubrir lo que realmente es. Según paessler.com, se define como la práctica de recopilar, recopilar y registrar algunos o todos los paquetes que pasan a través de una red informática, independientemente de cómo se aborde el paquete .

Este informe cubrirá lo siguiente:

  1. Prólogo: Realizar / ejecutar este tipo de ataque.
  2. Herramientas utilizadas (Espionaje y sslstrip2).
  3. Comprender lo que sucede detrás de escena (sockets sin procesar, marcos de ethernet, protocolos, etc.)
  4. Cómo defenderse de las intercepciones de red.
  5. Epílogo: uso legal y uso poco ético.

Veamos una demostración de un ataque básico de rastreo de paquetes. Usaré espionaje. Si no lo tiene instalado, puede clonarlo desde el repositorio de GitHub que se encuentra aquí: https://github.com/josh0xA/Espionage

A) El siguiente comando ejecutará una intercepción detallada y almacenará la salida en el argumento -f.

  • sudo python3 espionage.py --verbose --iface wlan0 -f capture_output.pcap
El espionaje se ejecutará hasta que el usuario lo excluya (Ctrl + C) /

Podemos ver el origen y el destino y también los indicadores del segmento TCP de los paquetes que fluyen a través de nuestra máquina a un host de terceros. Esta información adicional nos ayuda a analizar y desglosar los paquetes.

¿Y qué? Probablemente este no sea el método de ataque más efectivo si está buscando recopilar información y, como puede ver, solo podemos oler nuestro host local (127.0.0.1). Para resolver esto, podemos usar una táctica muy popular y muy antigua llamada ARP Spoofing. ARP Spoofing o ARP Cache Poisoning engaña a la puerta de enlace predeterminada de nuestro enrutador para que piense que somos otra computadora en la red. Lo hace enviando paquetes ARP desde la dirección MAC de nuestra máquina al enrutador y desde el destino, permitiendo que todo el tráfico sea redirigido a través del atacante.

Realicemos un ataque ARP Spoofing.

B) sudo python3 espionage.py - objetivo 192.168.0.64 - iface wlan0

Imagen para publicación
Deje que esto se ejecute en segundo plano como una instancia separada.

Ahora podemos usar un comando de espionaje incorporado para rastrear las URL visitadas desde 192.168.0.64.

C) sudo python3 espionage.py - iface wlan0 - urlonly

Imagen para publicación
Sniff de URL

Como puede ver, olfateó las URL visitadas por la máquina de destino. También registra datos HTTP sin procesar que se han ingresado a sitios web inseguros (se muestra en la parte inferior: usr = admin, pwd = 12345). Para que esto sea más efectivo, ejecute sslstrip2 en segundo plano para eliminar el cifrado de protocolo de capa de conexión segura (SSL) que se utiliza cuando cualquier cliente se comunica con servidores web modernos.


Entre bastidores

Sí, simplemente ejecutar un programa para detectar datos de paso es muy divertido y fácil. Lo entiendo. Aunque, me gustaría cubrir lo que realmente está sucediendo detrás de escena. Todos los rastreadores de paquetes y bibliotecas de rastreo de paquetes utilizan sockets sin procesar. Vamos a cubrirlos.

El uso de un socket sin procesar significa que puede determinar cada sección del paquete, ya sea encabezado o carga útil. Tenga en cuenta que el zócalo sin procesar es una palabra general. Clasifico el socket en bruto en Network Socket y Data-Link Socket (o alternativamente L3 Socket y L2 Socket). Un socket no en bruto significa que solo puede determinar la carga útil de la capa de transporte, de modo que el sistema operativo maneja todos los encabezados de paquetes, banderas, etc.

Crear un socket sin procesar usando Python y struct:

Antes de empaquetar un socket sin procesar, repasemos la estructura del encabezado IP y la estructura del encabezado TCP.

La estructura del encabezado IP:

Imagen para publicación
32 bits de ancho

La estructura del encabezado TCP:

Imagen para publicación
32 bits de ancho

Crear paquetes TCP / IP con Python

  1. Primero, creemos el socket sin procesar

2. Ahora, podemos empacar el encabezado IP:

3. Luego el encabezado TCP:

4. Podemos empaquetarlo todo junto y enviar el paquete (Nota: una suma de verificación debe generarse correctamente, pero no cubriré cómo generar uno aquí en este informe)

¡Excelente! Acabamos de crear un paquete TCP / IP y lo enviamos a un destino. Ahora que tiene una mejor comprensión de la programación de zócalo sin procesar, puede obtener más conocimiento sobre la interceptación de paquetes más oscuros (es decir, paquetes inalámbricos IEEE 802.11).


Técnica (s) de defensa de interceptación de paquetes

He demostrado lo fácil que es hacer un reconocimiento en una red local. Sin embargo, las compañías no querrían que alguien con solo una computadora espíe a sus empleados. El rastreo de paquetes ha sido un jugador importante dentro de la ciberseguridad principalmente porque no existe una buena defensa real contra él. Sin embargo, eso no significa que no pueda proteger los datos enviados a través de su red.

La práctica más popular que usan las personas es simplemente conectarse a un servicio de red privada virtual (VPN). Esto redirige todo su tráfico a través de un servidor de terceros en el que el rastreador no puede interceptar datos desde la VPN a su destino.

Nota: Esta es la razón por la que le dicen que se conecte a una VPN cuando está en una red WiFi pública.


La ética de la intercepción de redes

El hecho es que desarrollar y poseer un sniffer de paquetes es completamente legal (en la mayoría de los países). Surgen problemas al espiar el tráfico en redes donde NO está autorizado para hacerlo. Aparte de eso, estás bastante bien. Entonces, si decide usar Espionage para espiar el tráfico de otras personas, asegúrese de que un administrador le haya dado permiso explícito para hacerlo.


Conclusión

Este artículo resume lo siguiente:

  1. Una introducción al concepto de detección de paquetes.
  2. Un tutorial básico sobre cómo usar el rastreador de espionaje para rastrear paquetes y URL sin procesar.
  3. Acción detrás de escena (tomas crudas).
  4. Cómo defenderse de los intrusos maliciosos de la red.
  5. Legalidades de este ataque. Cuándo y dónde se permite llevarlo a cabo.

Comentarios