Encontrar todos los dispositivos Wifi usando Scapy Python

Scapy es una biblioteca compatible con Python2 y Python3. Se utiliza para interactuar con los paquetes en la red. Tiene varias funcionalidades a través de las cuales podemos falsificar y manipular fácilmente el paquete. A través del módulo scapy, podemos crear diferentes herramientas de red como ARP Spoofer, Network Scanner, dumpers de paquetes, etc. Este módulo se puede usar para crear herramientas más avanzadas relacionadas con la seguridad de la red y la piratería ética.

En este artículo, veremos cómo obtener la dirección MAC de varias redes inalámbricas conectadas a su alrededor y el tipo de paquetes que envían. Vamos a explorar Adress2 en el encabezado WLAN, que es la dirección del transmisor. Luego crearemos un conjunto de estas direcciones e imprimiremos todas las direcciones únicas que obtuvimos.

Usamos la capa Dot 11 del dispositivo inalámbrico para obtener su dirección y carga útil. Dot11 es el nombre técnico de las especificaciones globales para redes de comunicaciones inalámbricas.

Para que scapy funcione correctamente, se deben cumplir las siguientes condiciones:

Para ventanas: 

  • Instala WinPcap .
  • Vaya a Inicio -> Símbolo del sistema -> Abrir en Administración. Y use el comando «ipconfig/all» y copie la descripción del adaptador inalámbrico que usaremos en el futuro. Se verá así: «Adaptador inalámbrico Qualcomm QCA9377 802.11ac».
  • Ahora, al IDE que está utilizando, abra la terminal e instale scapy usando «pip install scapy».

Para Linux:

Simplemente instale scpay usando «pip install scapy» usando la terminal y úselo. No se requiere ningún proceso adicional. Para obtener las direcciones y los paquetes deseados, se utiliza el método sniff() del módulo scapy.

Sintaxis:  sniff( iface , count, prn, timeout = Ninguno )

Parámetro:

  • iface es la interfaz en la que queremos olfatear. (Predeterminado = Todas las interfaces disponibles).
  • count es el número total de paquetes a rastrear. (0 significa infinito)
  • prn es el método de devolución de llamada que se aplicará a cada paquete rastreado.
  • timeout es el tiempo después del cual desea que la función sniff deje de funcionar en s. (El valor predeterminado es ninguno)

Acercarse

  • Módulo de importación
  • Encuentra el nombre de Ifa
  • Declare IFACE_NAME como la descripción de la tarjeta de red que se alimentará a la función sniff como interfaz
  • Llame a la función sniff() con los parámetros requeridos

Ejemplo 1: Impresión de todas las direcciones detectadas

Python3

import sys
from scapy.all import *
  
IFACE_NAME = "Qualcomm QCA9377 802.11ac Wireless Adapter"
devices = set()
  
  
def PacketHandler(pkt):
    if pkt.haslayer(Dot11):
        dot11_layer = pkt.getlayer(Dot11)
          
        if dot11_layer.addr2 and (dot11_layer.addr2 not in devices):
            devices.add(dot11_layer.addr2)
            print(dot11_layer.addr2)
  
  
sniff(iface=IFACE_NAME, count=1, prn=PacketHandler)

Producción:

Ejemplo 2: Impresión de todos los tipos y direcciones de paquetes detectados

Python3

import sys
from scapy.all import *
  
IFACE_NAME = "Qualcomm QCA9377 802.11ac Wireless Adapter"
devices = set()
  
  
def PacketHandler(pkt):
    if pkt.haslayer(Dot11):
        dot11_layer = pkt.getlayer(Dot11)
          
        if dot11_layer.addr2 and (dot11_layer.addr2 not in devices):
            devices.add(dot11_layer.addr2)
            print(len(devices), dot11_layer.addr2, dot11_layer.payload.name)
  
  
sniff(iface=IFACE_NAME, count=100, prn=PacketHandler)

Producción:

Publicación traducida automáticamente

Artículo escrito por samrat2825 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *