Anónima, Geek… bruja, guerrera, libre, liberada. Esta es la historia ficticia de mi particular guerra real.
La soberanía digital no comienza en el cifrado de archivos, sino en el control físico de la infraestructura. Si no conoces la identidad de cada dispositivo que pulsa en tu red local, no eres el administrador de tu espacio; eres un huésped en él. En este laboratorio, desarrollaremos una sonda de red utilizando Python y la librería Scapy para realizar un escaneo de Capa 2 (Enlace de datos).
El Script: Sonda de Descubrimiento ARP
A diferencia de un simple ping (ICMP) que puede ser bloqueado por firewalls locales, utilizaremos peticiones ARP (Address Resolution Protocol). Esto nos permite solicitar la dirección física (MAC) de cada IP en el rango de la red, mapeando quién está realmente presente en el cobre o en el aire.
import scapy.all as scapy
def scan_network(ip_range):
«»»
Función para auditar dispositivos en la red local.
Utiliza el protocolo ARP para identificar nodos activos.
«»»# 1. Creamos una petición ARP para preguntar: "¿Quién tiene esta IP?" # pdst es el rango de IPs de destino (ej. "192.168.1.1/24") arp_request = scapy.ARP(pdst=ip_range) # 2. Creamos un frame Ethernet con destino Broadcast (ff:ff:ff:ff:ff:ff) # Esto asegura que la petición llegue a todos los dispositivos del segmento. broadcast_frame = scapy.Ether(dst="ff:ff:ff:ff:ff:ff") # 3. Combinamos ambos paquetes en uno solo utilizando el operador / arp_request_broadcast = broadcast_frame / arp_request # 4. Enviamos el paquete y esperamos respuesta. # timeout: tiempo de espera; verbose: desactivamos mensajes secundarios. # answered_list contendrá los pares (petición, respuesta). answered_list = scapy.srp(arp_request_broadcast, timeout=2, verbose=False)[0] # 5. Estructura de almacenamiento de resultados clients_list = [] for element in answered_list: client_dict = {"ip": element[1].psrc, "mac": element[1].hwsrc} clients_list.append(client_dict) return clients_list
def display_results(results):
«»»Muestra los nodos detectados en la terminal.»»»
print(«——————————————«)
print(«IP\t\t\tMAC Address»)
print(«——————————————«)
for client in results:
print(f»{client[‘ip’]}\t\t{client[‘mac’]}»)
if name == «main«:
# Define aquí el rango de tu red local
target_range = «192.168.1.1/24»
scan_results = scan_network(target_range)
display_results(scan_results)
En el ecosistema del Proyecto AGENA, el hardware es la primera línea de defensa y, simultáneamente, el agujero de seguridad más crítico. Un router mal configurado (con protocolos como WPS activos, servicios UPnP habilitados o firmwares privativos con backdoors) actúa como un faro de telemetría hacia el exterior.
Si el nodo central —el router— no está bajo el control total del usuario, la integridad de cada paquete generado en el laboratorio es cuestionable. La auditoría manual de la LAN mediante scripts propios es el primer paso para recuperar la soberanía sobre la arquitectura del flujo de datos. Sin un mapa de la red, no hay defensa posible.
Proceder con sigilo.