IP Spoofing con Scapy y Python - BoomerNiX

lunes, 23 de julio de 2018

IP Spoofing con Scapy y Python

Esta semana seré breve y abordare un tema muy sencillo, en el post de hoy vamos a ver cómo falsear o spoofear una dirección IP, para ello crearemos un breve código en Python, haciendo uso de la librería scapy.

Para el post contaremos con 3 máquinas, la que enviará el paquete con la dirección origen spoofeada (atacante), la máquina objetivo y una que servirá de intermediaria (la que contesta), las direcciones son:
  • IP a spoofear: 192.16.0.199 
  • IP intermediaria: 192.168.0.195
  • IP atacante: 192.168.0.194
La IP a spoofear no es una IP local, fíjate bien en la dirección, a la fecha de escribir el post respondía.

Nosotros mandaremos el paquete a la "IP intermediaria", y está contestará a la "IP a spoofear", el código es el siguiente (Python 3.X):



El código crea un paquete usando scapy, ICMP se queda por defecto, ya que así nos vale, es de tipo ICMP echo request.

Si antes de lanzar el código, ponemos un sniffer, en este caso Wireshark, podremos ver los paquetes, aquí para verlo más claro se filtra por tipo ICMP, a continuación se puede ver la captura:


Se puede observar cómo el paquete tiene como origen la IP del objetivo, en realidad el paquete se manda desde la IP  local 192.168.0.194.  Aquí queda demostrado lo fácil que es falsificar una dirección.

Podemos hacer que estos paquetes se vayan mandando constantemente, para ello, podremos generar un bucle infinito:

send(packet, loop=1, inter=0.1)

En la línea anterior indica que es un bucle el loop=1, y el inter es el tiempo que pasa entre el envío de un paquete y otro (en segundos).

Esto puede servirnos para realizar un ataque de denegación de servicio (DoS), por ejemplo un ataque de amplificación, donde podemos hacer envíos con la dirección IP origen de nuestra víctima y los servicios contestar con paquetes mucho más grandes, un ejemplo de ello: el ataque Smurf.

3 comentarios:

  1. Josué...error en línea 4 es "src_" en lugar de "srcp_"

    ResponderEliminar
    Respuestas
    1. Cierto Héctor, meti una p de más. Gracias por el aviso!

      Eliminar
  2. Interesante la entrada, me gusto tu blog - me seguiré pasando

    ResponderEliminar