Este informe cubrirá lo siguiente:
- Prólogo: Realizar / ejecutar este tipo de ataque.
- Herramientas utilizadas (Espionaje y sslstrip2).
- Comprender lo que sucede detrás de escena (sockets sin procesar, marcos de ethernet, protocolos, etc.)
- Cómo defenderse de las intercepciones de red.
- 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

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
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
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:

La estructura del encabezado TCP:
Crear paquetes TCP / IP con Python
- Primero, creemos el socket sin procesar
pruebe:
s = socket.socket (socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW)
excepto socket.error, msg:
print 'No se pudo crear el socket. Código de error: '+ str (msg [0]) +' Mensaje '+ msg [1]
sys.exit ()2. Ahora, podemos empacar el encabezado IP:
source_ip = '192.168.1.101'
dest_ip = '192.168.1.1'
# campos de encabezado ip
ip_ihl = 5
ip_ver = 4
ip_tos = 0
ip_tot_len = 0 # kernel llenará la longitud total correcta
ip_id = 54321 # Id de este paquete
ip_frag_off = 0
ip_ttl = 255
ip_proto = socket.IPPROTO_TCP
ip_check = 0 # kernel llenará la suma de comprobación correcta
ip_saddr = socket.inet_aton (source_ip)
ip_daddr = socket.inet_aton (dest_ip)
ip_ihl_ver = (versión & lt; & lt; 4) + ihl
# the! en la cadena de formato de paquete significa orden de red
ip_header = pack ('! BBHHHBBH4s4s', ip_ihl_ver, ip_tos, ip_tot_len, ip_id, ip_frag_off, ip_ttl, ip_proto, ip_check, ip_saddr, ip_daddr)3. Luego el encabezado TCP:
# campos de encabezado tcp
tcp_source = 1234 # puerto de origen
tcp_dest = 80 # puerto de destino
tcp_seq = 454
tcp_ack_seq = 0
tcp_doff = 5 # campo de 4 bits, tamaño del encabezado tcp, 5 * 4 = 20 bytes
#tcp flags
tcp_fin = 0
tcp_syn = 1
tcp_rst = 0
tcp_psh = 0
tcp_ack = 0
tcp_urg = 0
tcp_window = socket.htons (5840) # tamaño máximo permitido de la ventana
tcp_check = 0
tcp_urg_ptr = 0
tcp_offset_res = (tcp_doff & lt; & lt;
t = tc = 4) ; & lt; 1) + (tcp_rst & lt; & lt; 2) + (tcp_psh & lt; & lt; 3) + (tcp_ack & lt; & lt; 4) + (tcp_urg & lt; & lt; 5)
# the! en la cadena de formato del paquete significa orden de red
tcp_header = pack ('! HHLLBBHHH', tcp_source, tcp_dest, tcp_seq, tcp_ack_seq, tcp_offset_res, tcp_flags, tcp_window, tcp_check, tcp_urg_ptr)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)
# paquete completo final: los paquetes de
sincronización no tienen ningún paquete de datos = ip_header + tcp_header + user_data
# envía el paquete finalmente: el puerto especificado no tiene ningún efecto en el
envío (paquete, (dest_ip, 0))¡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:
- Una introducción al concepto de detección de paquetes.
- Un tutorial básico sobre cómo usar el rastreador de espionaje para rastrear paquetes y URL sin procesar.
- Acción detrás de escena (tomas crudas).
- Cómo defenderse de los intrusos maliciosos de la red.
- Legalidades de este ataque. Cuándo y dónde se permite llevarlo a cabo.


Comentarios
Publicar un comentario
Todos sus comentarios seran bienvenidos, no se admiten insultos todo con el debido respeto que se merece cada persona, o de lo contrario seran eliminado cada comentario inrespetuoso hacia los demas. y autores del blog tambien puedes seguirnos en:
Facebook: https://www.facebook.com/groups/HackingTeamCyber/
Grupo de Telegram: https://t.me/TheHackForceOfficial
Canal de Youtube: https://www.youtube.com/channel/UCXy8Lg28OuGuI5Z-2EWJaNA?view_as=subscriber
Canal Vimeo: https://vimeo.com/403136547?activityReferer=1
Red Social Twitter: https://twitter.com/TheHackForce