
Sniffa il traffico in uscita per callback sospette simili a beacon, perché se continua a tornare con regolarità, probabilmente non è colazione.
Annusa il traffico in uscita alla ricerca di callback sospetti simili a beacon, perché se continua a tornare periodicamente, probabilmente non è colazione.
Bacon Sampler è un leggero catturatore di connessioni in uscita che annusa il traffico di rete e segnala comportamenti sospetti "simili a beacon" – quei callback periodici, lenti e costanti che il malware ama per comunicare con il server di comando.
Monitora passivamente le connessioni in uscita e le ricerche DNS, poi evidenzia pattern come intervalli costanti, destinazioni ripetute, jitter anomalo e dimensioni dei byte consistenti, insomma tutto ciò che assomiglia più a un bot che riceve istruzioni che a una normale navigazione.
Pensalo come uno Scanner di Beacon, ma più gustoso: se qualcosa continua a ripresentarsi sempre alla stessa ora... stiamo assaggiando il bacon.
.mmdb) o DB-IP Lite (.mmdb).BIN)pip install -r requirements.txt
Scarica un database GeoIP e annota il percorso:
.mmdb).BIN)Se preferisci una ricerca online gratuita, puoi saltare questo passaggio e usare --geoip-online.
Elenca interfacce:
python capture_outbound.py --list-interfaces
Scegli un'interfaccia per indice:
python capture_outbound.py --interface 0
Usa più interfacce (ripetibile):
python capture_outbound.py --interface "Ethernet" --interface "Wi-Fi"
Oppure con nomi separati da virgola:
python capture_outbound.py --interfaces "Ethernet,Wi-Fi"
Cattura solo Pcap (A) con GeoIP offline:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"
Cattura Pcap + correlazione netstat (B) con GeoIP offline:
python capture_outbound.py --mode pcap_plus_netstat --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"
Unione Pcap + netstat (A+B):
python capture_outbound.py --mode both --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"
GeoIP online (gratuito, con limite di richieste, memorizzato nella cache su disco):
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipapi
GeoIP online con token IPinfo:
$env:IPINFO_TOKEN="your_token_here"
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipinfo
Oppure passa il token esplicitamente:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipinfo --geoip-online-token "your_token_here"
Regola timeout e tentativi del GeoIP online:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipapi --geoip-timeout 2.5 --geoip-retries 1
Disabilita DNS inverso (esecuzioni più veloci):
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --no-dns
Regola timeout DNS:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --dns-timeout 0.5
Limita la cattura per numero di pacchetti:
python capture_outbound.py --mode pcap --duration 60 --packet-limit 5000
Filtra per protocollo, porta remota e CIDR 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
Riepiloghi per gruppo e primi N:
python capture_outbound.py --group-by remote_ip,process --top 10
Traccia i byte totali per connessione:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --track-bytes
Disabilita output di avanzamento:
python capture_outbound.py --no-progress
Disabilita output console:
python capture_outbound.py --no-console
Unione Pcap + netstat (A+B) + GeoIP online + Scrivi 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 + cartella di output + nomi CSV/JSON personalizzati:
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"
Rilevamento di attività simili a beacon (callback lenti e costanti):
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
Rilevamento di pattern (intervalli costanti, jitter, destinazioni ripetute, dimensioni consistenti):
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
Soglie strette per beacon + pattern con filtri:
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
Cattura focalizzata su DNS (ricerca DNS veloce + pattern 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/jsonPercorsi personalizzati per output CSV/JSON:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --csv "C:\Path\outbound.csv" --json "C:\Path\outbound.json"
Invia tutti gli output in una cartella:
python capture_outbound.py --mode pcap --duration 20 --output-dir "C:\Path\Reports"
Scrivi output HTML:
python capture_outbound.py --html "outbound.html"
Scrivi un file pcap:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --pcap-out "capture.pcap"