implant capture

Daemon background que captura tráfego em pcap rotativo + CLI extract com query combinada (time + IP + porta + proto) e enrichment port→process.

Setup

sudo apt install tcpdump tshark iproute2  # deps runtime
sudo implant capture service install      # cria unit + config + start
sudo implant capture service status       # verifica

Captura

Por default captura SSH+HTTP+HTTPS+ICMP+DNS via BPF. Operador customiza via config.

Rotação: 10 arquivos × 50MB × 1h = ~500MB cap. Arquivos em /var/lib/implant/pcap/capture-YYYYMMDDHHMMSS.pcap.

Extract (forense)

Combina critérios via AND:

# Último 1h, src de 203.0.113.4, porta 22
sudo implant capture extract --since 1h --src-ip 203.0.113.4 --port 22 --out /tmp/ssh-attack.pcap

# Range absoluto, TCP only
sudo implant capture extract --from 2026-05-23T10:00:00Z --to 2026-05-23T11:00:00Z --proto tcp

# Tudo último 24h (default)
sudo implant capture extract --out /tmp/today.pcap

Filtros disponíveis: tempo (--since relativo, ou --from/--to absolutos; default últimas 24h), IP (--ip em qualquer direção, --src-ip, --dst-ip), porta (--port em qualquer direção, --src-port, --dst-port) e --proto. Sem --out, grava em ./extract-TIMESTAMP.pcap.

Cada extract gera <out>.pcap + <out>.pcap.meta.json com:

  • query parameters
  • files_searched
  • packet_count
  • port_processes — mapa porta → processo listening (sshd, traefik, etc.). Porta sem listener = null (probe suspeito).

Comandos

Comando Descrição
service install/uninstall Cria/remove unit
service start/stop/restart/status Ciclo de vida
service logs [--lines N] journalctl wrapper
status applied, files_count, total bytes, time_range
list Lista pcaps com timestamps
extract [time/ip/port/proto] [--out PATH] Query forense
prune --keep-files N ou --keep-time DUR Cleanup manual
config show/path Imprime config

Todos com --output json para automação.

Emergency-mode

capture é uma feature opt-in. emergency-mode enable para o daemon, pcaps preservados.