Curso de Redes de Internet - Profesional

Toma las primeras clases gratis

🚀 Audita tu red en 20 minutos con Python — sin instalar Wireshark

El curso te enseña a configurar redes. Este tutorial te enseña a vigilarlas en tiempo real desde tu terminal.

⚡ ¿Qué vas a lograr?

  • Escanear toda tu subred y detectar dispositivos activos con sus IPs y MACs
  • Identificar puertos abiertos sospechosos sin herramientas de pago
  • Generar un reporte legible que puedes compartir con tu equipo en segundos

🛠️ Lo que necesitas

  • Python 3.8+
  • Librería scapy: pip install scapy
  • Acceso a tu red local (Wi-Fi o LAN)
  • Terminal con permisos de administrador (sudo en Linux/Mac)

🔥 Paso a paso

1. Descubre qué hay en tu red (ARP Scan)

python

from scapy.all import ARP, Ether, srp

def escanear_red(ip_rango):
    arp = ARP(pdst=ip_rango)
    ether = Ether(dst="ff:ff:ff:ff:ff:ff")
    paquete = ether / arp

    resultado, _ = srp(paquete, timeout=2, verbose=False)

    dispositivos = []
    for _, respuesta in resultado:
        dispositivos.append({
            "ip": respuesta.psrc,
            "mac": respuesta.hwsrc
        })
    return dispositivos

# Cambia por tu rango real
dispositivos = escanear_red("192.168.1.0/24")
for d in dispositivos:
    print(f"IP: {d['ip']:<18} MAC: {d['mac']}")

2. Detecta puertos abiertos en un host específico

python

import socket

def escanear_puertos(ip, puertos=[22, 80, 443, 8080, 3306, 5432]):
    print(f"\n🔍 Escaneando {ip}...")
    for puerto in puertos:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(0.5)
        resultado = sock.connect_ex((ip, puerto))
        if resultado == 0:
            print(f"  ✅ Puerto {puerto} ABIERTO")
        sock.close()

# Úsalo con cualquier IP del scan anterior
escanear_puertos("192.168.1.1")

3. Combínalos y exporta el reporte

python

import json, datetime

reporte = {
    "timestamp": str(datetime.datetime.now()),
    "dispositivos": dispositivos
}

with open("reporte_red.json", "w") as f:
    json.dump(reporte, f, indent=2)

print("\n📄 Reporte guardado en reporte_red.json")

💡 Pro tip

Cruza las MACs contra una base de fabricantes. Los primeros 6 caracteres de una MAC identifican el fabricante del dispositivo (OUI). Si ves una MAC que empieza por b8:27:eb o dc:a6:32 sabes que es una Raspberry Pi conectada a tu red — algo que un simple ping nunca te diría.

python

# Consulta rápida al API público de maclookup
import requests

def fabricante_mac(mac):
    url = f"https://api.maclookup.app/v2/macs/{mac}"
    r = requests.get(url, timeout=3)
    return r.json().get("company", "Desconocido")

print(fabricante_mac("b8:27:eb:xx:xx:xx"))

🎯 Reto para la comunidad

Corre el script en tu red ahora mismo, y responde en los comentarios:

¿Cuántos dispositivos encontraste que NO esperabas?

Comparte el número (sin datos sensibles) y el fabricante más raro que detectaste. El que encuentre el dispositivo más inesperado gana props de la comunidad. 🏆

Curso de Redes de Internet - Profesional

Toma las primeras clases gratis

0 Comentarios

para escribir tu comentario

Artículos relacionados