Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
rustnet — Surveillance réseau par processus pour votre terminal avec inspection approfondie des paquets. Multi-plateforme, isolé. | Kitploit
Outils/GitHubGitHub/domcyrus/rustnet
Sniffing et Analyse de PaquetsSécurité des ConteneursAnalyse ForensiqueCollecte d'InformationsSécurité CloudRenseignement sur les MenacesAnalyse DNSAnalyse de Journaux
GitHubdomcyrus/rustnet

rustnet

Surveillance réseau par processus pour votre terminal avec inspection approfondie des paquets. Multi-plateforme, isolé.

Voir le dépôt
4.8k223il y a 17h 41mVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

RustNet

Surveillance réseau par processus pour votre terminal : connexions TCP, UDP et QUIC en direct avec inspection approfondie des paquets, sandbox par défaut.

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

English | 简体中文 | 日本語

RustNet demo

Visibilité en temps réel sur chaque connexion effectuée par votre machine, à qui elle appartient, et quel protocole elle utilise. Pas de tcpdump, de transfert X11 ni de pipe root.

Fonctionnalités

  • Attribution par processus : chaque connexion TCP, UDP et QUIC est associée à son processus propriétaire, via eBPF sous Linux, PKTAP sous macOS, ETW avec un repli automatique IP Helper sous Windows, et les API natives sous FreeBSD. Les détails incluent le PID, l'exécutable, les noms d'utilisateur/groupe, la confiance de correspondance et une chaîne de processus parents plafonnée sur toutes les plateformes. Wireshark et tcpdump ne peuvent pas faire cela ; netstat / ss ne peuvent pas afficher l'état en direct.
  • Inspection approfondie des paquets : identification de HTTP, HTTPS/TLS avec SNI, DNS, SSH, FTP, QUIC, MQTT, BitTorrent, STUN, NTP, mDNS, LLMNR, DHCP, SNMP, SSDP et NetBIOS, sans disséqueurs externes.
  • Export PCAPNG annoté : --pcapng-export écrit une capture prête pour Wireshark avec le processus, le PID, la direction, le DPI/SNI et GeoIP intégrés sous forme de commentaires par paquet. Ouvrez-la dans Wireshark et chaque paquet nomme déjà son processus propriétaire, sans post-traitement. Un --pcap-export classique avec un fichier sidecar JSONL pour la corrélation hors ligne est également disponible.
  • Sandbox de sécurité : Landlock (Linux 5.13+), Seatbelt (macOS), suppression de privilèges par jeton + blocage des processus enfants par job object (Windows). Les privilèges sont abandonnés immédiatement après l'initialisation de libpcap. Voir SECURITY.md.
  • Analyses réseau : temps d'aller-retour en temps réel pour TCP, les poignées de main QUIC, les réponses DNS et l'écho ICMP, plus la détection de retransmission TCP, de hors-séquence et de fast retransmit.
  • Cycle de vie intelligent des connexions : délais d'attente adaptés au protocole avec indicateurs de fraîcheur blanc → jaune → rouge. Basculez avec t pour conserver les connexions historiques (fermées) visibles à des fins forensiques.

Pourquoi RustNet ?

RustNet comble le fossé entre les outils de connexion simples (netstat, ss) et les analyseurs de paquets (Wireshark, tcpdump) :

  • Attribution des processus : voyez quelle application possède chaque connexion. Wireshark ne peut pas fournir cela car il ne voit que des paquets, pas des sockets.
  • Vue centrée sur les connexions : suivez les états, la bande passante et les protocoles par connexion en temps réel
  • Compatible SSH : l'interface TUI fonctionne via SSH pour voir rapidement ce qui se passe sur un serveur distant sans transférer X11 ni capturer le trafic

RustNet complète les outils de capture de paquets. Utilisez RustNet pour voir ce qui établit des connexions. Pour une inspection directe avec Wireshark, --pcapng-export écrit des commentaires de paquets best-effort en direct avec le contexte PID/processus. Pour une corrélation au moment du nettoyage, utilisez --pcap-export avec le sidecar JSONL et le script optionnel scripts/pcap_enrich.py. Voir PCAP Export et Comparison with Similar Tools pour plus de détails.

Construit sur ratatui, libpcap, eBPF (libbpf-rs), DashMap, crossbeam, ring, MaxMind GeoLite2 et Landlock. Voir ARCHITECTURE.md pour la répartition complète des dépendances.

Identification de processus améliorée par eBPF (défaut Linux)

RustNet utilise par défaut des programmes eBPF du noyau sous Linux pour de meilleures performances et une identification des processus à moindre surcoût.

Noms des processus :

  • eBPF enregistre le TGID du chef de groupe de processus et le nom comm (un champ du noyau limité à 16 caractères) plutôt que le nom du thread actif, de sorte que les applications multithread affichent le nom du processus principal au lieu de noms de threads comme « Socket Thread »
  • RustNet re-résout ensuite le nom actuel via /proc/<tgid>/comm, récupère les noms tronqués par comm à partir du nom du fichier exécutable (par ex. « chromium-browse » devient « chromium-browser »), et résout le chemin complet de l'exécutable affiché dans la vue Détails
  • Les processus de courte durée qui se terminent avant que cet enrichissement ne s'exécute conservent le nom de 16 caractères enregistré par eBPF

Comportement de repli :

  • Lorsque eBPF ne se charge pas ou manque de permissions suffisantes, RustNet revient automatiquement à l'identification de processus standard basée sur procfs
  • Le mode standard résout les noms de la même manière via l'analyse de procfs, mais avec un surcoût CPU plus élevé
  • eBPF est activé par défaut ; aucune option de compilation spéciale n'est nécessaire

Pour désactiver eBPF et utiliser le mode procfs uniquement, compilez avec :

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

Voir ARCHITECTURE.md pour des informations techniques.

Surveillance de l'activité des processus et des interfaces

RustNet combine la comptabilité du trafic au niveau des processus avec des statistiques d'interface réseau en temps réel :

  • Onglet Overview : affiche les interfaces actives avec les débits, erreurs et pertes actuels
  • Onglet Activity (appuyez sur 3) : classe les processus par Egress (TX) ou Ingress (RX), y compris le trafic conservé et glissant, les débits, les parts, les connexions et les destinations
  • Workflow de sécurité : triez par Egress, identifiez un uploader inattendu, puis inspectez son pair distant principal et le trafic conservé même après la fermeture de la connexion
  • Détails des interfaces (appuyez sur i dans Activity) : affiche les métriques complètes d'origine pour chaque interface
  • Multi-plateforme : Linux (sysfs), macOS/FreeBSD (getifaddrs), Windows (API GetIfTable2)
  • Filtrage intelligent : Windows exclut automatiquement les adaptateurs virtuels/filtres

Voir USAGE.md pour une documentation détaillée sur l'interprétation des statistiques d'interface et le comportement spécifique à chaque plateforme.

Métriques disponibles :

  • Octets et paquets totaux (RX/TX)
  • Compteurs d'erreurs (réception et émission)
  • Pertes de paquets (débordements de file d'attente)
  • Collisions (héritage, rarement utilisées sur les réseaux modernes)

Les statistiques sont collectées toutes les 2 secondes dans un thread en arrière-plan avec un impact minimal sur les performances.

Captures d'écran

Démarrage rapide

Installation

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
# sur 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
# Ensuite, dans le shell : sudo rustnet

Depuis crates.io :

root@kitploit:~
cargo install rustnet-monitor

Windows (Chocolatey) :

root@kitploit:~
# À exécuter dans PowerShell en mode Administrateur
# Nécessite Npcap (https://npcap.com) installé avec « WinPcap API-compatible Mode » activé
choco install rustnet

Autres plateformes :

  • FreeBSD : téléchargement depuis rustnet-bsd releases
  • Docker, compilation depuis les sources, autres distributions Linux : voir INSTALL.md pour des instructions détaillées

Exécuter RustNet

La capture de paquets nécessite des privilèges élevés :

root@kitploit:~
# Démarrage rapide (toutes les plateformes)
sudo rustnet

# Linux : accorder des capabilities pour exécuter sans sudo (recommandé)
sudo setcap 'cap_net_raw,cap_bpf,cap_perfmon+eip' $(which rustnet)
rustnet

Options courantes :

root@kitploit:~
rustnet -i eth0              # Spécifier l'interface réseau
rustnet --show-localhost     # Afficher les connexions localhost
rustnet --no-resolve-dns     # Désactiver les résolutions DNS inverses (activées par défaut)
rustnet -r 500               # Définir l'intervalle d'actualisation (ms)
rustnet --theme tokyo-night  # Thème : muted (défaut), vivid, catppuccin-mocha, tokyo-night, gruvbox, nord
rustnet --pcapng-export capture.pcapng  # PCAPNG annoté pour Wireshark

Le thème et les surcharges par couleur peuvent également être définis dans ~/.config/rustnet/config.toml ; --theme a la priorité. Voir USAGE.md pour le schéma.

Voir INSTALL.md pour la configuration détaillée des permissions et USAGE.md pour toutes les options.

Si vous définissez les capabilities mais que l'interface TUI affiche toujours eBPF unavailable, consultez eBPF Unavailable Despite Capabilities Being Set dans la section de dépannage.

Contrôles clavier

Voir USAGE.md pour les contrôles clavier détaillés et les conseils de navigation.

Filtrage et tri

Exemples de filtrage rapide :

root@kitploit:~
/google                        # Rechercher « google » partout
/port:443                      # Filtrer par port
/process:firefox               # Filtrer par processus
/state:established             # Filtrer par état de connexion
/dport:443 sni:github.com      # Combiner des filtres

Tri :

  • Appuyez sur s pour parcourir les colonnes triables (Processus, Adresses, Service, Application, État, Bande passante)
  • Appuyez sur S (Shift+s) pour basculer la direction du tri
  • Trouvez les consommateurs de bande passante : appuyez sur s jusqu'à ce que « Bandwidth Total ↓ » apparaisse (trie par vitesse combinée montante+descendante)

Voir USAGE.md pour la syntaxe complète de filtrage et le guide de tri.

Exemples de filtrage avancé

Filtres par mot-clé :

  • port:44 - Ports contenant « 44 » (443, 8080, 4433)
  • sport:80 - Ports sources contenant « 80 »
  • dport:443 - Ports de destination contenant « 443 »
  • src:192.168 - IP sources contenant « 192.168 »
  • dst:github.com - Destinations contenant « github.com »
  • process:ssh - Noms de processus contenant « ssh »
  • sni:api - Noms d'hôtes SNI contenant « api »
  • app:openssh - Connexions SSH utilisant OpenSSH
  • state:established - Filtrer par état de protocole
  • proto:tcp - Filtrer par type de protocole

Filtrage par état :

  • state:syn_recv - Connexions semi-ouvertes (détection d'inondation SYN)
Cycle de vie des connexions et indicateurs visuels

RustNet utilise des délais d'attente intelligents et des avertissements visuels avant de supprimer les connexions :

Indicateurs visuels de fraîcheur :

  • Blanc : actif (< 75 % du délai d'attente)
  • Jaune : périmé (75-90 % du délai d'attente)
  • Rouge : critique (> 90 % du délai d'attente)

Délais d'attente adaptés au protocole :

  • HTTP/HTTPS : 10 minutes (prend en charge keep-alive)
  • SSH : 30 minutes (longues sessions)
  • TCP générique établi : 5 minutes
  • QUIC connecté : 3 minutes (ou le délai d'inactivité des paramètres de transport du pair, lorsqu'il est présent) ; Initial/Handshaking : 60 secondes
  • DNS : 30 secondes
  • TCP CLOSED : 15 secondes de grâce d'archivage

Exemple : une connexion HTTP passe au jaune à 7,5 min, au rouge à 9 min, et est supprimée à 10 min.

Voir USAGE.md pour tous les détails sur les délais d'attente.

Documentation

  • INSTALL.md - Instructions d'installation détaillées pour toutes les plateformes, configuration des permissions et dépannage
  • USAGE.md - Guide d'utilisation complet comprenant les options de ligne de commande, le filtrage, le tri et la journalisation
  • SECURITY.md - Fonctionnalités de sécurité, y compris le sandbox Landlock et la gestion des privilèges
  • ARCHITECTURE.md - Architecture technique, implémentations par plateforme et détails de performance
  • CONTRIBUTING.md - Workflow de contribution, exigences de qualité et directives du projet
  • PROFILING.md - Guide de profilage des performances avec configuration flamegraph et conseils d'optimisation
  • ROADMAP.md - Fonctionnalités planifiées et améliorations futures
  • RELEASE.md - Processus de publication pour les mainteneurs

Contribuer

Les contributions sont les bienvenues ! Veuillez consulter CONTRIBUTING.md pour les directives sur la façon de contribuer.

Voir CONTRIBUTORS.md pour la liste des personnes qui ont contribué à ce projet.

Licence

Ce projet est sous licence Apache License, Version 2.0 - voir le fichier LICENSE pour plus de détails.

Remerciements

  • Construit avec ratatui pour l'interface terminal
  • Capture de paquets propulsée par libpcap
  • Inspiré par des outils comme tshark/wireshark/tcpdump, sniffnet, netstat, ss, iftop et bandwhich
  • Une partie du code est vibe codée (OMG) / que les dieux des LLM soient avec vous

Documentation déplacée

Certaines sections ont été déplacées vers des fichiers dédiés pour une meilleure organisation :

  • Configuration des permissions : désormais dans INSTALL.md - Permissions Setup
  • Instructions d'installation : désormais dans INSTALL.md
  • Utilisation détaillée : désormais dans USAGE.md
  • Détails de l'architecture : désormais dans ARCHITECTURE.md
Télécharger l’outil
  • Filtrage style Vim/fzf : port:, src:, dst:, sni:, process:, state:, proto:, plus les regex via /(?i)pattern/.
  • Enrichissement GeoIP : recherche de pays via MaxMind GeoLite2 local. Aucun appel réseau.
  • Identification des périphériques LAN : adresse MAC et fabricant (à partir de la base de données IEEE OUI intégrée) pour les pairs sur le lien et la passerelle, appris passivement à partir du trafic ARP et affichés dans le panneau de détails.
  • Attribution Kubernetes (fonctionnalité optionnelle kubernetes) : les connexions sont associées à leur pod, namespace et conteneur, affichés dans le panneau de détails, les exports JSON/PCAPNG et les filtres pod:, ns:, container:. Activée dans l'image Docker officielle ; sur un cluster, utilisez le plugin kubectl-rustnet pour l'exécuter en tant que pod de débogage éphémère. Voir USAGE.md.
  • Multi-plateforme : Linux, macOS, Windows, FreeBSD.
  • Overview
    Tableau des connexions avec statistiques en direct et sparklines
    Details
    SNI, chiffrement, GeoIP, DPI par connexion
    Graph
    Graphique du trafic, répartition des applications, principaux processus
    Activity
    Egress/ingress des processus, couverture de 60 secondes, attribution et pairs distants
    ToucheAction
    qQuitter (appuyer deux fois pour confirmer)
    Ctrl+CQuitter immédiatement
    xEffacer toutes les connexions (appuyer deux fois pour confirmer)
    Tab ou ]Onglet suivant
    Shift+Tab ou [Onglet précédent
    1–5Aller à Overview / Details / Activity / Graph / Help
    ↑/k ↓/jNaviguer vers le haut/bas
    g GAller à la première/dernière connexion
    EnterVoir les détails de la connexion
    EscRevenir en arrière ou effacer le filtre
    cCopier l'adresse distante
    pBasculer noms de services/ports
    dBasculer noms d'hôtes/IP sur Overview ou Egress/Ingress sur Activity
    s SParcourir les colonnes de tri / basculer la direction
    aBasculer le regroupement par processus
    SpaceDévelopper/réduire le groupe de processus
    ←/→ ou h/lRéduire/développer le groupe
    PageUp/PageDown ou Ctrl+B/FNavigation par pages
    tBasculer les connexions historiques (fermées)
    iBasculer les infos système sur Overview ou les détails d'interface sur Activity
    rRéinitialiser la vue (regroupement, tri, filtre)
    /Entrer en mode filtre
    hBasculer l'aide
  • state:established - Connexions établies uniquement
  • state:quic_connected - Connexions QUIC actives
  • state:dns_query - Connexions de requête DNS
  • Exemples combinés :

    • sport:80 process:nginx - Connexions Nginx depuis le port 80
    • dport:443 sni:google.com - HTTPS vers Google
    • process:firefox state:quic_connected - Connexions QUIC de Firefox
    • dport:22 app:openssh state:established - Connexions OpenSSH établies