
Перехватывает исходящий трафик на предмет подозрительных, похожих на маяки обратных вызовов, потому что если он возвращается по расписанию, это, вероятно, не завтрак.
Отслеживает исходящий трафик на предмет подозрительных, похожих на маячки обратных вызовов, потому что если что-то регулярно возвращается по расписанию — это, скорее всего, не завтрак.
Bacon Sampler — это лёгкий перехватчик исходящих соединений, который «чует запах» вашего сетевого трафика и помечает подозрительное поведение, напоминающее маячки — те периодические, медленные и малозаметные обратные вызовы, которые так любит использовать вредоносное ПО для связи с «домом».
Он пассивно отслеживает исходящие соединения и DNS-запросы, а затем выделяет такие паттерны, как постоянные интервалы, повторяющиеся адресаты, необычный джиттер и одинаковые размеры пакетов — в общем, всё, что больше похоже на проверку связи ботом за инструкциями, чем на обычный просмотр веб-страниц.
Воспринимайте его как сканер маяков (Beacon Scanner), только вкуснее: если что-то возвращается в одно и то же время каждый раз... значит, мы пробуем бекон (sampling the bacon).
.mmdb) или DB-IP Lite (.mmdb).BIN)pip install -r requirements.txt
Скачайте базу данных GeoIP и запомните путь:
.mmdb).BIN)Если предпочитаете бесплатный онлайн-сервис, можно пропустить этот шаг и использовать --geoip-online.
Перечислить интерфейсы:
python capture_outbound.py --list-interfaces
Выбрать интерфейс по индексу:
python capture_outbound.py --interface 0
Использовать несколько интерфейсов (повторяемый параметр):
python capture_outbound.py --interface "Ethernet" --interface "Wi-Fi"
Или с именами через запятую:
python capture_outbound.py --interfaces "Ethernet,Wi-Fi"
Захват только pcap (A) с офлайн GeoIP:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"
Корреляция pcap + netstat (B) с офлайн GeoIP:
python capture_outbound.py --mode pcap_plus_netstat --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"
Объединение pcap + netstat (A+B):
python capture_outbound.py --mode both --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"
Онлайн GeoIP (бесплатно, с ограничением скорости, кэшируется на диск):
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipapi
Онлайн GeoIP с токеном IPinfo:
$env:IPINFO_TOKEN="your_token_here"
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipinfo
Или передать токен явно:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipinfo --geoip-online-token "your_token_here"
Настройка тайм-аута и повторных попыток онлайн GeoIP:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipapi --geoip-timeout 2.5 --geoip-retries 1
Отключить обратный DNS (для более быстрой работы):
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --no-dns
Настройка тайм-аута DNS:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --dns-timeout 0.5
Ограничить захват по количеству пакетов:
python capture_outbound.py --mode pcap --duration 60 --packet-limit 5000
Фильтровать по протоколу, удалённому порту и 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
Групповые сводки и top N:
python capture_outbound.py --group-by remote_ip,process --top 10
Отслеживать общее количество байт на соединение:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --track-bytes
Отключить вывод прогресса:
python capture_outbound.py --no-progress
Отключить вывод в консоль:
python capture_outbound.py --no-console
Объединение pcap + netstat (A+B) + онлайн GeoIP + запись 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"
Только pcap + папка вывода + пользовательские имена CSV/JSON:
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"
Обнаружение активности, похожей на маячки (медленные обратные вызовы):
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
Обнаружение паттернов (постоянные интервалы, джиттер, повторяющиеся адресаты, одинаковые размеры):
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
Жёсткие пороги маячков и паттернов с фильтрацией:
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
Захват, ориентированный на DNS (быстрый DNS-запрос + 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/jsonПользовательские пути для CSV/JSON:
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --csv "C:\Path\outbound.csv" --json "C:\Path\outbound.json"
Отправить все выводы в папку:
python capture_outbound.py --mode pcap --duration 20 --output-dir "C:\Path\Reports"
Записать HTML-вывод:
python capture_outbound.py --html "outbound.html"
Записать pcap-файл: