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.8k22317hace 11h 35mRevisado por Kitploit
Sitio web

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

RustNet

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

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

English | 简体中文 | 日本語

RustNet demo

Visibilidad en tiempo real de cada conexión que realiza tu máquina, quién la posee y qué protocolo utiliza. Sin tcpdump, reenvío de X11 ni tuberías con root.

Características

  • Atribución por proceso: Cada conexión TCP, UDP y QUIC se asigna a su proceso propietario, mediante eBPF en Linux, PKTAP en macOS, ETW con respaldo automático de IP Helper en Windows y APIs nativas en FreeBSD. Los detalles incluyen PID, ejecutable, nombres de usuario/grupo, confianza de coincidencia y una cadena de procesos padre limitada en cada plataforma. 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 nombra su proceso propietario, sin post-procesamiento. También está disponible la exportación clásica --pcap-export con un archivo lateral JSONL para correlación fuera de línea.
  • Aislamiento de seguridad: Landlock (Linux 5.13+), Seatbelt (macOS), reducción de privilegios de token + bloqueo de procesos hijos con job-object (Windows). Reduce privilegios inmediatamente después de que libpcap se inicializa. Consulta SECURITY.md.
  • Analítica de red: Tiempos de ida y vuelta en tiempo real para TCP, handshakes QUIC, respuestas DNS y eco ICMP, además de detección de retransmisiones TCP, paquetes fuera de orden y retransmisiones rápidas.
  • Ciclo de vida inteligente de conexiones: Tiempos de espera conscientes del protocolo con indicadores de obsolescencia blanco → amarillo → rojo. Alterna con t para mantener visibles las conexiones históricas (cerradas) para análisis forense.
  • Filtrado estilo Vim/fzf: port:, src:, dst:, sni:, process:, state:, proto:, además de regex mediante /(?i)patrón/.
  • Enriquecimiento GeoIP: Consultas de país mediante MaxMind GeoLite2 local. Sin llamadas de red.
  • Identificación de dispositivos LAN: Dirección MAC y fabricante (de la base de datos IEEE OUI integrada) para pares en el enlace y la puerta de enlace, aprendido pasivamente del tráfico ARP y mostrado en el panel de detalles.
  • Atribución Kubernetes (característica opcional kubernetes): conexiones asignadas a su pod, namespace y contenedor, mostradas en el panel de detalles, exportaciones JSON/PCAPNG y los filtros pod:, ns:, 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. Consulta USAGE.md.
  • Multiplataforma: Linux, macOS, Windows, FreeBSD.

¿Por qué RustNet?

RustNet llena el vacío entre las herramientas simples de conexión (netstat, ss) y los analizadores de paquetes (Wireshark, tcpdump):

  • Atribución de procesos: Ve qué aplicación posee cada conexión. Wireshark no puede proporcionar esto porque solo ve paquetes, no sockets.
  • Vista centrada en conexiones: Rastrea estados, ancho de banda y protocolos por conexión en tiempo real
  • Amigable 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á haciendo conexiones. Para inspección directa con Wireshark, --pcapng-export escribe comentarios de paquetes en vivo con contexto de PID/proceso. Para correlación en tiempo de limpieza, usa --pcap-export junto con el archivo lateral 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 por defecto en Linux para un rendimiento mejorado e identificación de procesos con menor sobrecarga.

Nombres de procesos:

  • eBPF registra el TGID del líder del grupo de procesos y el nombre comm (un campo del kernel limitado a 16 caracteres) en lugar del nombre del hilo en ejecución, por lo que las aplicaciones multihilo muestran el nombre del proceso principal en lugar de nombres de hilos como "Socket Thread"
  • RustNet luego vuelve a resolver el nombre actual mediante /proc/<tgid>/comm, recupera nombres truncados por comm desde el nombre del archivo ejecutable (por ejemplo, "chromium-browse" se convierte en "chromium-browser") y resuelve la ruta completa del ejecutable mostrada en la vista de Detalles
  • Los procesos de corta duración que terminan antes de que se ejecute este enriquecimiento conservan el nombre de 16 caracteres registrado por eBPF

Comportamiento de respaldo:

  • Cuando eBPF falla al cargar o carece de permisos suficientes, RustNet automáticamente recurre a la identificación de procesos estándar basada en procfs
  • El modo estándar resuelve nombres de la misma manera mediante escaneo de procfs, pero con mayor sobrecarga de CPU
  • eBPF está habilitado por defecto; no se necesitan banderas de compilación especiales

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

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

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

Monitoreo de actividad de procesos e interfaces

RustNet combina la contabilidad de tráfico a nivel de proceso con estadísticas de interfaz de red en tiempo real:

  • Pestaña Resumen: Muestra interfaces activas con tasas actuales, errores y descartes
  • Pestaña Actividad (presiona 3): Clasifica procesos por Egreso (TX) o Ingreso (RX), incluyendo tráfico retenido y continuo, tasas, participaciones, conexiones y destinos
  • Flujo de trabajo de seguridad: Ordena por Egreso, identifica un cargador inesperado y luego inspecciona su par remoto principal y el tráfico retenido incluso después de que la conexión se cierre
  • Detalles de interfaz (presiona i en Actividad): Muestra las métricas integrales originales para cada interfaz
  • Multiplataforma: Linux (sysfs), macOS/FreeBSD (getifaddrs), Windows (API GetIfTable2)
  • Filtrado inteligente: Windows excluye automáticamente adaptadores virtuales/filtro

Consulta USAGE.md para documentación detallada sobre la interpretación de 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 (desbordamientos de cola)
  • Colisiones (heredado, raramente usado en redes modernas)

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

Capturas de pantalla

Resumen
Tabla de conexiones con estadísticas en vivo y sparklines
Detalles
SNI por conexión, cifrado, GeoIP, DPI
Gráfico
Gráfico de tráfico, distribución de aplicaciones, procesos principales
Actividad
Egreso/ingreso de procesos, cobertura de 60 segundos, atribución y pares remotos

Inicio rápido

Instalación

Homebrew (macOS / Linux):

root@kitploit:~
brew install rustnet

Ubuntu (22.04 LTS+) / Linux Mint 21+ / Pop!_OS 22.04+:

root@kitploit:~
sudo add-apt-repository ppa:domcyrus/rustnet
# en Pop!_OS: sudo apt-manage add 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
# Luego dentro del shell: sudo rustnet

Desde crates.io:

root@kitploit:~
cargo install rustnet-monitor

Windows (Chocolatey):

root@kitploit:~
# Ejecutar en PowerShell como Administrador
# Requiere Npcap (https://npcap.com) instalado con "Modo compatible con API WinPcap" habilitado
choco install rustnet

Otras plataformas:

  • FreeBSD: Descarga desde lanzamientos de rustnet-bsd
  • Docker, compilaciones desde fuente, otras distribuciones de Linux: Consulta INSTALL.md para instrucciones detalladas

Ejecutar RustNet

La captura de paquetes requiere privilegios elevados:

root@kitploit:~
# Inicio rápido (todas las plataformas)
sudo rustnet

# Linux: Otorga capacidades para ejecutar sin sudo (recomendado)
sudo setcap 'cap_net_raw,cap_bpf,cap_perfmon+eip' $(which rustnet)
rustnet

Opciones comunes:

root@kitploit:~
rustnet -i eth0              # Especificar interfaz de red
rustnet --show-localhost     # Mostrar conexiones de localhost
rustnet --no-resolve-dns     # Deshabilitar resoluciones DNS inversas (habilitadas por defecto)
rustnet -r 500               # Establecer intervalo de actualización (ms)
rustnet --theme tokyo-night  # Tema: muted (predeterminado), vivid, catppuccin-mocha, tokyo-night, gruvbox, nord
rustnet --pcapng-export capture.pcapng  # PCAPNG anotado para Wireshark

El tema y las anulaciones por color también se pueden configurar en ~/.config/rustnet/config.toml; --theme tiene prioridad. Consulta USAGE.md para el esquema.

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

Si configuras las capacidades pero la TUI aún muestra eBPF unavailable, consulta eBPF no disponible a pesar de que las capacidades estén configuradas en la sección de solución de problemas.

Controles de teclado

TeclaAcción
qSalir (presiona dos veces para confirmar)
Ctrl+CSalir inmediatamente
xBorrar todas las conexiones (presiona dos veces para confirmar)
Tab o ]Siguiente pestaña
Shift+Tab o [Pestaña anterior
1–5Ir a Resumen / Detalles / Actividad / Gráfico / Ayuda
↑/k ↓/jNavegar arriba/abajo
g GIr a la primera/última conexión
EnterVer detalles de la conexión
EscVolver atrás o borrar filtro
cCopiar dirección remota
pAlternar nombres de servicios/puertos
dAlternar nombres de host/IPs en Resumen o Egreso/Ingreso en Actividad
s SCiclar columnas de ordenación / alternar dirección
aAlternar agrupación por proceso
EspacioExpandir/contraer grupo de procesos
←/→ o h/lContraer/expandir grupo
PageUp/PageDown o Ctrl+B/FNavegación de páginas
tAlternar conexiones históricas (cerradas)
iAlternar información del sistema en Resumen o detalles de interfaz en Actividad
rRestablecer vista (agrupación, ordenación, filtro)
/

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                        # Buscar "google" en cualquier lugar
/port:443                      # Filtrar por puerto
/process:firefox               # Filtrar por proceso
/state:established             # Filtrar por estado de conexión
/dport:443 sni:github.com      # Combinar filtros

Ordenación:

  • Presiona s para ciclar entre columnas ordenables (Proceso, Direcciones, Servicio, Aplicación, Estado, Ancho de banda)
  • Presiona S (Shift+s) para alternar la dirección de ordenación
  • Encuentra consumidores de ancho de banda: Presiona s hasta que aparezca "Ancho de banda 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 de protocolo
  • proto:tcp - Filtrar por tipo de protocolo

Filtrado por estado:

  • state:syn_recv - Conexiones semiabiertas (detección de inundación SYN)
  • 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 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
Ciclo de vida de conexiones e indicadores visuales

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

Indicadores visuales de obsolescencia:

  • Blanco: Activo (< 75% del tiempo de espera)
  • Amarillo: Obsoleto (75-90% del tiempo de espera)
  • Rojo: Crítico (> 90% del tiempo de espera)

Tiempos de espera conscientes del protocolo:

  • HTTP/HTTPS: 10 minutos (soporta keep-alive)
  • SSH: 30 minutos (sesiones largas)
  • TCP genérico establecido: 5 minutos
  • QUIC conectado: 3 minutos (o el tiempo de espera de inactividad del parámetro de transporte del par, cuando esté presente); Initial/Handshaking: 60 segundos
  • DNS: 30 segundos
  • TCP CLOSED: Gracia de archivo de 15 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 detalles completos de los 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 que incluyen aislamiento Landlock y gestión de privilegios
  • ARCHITECTURE.md - Arquitectura técnica, implementaciones por plataforma y detalles de rendimiento
  • CONTRIBUTING.md - Flujo de trabajo de contribución, requisitos de calidad y pautas del proyecto
  • PROFILING.md - Guía de perfilado de rendimiento con configuración de flamegraph y consejos de optimización
  • ROADMAP.md - Características planificadas y mejoras futuras
  • RELEASE.md - Proceso de lanzamiento para mantenedores

Contribuciones

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

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

Licencia

Este proyecto está licenciado bajo la Licencia Apache, 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 por herramientas como tshark/wireshark/tcpdump, sniffnet, netstat, ss, iftop y bandwhich
  • Parte del código está generado por vibración (OMG) / que los dioses de la LLM estén contigo

Documentación trasladada

Algunas secciones se han movido 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
Entrar en modo filtro
hAlternar ayuda