Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
rustnet — Monitorização de rede por processo para o seu terminal com inspeção profunda de pacotes. Multiplataforma, em sandbox. | Kitploit
Ferramentas/GitHubGitHub/domcyrus/rustnet
Sniffing e Análise de PacotesSegurança de ContêineresAnálise ForenseColeta de InformaçõesSegurança na NuvemInteligência de AmeaçasAnálise de DNSAnálise de Logs
GitHubdomcyrus/rustnet

rustnet

Monitorização de rede por processo para o seu terminal com inspeção profunda de pacotes. Multiplataforma, em sandbox.

Ver Repositório
4.8k223há 12h 46mRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

RustNet

Monitoramento de rede por processo para o seu terminal: conexões TCP, UDP e QUIC ao vivo com inspeção profunda de pacotes, com sandbox por padrão.

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

Português | 简体中文 | 日本語

Demonstração do RustNet

Visibilidade em tempo real de cada conexão que sua máquina faz, quem a possui e qual protocolo está falando. Sem tcpdump, encaminhamento X11 ou piping como root.

Recursos

  • Atribuição por processo: Cada conexão TCP, UDP e QUIC mapeada para o processo proprietário, via eBPF no Linux, PKTAP no macOS, ETW com fallback automático para IP Helper no Windows e APIs nativas no FreeBSD. Os detalhes incluem PID, executável, nomes de usuário/grupo, confiança de correspondência e uma cadeia limitada de processos pai em todas as plataformas. Wireshark e tcpdump não conseguem fazer isso; netstat / ss não conseguem mostrar o estado ao vivo.
  • Inspeção profunda de pacotes: Identifica HTTP, HTTPS/TLS com SNI, DNS, SSH, FTP, QUIC, MQTT, BitTorrent, STUN, NTP, mDNS, LLMNR, DHCP, SNMP, SSDP e NetBIOS, sem dissectores externos.
  • Exportação PCAPNG anotada: --pcapng-export grava uma captura pronta para o Wireshark com processo, PID, direção, DPI/SNI e GeoIP embutidos como comentários por pacote. Abra no Wireshark e cada pacote já nomeia seu processo proprietário, sem pós-processamento. O clássico --pcap-export com um sidecar JSONL para correlação offline também está disponível.
  • Sandbox de segurança: Landlock (Linux 5.13+), Seatbelt (macOS), redução de privilégios por token + bloqueio de processos filhos por job object (Windows). Reduz privilégios imediatamente após a inicialização do libpcap. Consulte SECURITY.md.
  • Análises de rede: Tempos de ida e volta em tempo real para TCP, handshakes QUIC, respostas DNS e echo ICMP, além de detecção de retransmissão TCP, fora de ordem e retransmissão rápida.
  • Ciclo de vida inteligente de conexões: Timeouts cientes do protocolo com indicadores de obsolescência branco → amarelo → vermelho. Alterne com t para manter conexões históricas (fechadas) visíveis para perícia.
  • Filtragem estilo Vim/fzf: port:, , , , , , , além de regex via .

Por que RustNet?

O RustNet preenche a lacuna entre ferramentas simples de conexão (netstat, ss) e analisadores de pacotes (Wireshark, tcpdump):

  • Atribuição de processos: Veja a qual aplicativo pertence cada conexão. O Wireshark não consegue fornecer isso porque ele só vê pacotes, não sockets.
  • Visão centrada na conexão: Acompanhe estados, largura de banda e protocolos por conexão em tempo real
  • Compatível com SSH: A TUI funciona via SSH para que você veja rapidamente o que está acontecendo em um servidor remoto sem encaminhar X11 ou capturar tráfego

O RustNet complementa as ferramentas de captura de pacotes. Use o RustNet para ver o que está fazendo conexões. Para inspeção direta no Wireshark, --pcapng-export grava, ao vivo e com melhor esforço, comentários de pacotes com contexto de PID/processo. Para correlação na fase de limpeza, use --pcap-export com o sidecar JSONL e o opcional scripts/pcap_enrich.py. Consulte Exportação PCAP e Comparação com Ferramentas Similares para detalhes.

Construído sobre ratatui, libpcap, eBPF (libbpf-rs), DashMap, crossbeam, ring, MaxMind GeoLite2 e Landlock. Consulte ARCHITECTURE.md para o detalhamento completo das dependências.

Identificação de Processos Aprimorada por eBPF (Padrão no Linux)

O RustNet usa programas eBPF do kernel por padrão no Linux para melhor desempenho e identificação de processos com menor overhead.

Nomes de Processos:

  • O eBPF registra o TGID do líder do grupo de processos e o nome comm (um campo do kernel limitado a 16 caracteres) em vez do nome da thread ativa, portanto aplicações multithread mostram o nome do processo principal em vez de nomes de threads como "Socket Thread"
  • O RustNet então resolve novamente o nome atual via /proc/<tgid>/comm, recupera nomes truncados pelo comm a partir do nome do arquivo executável (ex.: "chromium-browse" torna-se "chromium-browser") e resolve o caminho completo do executável exibido na visualização de Detalhes
  • Processos de vida curta que terminam antes de esse enriquecimento ser executado mantêm o nome de 16 caracteres registrado pelo eBPF

Comportamento de Fallback:

  • Quando o eBPF falha ao carregar ou não tem permissões suficientes, o RustNet volta automaticamente para a identificação de processos padrão baseada em procfs
  • O modo padrão resolve nomes da mesma forma por meio da varredura do procfs, mas com maior uso de CPU
  • O eBPF está habilitado por padrão; nenhuma flag de build especial é necessária

Para desabilitar o eBPF e usar o modo somente procfs, compile com:

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

Consulte ARCHITECTURE.md para informações técnicas.

Monitoramento de Atividade de Processos e Interfaces

O RustNet combina contabilidade de tráfego em nível de processo com estatísticas de interface de rede em tempo real:

  • Aba Visão Geral: Mostra interfaces ativas com taxas, erros e quedas atuais
  • Aba Atividade (pressione 3): Classifica processos por Egress (TX) ou Ingress (RX), incluindo tráfego retido e contínuo, taxas, participações, conexões e destinos
  • Fluxo de Trabalho de Segurança: Ordene por Egress, identifique um uploader inesperado e inspecione seu principal peer remoto e o tráfego retido mesmo após a conexão fechar
  • Detalhes da Interface (pressione i na Atividade): Mostra as métricas abrangentes originais de cada interface
  • Multiplataforma: Linux (sysfs), macOS/FreeBSD (getifaddrs), Windows (API GetIfTable2)
  • Filtragem Inteligente: O Windows exclui automaticamente adaptadores virtuais/filtro

Consulte USAGE.md para documentação detalhada sobre como interpretar estatísticas de interface e o comportamento específico da plataforma.

Métricas Disponíveis:

  • Total de bytes e pacotes (RX/TX)
  • Contadores de erros (recebimento e transmissão)
  • Quedas de pacotes (estouro de filas)
  • Colisões (legado, raramente usado em redes modernas)

As estatísticas são coletadas a cada 2 segundos em uma thread em segundo plano com impacto mínimo no desempenho.

Capturas de Tela

Início Rápido

Instalação

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

Do 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

Outras plataformas:

  • FreeBSD: Baixe dos lançamentos rustnet-bsd
  • Docker, compilações a partir do código-fonte, outras distros Linux: Consulte INSTALL.md para instruções detalhadas

Executando o RustNet

A captura de pacotes requer privilégios 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

Opções comuns:

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

O tema e as substituições por cor também podem ser definidos em ~/.config/rustnet/config.toml; --theme tem precedência. Consulte USAGE.md para o esquema.

Consulte INSTALL.md para configuração detalhada de permissões e USAGE.md para todas as opções.

Se você definir as capabilities mas a TUI ainda mostrar eBPF unavailable, consulte eBPF indisponível apesar das capabilities definidas na seção de solução de problemas.

Controles de Teclado

Consulte USAGE.md para controles de teclado detalhados e dicas de navegação.

Filtragem & Ordenação

Exemplos rápidos de filtragem:

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

Ordenação:

  • Pressione s para percorrer as colunas ordenáveis (Processo, Endereços, Serviço, Aplicativo, Estado, Largura de Banda)
  • Pressione S (Shift+s) para alternar a direção da ordenação
  • Encontre quem consome mais largura de banda: Pressione s até aparecer "Bandwidth Total ↓" (ordena pela velocidade combinada de upload+download)

Consulte USAGE.md para a sintaxe completa de filtragem e o guia de ordenação.

Exemplos Avançados de Filtragem

Filtros por palavra-chave:

  • port:44 - Portas que contêm "44" (443, 8080, 4433)
  • sport:80 - Portas de origem que contêm "80"
  • dport:443 - Portas de destino que contêm "443"
  • src:192.168 - IPs de origem que contêm "192.168"
  • dst:github.com - Destinos que contêm "github.com"
  • process:ssh - Nomes de processos que contêm "ssh"
  • sni:api - Hostnames SNI que contêm "api"
  • app:openssh - Conexões SSH que usam OpenSSH
  • state:established - Filtra por estado do protocolo
  • proto:tcp - Filtra por tipo de protocolo

Filtragem por estado:

  • state:syn_recv - Conexões meio abertas (detecção de inundação SYN)
Ciclo de Vida das Conexões e Indicadores Visuais

O RustNet usa timeouts inteligentes e avisos visuais antes de remover conexões:

Indicadores visuais de obsolescência:

  • Branco: Ativa (< 75% do timeout)
  • Amarelo: Obsoleta (75-90% do timeout)
  • Vermelho: Crítica (> 90% do timeout)

Timeouts cientes do protocolo:

  • HTTP/HTTPS: 10 minutos (suporta keep-alive)
  • SSH: 30 minutos (sessões longas)
  • TCP estabelecido genérico: 5 minutos
  • QUIC conectado: 3 minutos (ou o timeout ocioso do transport-param do peer, quando presente); Initial/Handshaking: 60 segundos
  • DNS: 30 segundos
  • TCP CLOSED: 15 segundos de tolerância para arquivamento

Exemplo: Uma conexão HTTP fica amarela aos 7,5 min, vermelha aos 9 min e é removida aos 10 min.

Consulte USAGE.md para detalhes completos sobre timeouts.

Documentação

  • INSTALL.md - Instruções detalhadas de instalação para todas as plataformas, configuração de permissões e solução de problemas
  • USAGE.md - Guia de uso completo incluindo opções de linha de comando, filtragem, ordenação e registro
  • SECURITY.md - Recursos de segurança incluindo sandbox Landlock e gerenciamento de privilégios
  • ARCHITECTURE.md - Arquitetura técnica, implementações por plataforma e detalhes de desempenho
  • CONTRIBUTING.md - Fluxo de trabalho de contribuição, requisitos de qualidade e diretrizes do projeto
  • PROFILING.md - Guia de criação de perfil de desempenho com configuração de flamegraph e dicas de otimização
  • ROADMAP.md - Recursos planejados e melhorias futuras
  • RELEASE.md - Processo de lançamento para mantenedores

Contribuindo

Contribuições são bem-vindas! Consulte CONTRIBUTING.md para as diretrizes sobre como contribuir.

Consulte CONTRIBUTORS.md para uma lista de pessoas que contribuíram com este projeto.

Licença

Este projeto é licenciado sob a Apache License, Versão 2.0 - consulte o arquivo LICENSE para obter detalhes.

Agradecimentos

  • Construído com ratatui para a interface de terminal
  • Captura de pacotes alimentada por libpcap
  • Inspirado por ferramentas como tshark/wireshark/tcpdump, sniffnet, netstat, ss, iftop e bandwhich
  • Parte do código foi escrita no estilo vibe coding (OMG) / que os deuses dos LLMs estejam com você

Documentação Movida

Algumas seções foram movidas para arquivos dedicados para melhor organização:

  • Configuração de Permissões: Agora em INSTALL.md - Configuração de Permissões
  • Instruções de Instalação: Agora em INSTALL.md
  • Uso Detalhado: Agora em USAGE.md
  • Detalhes da Arquitetura: Agora em ARCHITECTURE.md
Baixar ferramenta
src:
dst:
sni:
process:
state:
proto:
/(?i)pattern/
  • Enriquecimento GeoIP: Consultas de país via MaxMind GeoLite2 local. Sem chamadas de rede.
  • Identificação de dispositivos na LAN: Endereço MAC e fabricante (do banco de dados IEEE OUI embutido) para peers no link e o gateway, aprendidos passivamente a partir do tráfego ARP e exibidos no painel de detalhes.
  • Atribuição Kubernetes (recurso kubernetes opcional): conexões mapeadas para seu pod, namespace e contêiner, exibidas no painel de detalhes, nas exportações JSON/PCAPNG e nos filtros pod:, ns:, container:. Habilitado na imagem Docker oficial; em um cluster, use o plugin kubectl-rustnet para executá-lo como um pod de depuração efêmero. Consulte USAGE.md.
  • Multiplataforma: Linux, macOS, Windows, FreeBSD.
  • Visão Geral
    Tabela de conexões com estatísticas ao vivo e sparklines
    Detalhes
    SNI, cifra, GeoIP e DPI por conexão
    Gráfico
    Gráfico de tráfego, distribuição de aplicativos, principais processos
    Atividade
    Egress/ingress de processos, cobertura de 60 segundos, atribuição e peers remotos
    TeclaAção
    qSair (pressione duas vezes para confirmar)
    Ctrl+CSair imediatamente
    xLimpar todas as conexões (pressione duas vezes para confirmar)
    Tab ou ]Próxima aba
    Shift+Tab ou [Aba anterior
    1–5Ir para Visão Geral / Detalhes / Atividade / Gráfico / Ajuda
    ↑/k ↓/jNavegar para cima/baixo
    g GIr para a primeira/última conexão
    EnterVer detalhes da conexão
    EscVoltar ou limpar filtro
    cCopiar endereço remoto
    pAlternar nomes de serviços/portas
    dAlternar hostnames/IPs na Visão Geral ou Egress/Ingress na Atividade
    s SAlternar colunas de ordenação / alternar direção
    aAlternar agrupamento por processo
    SpaceExpandir/recolher grupo de processos
    ←/→ ou h/lRecolher/expandir grupo
    PageUp/PageDown ou Ctrl+B/FNavegação por páginas
    tAlternar conexões históricas (fechadas)
    iAlternar informações do sistema na Visão Geral ou detalhes da interface na Atividade
    rRedefinir visualização (agrupamento, ordenação, filtro)
    /Entrar no modo de filtro
    hAlternar ajuda
  • state:established - Somente conexões estabelecidas
  • state:quic_connected - Conexões QUIC ativas
  • state:dns_query - Conexões de consulta DNS
  • Exemplos combinados:

    • sport:80 process:nginx - Conexões Nginx da porta 80
    • dport:443 sni:google.com - HTTPS para o Google
    • process:firefox state:quic_connected - Conexões QUIC do Firefox
    • dport:22 app:openssh state:established - Conexões OpenSSH estabelecidas