
Analiza el tráfico saliente en busca de callbacks sospechosos, similares a balizas, porque si sigue volviendo según un horario, probablemente no sea el desayuno.
Analiza el tráfico saliente en busca de devoluciones de llamada sospechosas y similares a balizas, porque si sigue regresando según lo programado, probablemente no sea el desayuno.
Bacon Sampler es un capturador de conexiones salientes ligero que analiza el chisporroteo del tráfico de tu red y marca comportamientos sospechosos "similares a balizas": esas devoluciones de llamada periódicas, lentas y constantes que el malware adora para comunicarse con su centro de control.
Monitorea pasivamente las conexiones salientes y las consultas DNS, y luego resalta patrones como intervalos regulares, destinos repetidos, fluctuaciones extrañas y tamaños de bytes consistentes, básicamente cualquier cosa que parezca menos como navegación normal y más como un bot que se reporta para recibir instrucciones.
Piénsalo como un escáner de balizas, pero más sabroso: si algo sigue regresando a la misma hora cada vez... estamos probando el tocino.
.mmdb) o DB-IP Lite (.mmdb).BIN)pip install -r requirements.txt
Descarga una base de datos GeoIP y anota la ruta:
.mmdb).BIN)Si prefieres una consulta en línea gratuita, puedes omitir esto y usar --geoip-online.
Listar interfaces:
python capture_outbound.py --list-interfaces
Seleccionar una interfaz por índice:
python capture_outbound.py --interface 0
Usar múltiples interfaces (repetible):
python capture_outbound.py --interface "Ethernet" --interface "Wi-Fi"
O con nombres separados por comas:
python capture_outbound.py --interfaces "Ethernet,Wi-Fi"
Captura solo con pcap (A) y GeoIP sin conexión:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"
Captura con pcap + correlación de netstat (B) y GeoIP sin conexión:
python capture_outbound.py --mode pcap_plus_netstat --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"
Unión de pcap + netstat (A+B):
python capture_outbound.py --mode both --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"
GeoIP en línea (gratuito, con límite de tasa, almacenado en caché en disco):
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipapi
GeoIP en línea con token de IPinfo:
$env:IPINFO_TOKEN="your_token_here"
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipinfo
O pasa el token explícitamente:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipinfo --geoip-online-token "your_token_here"
Ajustar tiempo de espera y reintentos de GeoIP en línea:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipapi --geoip-timeout 2.5 --geoip-retries 1
Deshabilitar DNS inverso (ejecuciones más rápidas):
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --no-dns
Ajustar tiempo de espera de DNS:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --dns-timeout 0.5
Limitar la captura por número de paquetes:
python capture_outbound.py --mode pcap --duration 60 --packet-limit 5000
Filtrar por protocolo, puerto remoto y CIDR de IP:
python capture_outbound.py --filter-protocol tcp --filter-port 80,443,1000-2000 --allow-ip 1.2.3.0/24 --deny-ip 1.2.3.4/32
Resúmenes por grupo y N superiores:
python capture_outbound.py --group-by remote_ip,process --top 10
Seguimiento de bytes totales por conexión:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --track-bytes
Deshabilitar salida de progreso:
python capture_outbound.py --no-progress
Deshabilitar salida por consola:
python capture_outbound.py --no-console
Unión de pcap + netstat (A+B) + GeoIP en línea + Escribir un pcap + CSV + HTML:
python capture_outbound.py --mode both --duration 20 --interface "Ethernet,Wi-Fi" --geoip-online ipapi --pcap-out "C:\Path\capture.pcap" --csv "C:\Path\outbound.csv" --html "C:\Path\outbound.html"
Solo pcap + carpeta de salida + nombres CSV/JSON personalizados:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --output-dir "C:\Path\Reports" --csv "C:\Path\Reports\outbound.csv" --json "C:\Path\Reports\outbound.json"
Detección de actividad similar a balizas (devoluciones de llamada lentas y constantes):
python capture_outbound.py --duration 300 --beacon-min-duration 120 --beacon-min-interval 60 --beacon-max-interval 1800 --beacon-max-jitter 10 --beacon-min-packets 6 --beacon-max-rate 0.05
Detección de patrones (intervalos constantes, fluctuaciones, destinos repetidos, tamaños consistentes):
python capture_outbound.py --duration 300 --track-bytes --pattern-high-jitter 120 --pattern-repeat-destination 4 --pattern-max-byte-jitter 64 --dns-pattern-min-queries 4
Umbrales estrictos de baliza + patrones con filtrado:
python capture_outbound.py --duration 600 --filter-protocol tcp --filter-port 443 --track-bytes --beacon-min-duration 180 --beacon-min-interval 90 --beacon-max-interval 900 --beacon-max-jitter 5 --beacon-min-packets 8 --pattern-high-jitter 60 --pattern-repeat-destination 5 --pattern-max-byte-jitter 32
Captura centrada en DNS (consulta DNS rápida + patrones DNS):
python capture_outbound.py --duration 180 --dns-timeout 0.25 --dns-pattern-min-queries 5 --pattern-repeat-destination 3
outbound_connections.csvoutbound_connections.json--html "report.html"*_beacon_findings.csv / *_beacon_findings.json*_connection_patterns.csv / *_connection_patterns.json*_dns_patterns.csv / *_dns_patterns.json*_unique_connections.csv / *_unique_connections.json*_unique_processes.csv / *_unique_processes.json*_group_remote_ip*.csv/json, *_group_process*.csv/json, *_group_country*.csv/jsonRutas personalizadas de salida CSV/JSON:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --csv "C:\Path\outbound.csv" --json "C:\Path\outbound.json"
Enviar todas las salidas a una carpeta:
python capture_outbound.py --mode pcap --duration 20 --output-dir "C:\Path\Reports"
Escribir salida HTML:
python capture_outbound.py --html "outbound.html"