Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
rustnet — Monitoreo de red por proceso para tu terminal con inspección profunda de paquetes. Multiplataforma, en sandbox. | Kitploit
Herramientas/GitHubGitHub/domcyrus/rustnet
Sniffing y Análisis de PaquetesSeguridad de ContenedoresAnálisis ForenseRecopilación de InformaciónSeguridad en la NubeInteligencia de AmenazasAnálisis de DNSAnálisis de Registros
GitHubdomcyrus/rustnet

rustnet

Monitoreo de red por proceso para tu terminal con inspección profunda de paquetes. Multiplataforma, en sandbox.

Ver Repositorio
4.8k223hace 2h 46mRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

RustNet

Monitoreo de red por proceso para tu terminal: conexiones TCP, UDP y QUIC en vivo con inspección profunda de paquetes, con sandbox de forma predeterminada.

Built With Ratatui Build Status Crates.io GitHub Stars License GitHub release Docker Image

Inglés | 简体中文

Demo de RustNet

Visibilidad en tiempo real de cada conexión que realiza tu máquina, de quién es y qué protocolo está usando. Sin tcpdump, ni reenvío de X11, ni pipes con root.

Características

  • Atribución por proceso: Cada conexión TCP, UDP y QUIC asignada a su proceso propietario, mediante eBPF en Linux, PKTAP en macOS, API nativas en Windows y FreeBSD. Wireshark y tcpdump no pueden hacer esto; netstat / ss no pueden mostrar el estado en vivo.
  • Inspección profunda de paquetes: Identifica HTTP, HTTPS/TLS con SNI, DNS, SSH, FTP, QUIC, MQTT, BitTorrent, STUN, NTP, mDNS, LLMNR, DHCP, SNMP, SSDP y NetBIOS, sin disectores externos.
  • Exportación PCAPNG anotada: --pcapng-export escribe una captura lista para Wireshark con proceso, PID, dirección, DPI/SNI y GeoIP incrustados como comentarios por paquete. Ábrela en Wireshark y cada paquete ya indica su proceso propietario, sin posprocesamiento. También está disponible el clásico --pcap-export con un sidecar JSONL para correlación sin conexión.
  • Sandboxing de seguridad: Landlock (Linux 5.13+), Seatbelt (macOS), eliminación de privilegios de token + bloqueo de procesos hijo mediante job object (Windows). Elimina privilegios inmediatamente después de que libpcap se inicializa. Ver SECURITY.md.
  • Analíticas de red TCP: Retransmisiones en tiempo real, paquetes fuera de orden y detección de retransmisión rápida, por conexión y agregadas.
  • Ciclo de vida inteligente de conexiones: Tiempos de espera según protocolo con indicadores de obsolescencia blanco → amarillo → rojo. Pulsa t para mantener visibles las conexiones históricas (cerradas) para análisis forense.
  • Filtrado estilo Vim/fzf: port:, src:, , , , , , además de expresiones regulares mediante .

¿Por qué RustNet?

RustNet cubre el vacío entre las herramientas simples de conexiones (netstat, ss) y los analizadores de paquetes (Wireshark, tcpdump):

  • Atribución de procesos: Ve qué aplicación es dueña de cada conexión. Wireshark no puede ofrecer esto porque solo ve paquetes, no sockets.
  • Vista centrada en conexiones: Sigue estados, ancho de banda y protocolos por conexión en tiempo real.
  • Compatibilidad con SSH: La TUI funciona a través de SSH para que puedas ver rápidamente qué está sucediendo en un servidor remoto sin reenviar X11 ni capturar tráfico.

RustNet complementa las herramientas de captura de paquetes. Usa RustNet para ver qué está realizando las conexiones. Para inspección directa con Wireshark, --pcapng-export escribe comentarios de paquete en vivo y de mejor esfuerzo con contexto de PID/proceso. Para correlación posterior, usa --pcap-export junto con el sidecar JSONL y el opcional scripts/pcap_enrich.py. Consulta Exportación PCAP y Comparación con herramientas similares para más detalles.

Construido sobre ratatui, libpcap, eBPF (libbpf-rs), DashMap, crossbeam, ring, MaxMind GeoLite2 y Landlock. Consulta ARCHITECTURE.md para el desglose completo de dependencias.

Identificación de procesos mejorada con eBPF (predeterminado en Linux)

RustNet usa programas eBPF del kernel de forma predeterminada en Linux para un mejor rendimiento y una identificación de procesos con menor sobrecarga. Sin embargo, esto conlleva limitaciones importantes:

Limitaciones del nombre de proceso:

  • eBPF usa el campo comm del kernel, que está limitado a 16 caracteres
  • Muestra el nombre del comando de la tarea/hilo, no la ruta completa del ejecutable
  • Las aplicaciones con múltiples hilos a menudo muestran nombres de hilos en lugar del nombre del proceso principal

Ejemplos del mundo real:

  • Firefox: Puede aparecer como "Socket Thread", "Web Content", "Isolated Web Co" o "MainThread"
  • Chrome: Puede aparecer como "ThreadPoolForeg", "Chrome_IOThread", "BrokerProcess" o "SandboxHelper"
  • Apps Electron: A menudo se muestran como "electron", "node" o nombres de hilos internos
  • Procesos del sistema: Muestran nombres truncados como "systemd-resolve" → "systemd-resolve"

Comportamiento de respaldo:

  • Cuando eBPF no se puede cargar o carece de permisos suficientes, RustNet recurre automáticamente a la identificación de procesos estándar basada en procfs
  • El modo estándar proporciona nombres de proceso completos, pero con mayor sobrecarga de CPU
  • eBPF está habilitado por defecto; no se necesitan indicadores de compilación especiales

Para deshabilitar eBPF y usar el modo solo procfs, compila con:

root@kitploit:~
cargo build --release --no-default-features

Consulta ARCHITECTURE.md para información técnica.

Monitoreo de estadísticas de interfaz

RustNet proporciona estadísticas de interfaz de red en tiempo real en todas las plataformas compatibles:

  • Pestaña Resumen: Muestra las interfaces activas con tasas actuales, errores y descartes
  • Pestaña Interfaces (pulsa 3): Tabla detallada con métricas completas para todas las interfaces
  • Multiplataforma: Linux (sysfs), macOS/FreeBSD (getifaddrs), Windows (API GetIfTable2)
  • Filtrado inteligente: Windows excluye automáticamente los adaptadores virtuales/filtro

Consulta USAGE.md para documentación detallada sobre cómo interpretar las estadísticas de interfaz y el comportamiento específico de cada plataforma.

Métricas disponibles:

  • Bytes y paquetes totales (RX/TX)
  • Contadores de errores (recepción y transmisión)
  • Descartes de paquetes (desbordamiento de cola)
  • Colisiones (heredadas, rara vez usadas en redes modernas)

Las estadísticas se recopilan cada 2 segundos en un hilo en segundo plano con un impacto mínimo en el rendimiento.

Capturas de pantalla

Inicio rápido

Instalación

Homebrew (macOS / Linux):

root@kitploit:~
brew install rustnet

Ubuntu (25.10+):

root@kitploit:~
sudo add-apt-repository ppa:domcyrus/rustnet
sudo apt update && sudo apt install rustnet

Fedora (42+):

root@kitploit:~
sudo dnf copr enable domcyrus/rustnet
sudo dnf install rustnet

openSUSE Tumbleweed:

root@kitploit:~
sudo zypper addrepo https://download.opensuse.org/repositories/home:/domcyrus:/rustnet/openSUSE_Tumbleweed/home:domcyrus:rustnet.repo
sudo zypper refresh
sudo zypper install rustnet

Arch Linux:

root@kitploit:~
sudo pacman -S rustnet

Nix / NixOS:

root@kitploit:~
nix-shell -p rustnet
# Then inside the shell: sudo rustnet

Desde crates.io:

root@kitploit:~
cargo install rustnet-monitor

Windows (Chocolatey):

root@kitploit:~
# Run in Administrator PowerShell
# Requires Npcap (https://npcap.com) installed with "WinPcap API-compatible Mode" enabled
choco install rustnet

Otras plataformas:

  • FreeBSD: Descarga desde los lanzamientos de rustnet-bsd
  • Docker, compilaciones desde el código fuente, otras distros de Linux: Consulta INSTALL.md para instrucciones detalladas

Ejecutar RustNet

La captura de paquetes requiere privilegios elevados:

root@kitploit:~
# Quick start (all platforms)
sudo rustnet

# Linux: Grant capabilities to run without sudo (recommended)
sudo setcap 'cap_net_raw,cap_bpf,cap_perfmon+eip' $(which rustnet)
rustnet

Opciones comunes:

root@kitploit:~
rustnet -i eth0              # Specify network interface
rustnet --show-localhost     # Show localhost connections
rustnet --no-resolve-dns     # Disable reverse DNS lookups (enabled by default)
rustnet -r 500               # Set refresh interval (ms)
rustnet --theme classic      # Original full-color palette (default: muted)
rustnet --pcapng-export capture.pcapng  # Annotated PCAPNG for Wireshark

Consulta INSTALL.md para la configuración detallada de permisos y USAGE.md para las opciones completas.

Si configuras capabilities pero la TUI sigue mostrando eBPF unavailable, consulta eBPF no disponible a pesar de tener capabilities configuradas en la sección de solución de problemas.

Controles de teclado

Consulta USAGE.md para controles de teclado detallados y consejos de navegación.

Filtrado y ordenación

Ejemplos rápidos de filtrado:

root@kitploit:~
/google                        # Search for "google" anywhere
/port:443                      # Filter by port
/process:firefox               # Filter by process
/state:established             # Filter by connection state
/dport:443 sni:github.com      # Combine filters

Ordenación:

  • Pulsa s para alternar entre columnas ordenables (Proceso, Direcciones, Servicio, Aplicación, Estado, Ancho de banda)
  • Pulsa S (Shift+s) para cambiar la dirección de ordenación
  • Encuentra los consumidores de ancho de banda: pulsa s hasta que aparezca "Bandwidth Total ↓" (ordena por velocidad combinada de subida+bajada)

Consulta USAGE.md para la sintaxis completa de filtrado y la guía de ordenación.

Ejemplos avanzados de filtrado

Filtros por palabra clave:

  • port:44 - Puertos que contienen "44" (443, 8080, 4433)
  • sport:80 - Puertos de origen que contienen "80"
  • dport:443 - Puertos de destino que contienen "443"
  • src:192.168 - IPs de origen que contienen "192.168"
  • dst:github.com - Destinos que contienen "github.com"
  • process:ssh - Nombres de proceso que contienen "ssh"
  • sni:api - Nombres de host SNI que contienen "api"
  • app:openssh - Conexiones SSH que usan OpenSSH
  • state:established - Filtrar por estado del protocolo
  • proto:tcp - Filtrar por tipo de protocolo

Filtrado por estado:

  • state:syn_recv - Conexiones semiabiertas (detección de inundación SYN)
Ciclo de vida de conexiones e indicadores visuales

RustNet usa tiempos de espera inteligentes y avisos visuales antes de eliminar conexiones:

Indicadores visuales de obsolescencia:

  • Blanco: Activa (< 75% del tiempo de espera)
  • Amarillo: Obsoleta (75-90% del tiempo de espera)
  • Rojo: Crítica (> 90% del tiempo de espera)

Tiempos de espera según protocolo:

  • HTTP/HTTPS: 10 minutos (admite keep-alive)
  • SSH: 30 minutos (sesiones largas)
  • TCP activa: 10 minutos, inactiva: 5 minutos
  • QUIC conectada: 3 minutos (o el tiempo de espera de inactividad del transport-param del peer, si está presente); Initial/Handshaking: 60 segundos
  • DNS: 30 segundos
  • TCP CERRADA: 5 segundos

Ejemplo: una conexión HTTP se vuelve amarilla a los 7,5 min, roja a los 9 min y se elimina a los 10 min.

Consulta USAGE.md para todos los detalles sobre tiempos de espera.

Documentación

  • INSTALL.md - Instrucciones detalladas de instalación para todas las plataformas, configuración de permisos y solución de problemas
  • USAGE.md - Guía de uso completa que incluye opciones de línea de comandos, filtrado, ordenación y registro
  • SECURITY.md - Características de seguridad, incluido el sandboxing con Landlock y la gestión de privilegios
  • ARCHITECTURE.md - Arquitectura técnica, implementaciones por plataforma y detalles de rendimiento
  • PROFILING.md - Guía de perfilado de rendimiento con configuración de flamegraph y consejos de optimización
  • ROADMAP.md - Funciones planificadas y mejoras futuras
  • RELEASE.md - Proceso de publicación para mantenedores

Contribuciones

¡Las contribuciones son bienvenidas! Consulta CONTRIBUTING.md para conocer las pautas sobre cómo contribuir.

Consulta CONTRIBUTORS.md para ver la lista de personas que han contribuido a este proyecto.

Licencia

Este proyecto está licenciado bajo la Apache License, Versión 2.0; consulta el archivo LICENSE para más detalles.

Agradecimientos

  • Construido con ratatui para la interfaz de terminal
  • Captura de paquetes impulsada por libpcap
  • Inspirado en herramientas como tshark/wireshark/tcpdump, sniffnet, netstat, ss, iftop y bandwhich
  • Parte del código es vibe coding (OMG) / que los dioses de las LLM te acompañen

Documentación trasladada

Algunas secciones se han trasladado a archivos dedicados para una mejor organización:

  • Configuración de permisos: Ahora en INSTALL.md - Configuración de permisos
  • Instrucciones de instalación: Ahora en INSTALL.md
  • Uso detallado: Ahora en USAGE.md
  • Detalles de arquitectura: Ahora en ARCHITECTURE.md
Descargar herramienta
dst:
sni:
process:
state:
proto:
/(?i)pattern/
  • Enriquecimiento GeoIP: Consultas de país mediante MaxMind GeoLite2 local. Sin llamadas de red.
  • Atribución Kubernetes (característica opcional kubernetes): las conexiones se asignan a su pod, namespace y contenedor, y se muestran en el panel de detalles, exportaciones JSON/PCAPNG y los filtros pod:, ns: y container:. Habilitada en la imagen oficial de Docker; en un clúster, usa el plugin kubectl-rustnet para ejecutarlo como un pod de depuración efímero. Ver USAGE.md.
  • Multiplataforma: Linux, macOS, Windows, FreeBSD.
  • Resumen
    Tabla de conexiones con estadísticas en vivo y sparklines
    Detalles
    SNI, cifrado, GeoIP y DPI por conexión
    Gráfica
    Gráfica de tráfico, distribución de apps, principales procesos
    Interfaces
    Historial RX/TX por interfaz con errores y descartes
    TeclaAcción
    qSalir (pulsa dos veces para confirmar)
    Ctrl+CSalir inmediatamente
    xBorrar todas las conexiones (pulsa dos veces para confirmar)
    Tab o ]Siguiente pestaña
    Shift+Tab o [Pestaña anterior
    1–5Saltar a Resumen / Detalles / Interfaces / Gráfica / Ayuda
    ↑/k ↓/jNavegar arriba/abajo
    g GIr a la primera/última conexión
    EnterVer detalles de la conexión
    EscVolver o limpiar el filtro
    cCopiar dirección remota
    pAlternar nombres de servicio/puertos
    dAlternar nombres de host/IPs
    s SAlternar columnas de ordenación / cambiar dirección
    aAlternar agrupación por proceso
    EspacioExpandir/contraer grupo de proceso
    ←/→ o h/lContraer/expandir grupo
    PageUp/PageDown o Ctrl+B/FNavegación por páginas
    tAlternar conexiones históricas (cerradas)
    iAlternar la barra lateral de información del sistema
    rRestablecer vista (agrupación, ordenación, filtro)
    /Entrar en modo filtro
    hAlternar ayuda
  • state:established - Solo conexiones establecidas
  • state:quic_connected - Conexiones QUIC activas
  • state:dns_query - Conexiones de consulta DNS
  • Ejemplos combinados:

    • sport:80 process:nginx - Conexiones de Nginx desde el puerto 80
    • dport:443 sni:google.com - HTTPS hacia Google
    • process:firefox state:quic_connected - Conexiones QUIC de Firefox
    • dport:22 app:openssh state:established - Conexiones OpenSSH establecidas