Escaneo de red usando el módulo 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.

Instalación del módulo scapy:
como el módulo scapy no está incluido en la biblioteca de Python3 de forma predeterminada, debemos agregarlo a nuestra biblioteca de Python usando pip. Ejecute este comando en su terminal Linux para obtener el módulo scapy para Python3.

pip3 install scapy-python3

¿Qué es el escaneo de red?
El escaneo de red se refiere al escaneo de toda la red a la que estamos conectados y trata de averiguar cuáles son todos los clientes conectados a nuestra red. Podemos identificar a todos y cada uno de los clientes utilizando su dirección IP y MAC. Podemos usar el ping ARP para descubrir los sistemas activos en nuestra red.

Algunas funciones importantes para crear un escáner de red:

ARP(): esta función definida en el módulo scapy que nos permite crear paquetes ARP (solicitud o respuesta). De forma predeterminada, si lo llamamos, creará un paquete de solicitud ARP para nosotros.

import scapy.all as scapy
  
request = scapy.ARP()

summary(): Este método nos proporciona el estado del paquete que hemos creado. No proporciona información detallada sobre el paquete, solo nos da una idea básica como cuál es el tipo de paquete, cuál es el destino del paquete, etc.
Por ejemplo, si queremos crear un paquete ARP usando ARP()el método que está presente en el módulo scapy y desea ver el resumen del paquete, entonces podemos hacerlo creando el objeto de la clase ARP.

import scapy.all as scapy
  
request = scapy.ARP()
print(request.summary())

Ahora hemos creado un paquete de solicitud de ARP. Aquí la salida del programa será así:
Summary function Image

método show(): Este método es muy similar al summary()método. Da información más detallada sobre el paquete. El uso de esta función también es muy similar a un summary()método.

import scapy.all as scapy
  
request = scapy.ARP()
print(request.show())

Función ls(): Este método está presente en la clase scapy. Al usar este método, podemos ver cuáles son los campos que podemos configurar para un paquete específico.
En nuestro ejemplo, crearemos un paquete ARP y, con la ayuda de la función ls(), veremos cuáles son los campos disponibles para este paquete.

import scapy.all as scapy
  
request = scapy.ARP()
print(scapy.ls(scapy.ARP()))

Pasos para crear Network Scanner –

1. Cree un paquete ARP utilizando el método ARP().
2. Establezca el rango de red usando la variable.
3. Cree un paquete Ethernet utilizando el método Ether().
4. Establezca el destino para transmitir usando la variable hwdst.
5. Combine el paquete de solicitud ARP y la trama Ethernet usando ‘/’.
6. Envíe esto a su red y capture la respuesta desde diferentes dispositivos.
7. Imprima la dirección IP y MAC de los paquetes de respuesta.

A continuación se muestra la implementación de Python:

import scapy.all as scapy
  
request = scapy.ARP()
  
request.pdst = 'x'
broadcast = scapy.Ether()
  
broadcast.dst = 'ff:ff:ff:ff:ff:ff'
  
request_broadcast = broadcast / request
clients = scapy.srp(request_broadcast, timeout = 1)[0]
for element in clients:
    print(element[1].psrc + "      " + element[1].hwsrc)

Aquí x = Rango de red. Por ejemplo x = 192.168.1.1/24, 172.16.5.1/16, etc.

Producción:

Publicación traducida automáticamente

Artículo escrito por mayank1995prajapati 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 *