Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
rustnet — Monitoraggio di rete per processo per il tuo terminale con ispezione profonda dei pacchetti. Multipiattaforma, in sandbox. | Kitploit
Strumenti/GitHubGitHub/domcyrus/rustnet
Sniffing e Analisi dei PacchettiSicurezza dei ContenitoriInformatica ForenseRaccolta InformazioniSicurezza CloudThreat IntelligenceAnalisi DNSAnalisi dei Log
GitHubdomcyrus/rustnet

rustnet

Monitoraggio di rete per processo per il tuo terminale con ispezione profonda dei pacchetti. Multipiattaforma, in sandbox.

Vedi Repository
4.8k22317h 41m faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

RustNet

Monitoraggio di rete per processo per il tuo terminale: connessioni TCP, UDP e QUIC in tempo reale con ispezione approfondita dei pacchetti, in sandbox per impostazione predefinita.

Costruito con Ratatui Stato della build Crates.io Stelle GitHub Licenza Release GitHub Immagine Docker

English | 简体中文 | 日本語

Demo di RustNet

Visibilità in tempo reale su ogni connessione creata dalla tua macchina, su chi la possiede e su quale protocollo sta parlando. Niente tcpdump, forwarding X11 o pipe da root.

Funzionalità

  • Attribuzione per processo: Ogni connessione TCP, UDP e QUIC è associata al processo proprietario, tramite eBPF su Linux, PKTAP su macOS, ETW con fallback automatico a IP Helper su Windows e API native su FreeBSD. I dettagli includono PID, eseguibile, nomi utente/gruppo, livello di confidenza della corrispondenza e una catena limitata dei processi genitori su ogni piattaforma. Wireshark e tcpdump non possono farlo; netstat / ss non mostrano lo stato in tempo reale.
  • Ispezione approfondita dei pacchetti: Identifica HTTP, HTTPS/TLS con SNI, DNS, SSH, FTP, QUIC, MQTT, BitTorrent, STUN, NTP, mDNS, LLMNR, DHCP, SNMP, SSDP e NetBIOS, senza dissector esterni.
  • Esportazione PCAPNG annotata: --pcapng-export scrive una cattura pronta per Wireshark con processo, PID, direzione, DPI/SNI e GeoIP incorporati come commenti per ogni pacchetto. Aprila in Wireshark e ogni pacchetto indicherà già il processo proprietario, senza post-elaborazione. È disponibile anche la classica --pcap-export con un sidecar JSONL per la correlazione offline.
  • Sandboxing di sicurezza: Landlock (Linux 5.13+), Seatbelt (macOS), riduzione dei privilegi tramite token + blocco dei processi figlio tramite job object (Windows). Riduce i privilegi immediatamente dopo l'inizializzazione di libpcap. Vedi SECURITY.md.
  • Analisi di rete: Tempi di round-trip in tempo reale per TCP, handshake QUIC, risposte DNS ed echo ICMP, oltre al rilevamento di ritrasmissioni TCP, pacchetti fuori ordine e fast retransmit.
  • Ciclo di vita intelligente delle connessioni: Timeout consapevoli del protocollo con indicatori di inattività bianco → giallo → rosso. Premi t per mantenere visibili le connessioni storiche (chiuse) per analisi forensi.
  • Filtri in stile Vim/fzf: port:, , , , , , , più regex tramite .

Perché RustNet?

RustNet colma il divario tra i semplici strumenti di connessione (netstat, ss) e gli analizzatori di pacchetti (Wireshark, tcpdump):

  • Attribuzione dei processi: Scopri quale applicazione possiede ogni connessione. Wireshark non può fornire questa informazione perché vede solo pacchetti, non socket.
  • Vista incentrata sulle connessioni: Monitora stati, larghezza di banda e protocolli per ogni connessione in tempo reale
  • Compatibile con SSH: La TUI funziona via SSH, così puoi vedere rapidamente cosa sta succedendo su un server remoto senza inoltrare X11 o catturare traffico

RustNet integra gli strumenti di cattura dei pacchetti. Usa RustNet per vedere cosa sta creando le connessioni. Per un'ispezione diretta con Wireshark, --pcapng-export scrive commenti live sui pacchetti con contesto PID/processo, in modalità best-effort. Per la correlazione a posteriori, usa --pcap-export insieme al sidecar JSONL e all'opzionale scripts/pcap_enrich.py. Vedi Esportazione PCAP e Confronto con strumenti simili per i dettagli.

Basato su ratatui, libpcap, eBPF (libbpf-rs), DashMap, crossbeam, ring, MaxMind GeoLite2 e Landlock. Vedi ARCHITECTURE.md per la ripartizione completa delle dipendenze.

Identificazione avanzata dei processi con eBPF (predefinita su Linux)

RustNet usa programmi eBPF del kernel per impostazione predefinita su Linux, per una maggiore performance e un'identificazione dei processi con overhead ridotto.

Nomi dei processi:

  • eBPF registra il TGID del leader del gruppo di processi e il nome comm (un campo del kernel limitato a 16 caratteri) anziché il nome del thread attivo, quindi le applicazioni multi-thread mostrano il nome del processo principale invece di nomi di thread come "Socket Thread"
  • RustNet quindi ri-risolve il nome corrente tramite /proc/<tgid>/comm, recupera i nomi troncati da comm dal nome del file eseguibile (es. "chromium-browse" diventa "chromium-browser") e risolve il percorso completo dell'eseguibile mostrato nella vista Dettagli
  • I processi di breve durata che terminano prima dell'esecuzione di questo arricchimento mantengono il nome di 16 caratteri registrato da eBPF

Comportamento di fallback:

  • Quando eBPF non riesce a caricarsi o non dispone dei permessi sufficienti, RustNet ripiega automaticamente sull'identificazione standard dei processi basata su procfs
  • La modalità standard risolve i nomi allo stesso modo tramite la scansione di procfs, ma con un overhead CPU maggiore
  • eBPF è abilitato per impostazione predefinita; non sono necessari flag di build speciali

Per disabilitare eBPF e usare la sola modalità procfs, compila con:

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

Vedi ARCHITECTURE.md per informazioni tecniche.

Monitoraggio dell'attività dei processi e delle interfacce

RustNet combina la contabilizzazione del traffico a livello di processo con le statistiche delle interfacce di rete in tempo reale:

  • Scheda Panoramica: Mostra le interfacce attive con velocità, errori e perdite correnti
  • Scheda Attività (premi 3): Classifica i processi per Egress (TX) o Ingress (RX), includendo traffico trattenuto e a rotazione, velocità, quote, connessioni e destinazioni
  • Flusso di lavoro di sicurezza: Ordina per Egress, individua un uploader inatteso, quindi ispeziona il suo peer remoto principale e il traffico trattenuto anche dopo la chiusura della connessione
  • Dettagli interfaccia (premi i in Attività): Mostra le metriche complete originali per ogni interfaccia
  • Multi-piattaforma: Linux (sysfs), macOS/FreeBSD (getifaddrs), Windows (API GetIfTable2)
  • Filtraggio intelligente: Windows esclude automaticamente gli adattatori virtuali/filtro

Vedi USAGE.md per la documentazione dettagliata su come interpretare le statistiche delle interfacce e il comportamento specifico delle piattaforme.

Metriche disponibili:

  • Byte e pacchetti totali (RX/TX)
  • Contatori degli errori (ricezione e trasmissione)
  • Perdite di pacchetti (overflow delle code)
  • Collisioni (legacy, usate raramente sulle reti moderne)

Le statistiche vengono raccolte ogni 2 secondi in un thread in background con un impatto minimo sulle prestazioni.

Screenshot

Avvio rapido

Installazione

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
# on 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
# Then inside the shell: sudo rustnet

Da 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

Altre piattaforme:

  • FreeBSD: Scarica dalle release rustnet-bsd
  • Docker, build da sorgente, altre distribuzioni Linux: Vedi INSTALL.md per istruzioni dettagliate

Esecuzione di RustNet

La cattura dei pacchetti richiede privilegi elevati:

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

Opzioni comuni:

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 tokyo-night  # Theme: muted (default), vivid, catppuccin-mocha, tokyo-night, gruvbox, nord
rustnet --pcapng-export capture.pcapng  # Annotated PCAPNG for Wireshark

Il tema e le personalizzazioni per singolo colore possono essere impostati anche in ~/.config/rustnet/config.toml; --theme ha la precedenza. Vedi USAGE.md per lo schema.

Vedi INSTALL.md per la configurazione dettagliata dei permessi e USAGE.md per le opzioni complete.

Se imposti le capability ma la TUI mostra ancora eBPF unavailable, consulta eBPF non disponibile nonostante le capability impostate nella sezione di risoluzione dei problemi.

Controlli da tastiera

Vedi USAGE.md per i controlli da tastiera dettagliati e i suggerimenti di navigazione.

Filtri e ordinamento

Esempi rapidi di filtri:

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

Ordinamento:

  • Premi s per scorrere le colonne ordinabili (Processo, Indirizzi, Servizio, Applicazione, Stato, Larghezza di banda)
  • Premi S (Shift+s) per invertire la direzione di ordinamento
  • Trova i maggiori consumatori di banda: premi s finché non appare "Bandwidth Total ↓" (ordina per velocità combinata su+giù)

Vedi USAGE.md per la sintassi completa dei filtri e la guida all'ordinamento.

Esempi avanzati di filtri

Filtri per parola chiave:

  • port:44 - Porte che contengono "44" (443, 8080, 4433)
  • sport:80 - Porte sorgente che contengono "80"
  • dport:443 - Porte di destinazione che contengono "443"
  • src:192.168 - IP sorgente che contengono "192.168"
  • dst:github.com - Destinazioni che contengono "github.com"
  • process:ssh - Nomi di processo che contengono "ssh"
  • sni:api - Hostname SNI che contengono "api"
  • app:openssh - Connessioni SSH che usano OpenSSH
  • state:established - Filtra per stato del protocollo
  • proto:tcp - Filtra per tipo di protocollo

Filtri per stato:

  • state:syn_recv - Connessioni half-open (rilevamento SYN flood)
Ciclo di vita delle connessioni e indicatori visivi

RustNet usa timeout intelligenti e avvisi visivi prima di rimuovere le connessioni:

Indicatori visivi di inattività:

  • Bianco: Attiva (< 75% del timeout)
  • Giallo: Inattiva (75-90% del timeout)
  • Rosso: Critica (> 90% del timeout)

Timeout consapevoli del protocollo:

  • HTTP/HTTPS: 10 minuti (supporta keep-alive)
  • SSH: 30 minuti (sessioni lunghe)
  • TCP generico stabilita: 5 minuti
  • QUIC connessa: 3 minuti (o il timeout di inattività dei transport-param del peer, se presente); Initial/Handshaking: 60 secondi
  • DNS: 30 secondi
  • TCP CLOSED: 15 secondi di grazia prima dell'archiviazione

Esempio: una connessione HTTP diventa gialla a 7,5 minuti, rossa a 9 minuti e viene rimossa a 10 minuti.

Vedi USAGE.md per i dettagli completi sui timeout.

Documentazione

  • INSTALL.md - Istruzioni di installazione dettagliate per tutte le piattaforme, configurazione dei permessi e risoluzione dei problemi
  • USAGE.md - Guida completa all'uso, incluse opzioni da riga di comando, filtri, ordinamento e logging
  • SECURITY.md - Funzionalità di sicurezza, incluso il sandboxing Landlock e la gestione dei privilegi
  • ARCHITECTURE.md - Architettura tecnica, implementazioni per piattaforma e dettagli sulle prestazioni
  • CONTRIBUTING.md - Flusso di lavoro per i contributi, requisiti di qualità e linee guida del progetto
  • PROFILING.md - Guida al profiling delle prestazioni con configurazione dei flamegraph e suggerimenti di ottimizzazione
  • ROADMAP.md - Funzionalità pianificate e miglioramenti futuri
  • RELEASE.md - Processo di release per i maintainer

Contributi

I contributi sono benvenuti! Consulta CONTRIBUTING.md per le linee guida su come contribuire.

Vedi CONTRIBUTORS.md per l'elenco delle persone che hanno contribuito a questo progetto.

Licenza

Questo progetto è concesso in licenza secondo la Apache License, Versione 2.0 - consulta il file LICENSE per i dettagli.

Riconoscimenti

  • Costruito con ratatui per l'interfaccia a terminale
  • Cattura dei pacchetti basata su libpcap
  • Ispirato a strumenti come tshark/wireshark/tcpdump, sniffnet, netstat, ss, iftop e bandwhich
  • Parte del codice è vibe coded (OMG) / che gli dèi delle LLM siano con voi

Documentazione spostata

Alcune sezioni sono state spostate in file dedicati per una migliore organizzazione:

  • Configurazione dei permessi: Ora in INSTALL.md - Configurazione dei permessi
  • Istruzioni di installazione: Ora in INSTALL.md
  • Uso dettagliato: Ora in USAGE.md
  • Dettagli sull'architettura: Ora in ARCHITECTURE.md
Scarica lo strumento
src:
dst:
sni:
process:
state:
proto:
/(?i)pattern/
  • Arricchimento GeoIP: Ricerca del paese tramite MaxMind GeoLite2 locale. Nessuna chiamata di rete.
  • Identificazione dei dispositivi LAN: Indirizzo MAC e vendor (dal database IEEE OUI integrato) per i peer sulla rete locale e il gateway, appresi passivamente dal traffico ARP e mostrati nel pannello dei dettagli.
  • Attribuzione Kubernetes (funzionalità opzionale kubernetes): connessioni associate al relativo pod, namespace e container, mostrate nel pannello dei dettagli, nelle esportazioni JSON/PCAPNG e nei filtri pod:, ns:, container:. Abilitata nell'immagine Docker ufficiale; su un cluster, usa il plugin kubectl-rustnet per eseguirlo come pod di debug effimero. Vedi USAGE.md.
  • Multi-piattaforma: Linux, macOS, Windows, FreeBSD.
  • Panoramica
    Tabella delle connessioni con statistiche live e sparkline
    Dettagli
    SNI, cifrario, GeoIP e DPI per connessione
    Grafico
    Grafico del traffico, distribuzione delle app, processi principali
    Attività
    Egress/ingress dei processi, copertura di 60 secondi, attribuzione e peer remoti
    TastoAzione
    qEsci (premi due volte per confermare)
    Ctrl+CEsci immediatamente
    xCancella tutte le connessioni (premi due volte per confermare)
    Tab o ]Scheda successiva
    Shift+Tab o [Scheda precedente
    1–5Vai a Panoramica / Dettagli / Attività / Grafico / Aiuto
    ↑/k ↓/jNaviga su/giù
    g GVai alla prima/ultima connessione
    EnterVisualizza i dettagli della connessione
    EscTorna indietro o cancella il filtro
    cCopia l'indirizzo remoto
    pAttiva/disattiva nomi servizi/porte
    dAttiva/disattiva hostname/IP in Panoramica o Egress/Ingress in Attività
    s SScorri le colonne di ordinamento / inverti la direzione
    aAttiva/disattiva il raggruppamento per processo
    SpaceEspandi/comprimi il gruppo di processi
    ←/→ o h/lComprimi/espandi il gruppo
    PageUp/PageDown o Ctrl+B/FNavigazione tra le pagine
    tAttiva/disattiva le connessioni storiche (chiuse)
    iAttiva/disattiva le info di sistema in Panoramica o i dettagli dell'interfaccia in Attività
    rReimposta la vista (raggruppamento, ordinamento, filtro)
    /Entra in modalità filtro
    hAttiva/disattiva l'aiuto
  • state:established - Solo connessioni stabilite
  • state:quic_connected - Connessioni QUIC attive
  • state:dns_query - Connessioni di query DNS
  • Esempi combinati:

    • sport:80 process:nginx - Connessioni Nginx dalla porta 80
    • dport:443 sni:google.com - HTTPS verso Google
    • process:firefox state:quic_connected - Connessioni QUIC di Firefox
    • dport:22 app:openssh state:established - Connessioni OpenSSH stabilite