Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
BaconSampler — Перехватывает исходящий трафик на предмет подозрительных, похожих на маяки обратных вызовов, потому что если он возвращается по расписанию, это, вероятно, не завтрак. | Kitploit
Инструменты/GitHubGitHub/logisek/baconsampler
Сниффинг и анализ пакетовРазведкаФорензикаСбор информацииСетевая безопасностьРазведка угрозОбнаружение ВторженийАнализ DNSАнализ Журналов
GitHublogisek/baconsampler

BaconSampler

Перехватывает исходящий трафик на предмет подозрительных, похожих на маяки обратных вызовов, потому что если он возвращается по расписанию, это, вероятно, не завтрак.

2037 месяцев назадПроверено Kitploit
Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Bacon Sampler

Отслеживает исходящий трафик на предмет подозрительных, похожих на маячки обратных вызовов, потому что если что-то регулярно возвращается по расписанию — это, скорее всего, не завтрак.

Исходящие соединения (Windows + libpcap)

Bacon Sampler — это лёгкий перехватчик исходящих соединений, который «чует запах» вашего сетевого трафика и помечает подозрительное поведение, напоминающее маячки — те периодические, медленные и малозаметные обратные вызовы, которые так любит использовать вредоносное ПО для связи с «домом».

Он пассивно отслеживает исходящие соединения и DNS-запросы, а затем выделяет такие паттерны, как постоянные интервалы, повторяющиеся адресаты, необычный джиттер и одинаковые размеры пакетов — в общем, всё, что больше похоже на проверку связи ботом за инструкциями, чем на обычный просмотр веб-страниц.

Воспринимайте его как сканер маяков (Beacon Scanner), только вкуснее: если что-то возвращается в одно и то же время каждый раз... значит, мы пробуем бекон (sampling the bacon).

Возможности

  • Захват pcap с опциональной корреляцией PID через netstat
  • Обратный DNS и GeoIP (локальная база данных или бесплатный онлайн-сервис)
  • Фильтры по протоколу, диапазонам удалённых портов и CIDR-адресам IP
  • Групповые сводки (по удалённому IP, процессу или стране) с опциональным ограничением top N
  • Обнаружение активности, похожей на маячки (медленные обратные вызовы)
  • Выявление паттернов подозрительного поведения соединений и DNS-запросов
  • Экспорт в CSV/JSON с производными сводными файлами
  • Опциональный HTML-отчёт со всеми таблицами

Предварительные требования

  • Windows 11
  • Python 3.10+
  • Npcap (рекомендуется) с опцией «Install Npcap in WinPcap API-compatible Mode»
  • База данных GeoIP для офлайн-определения страны по IP:
    • MaxMind GeoLite2 Country (.mmdb) или DB-IP Lite (.mmdb)
    • IP2Location LITE (.BIN)
  • Запускайте PowerShell от имени Администратора для полной видимости

Установка

root@kitploit:~
pip install -r requirements.txt

Скачайте базу данных GeoIP и запомните путь:

  • GeoLite2 или DB-IP Lite (.mmdb)
  • IP2Location LITE (.BIN)

Если предпочитаете бесплатный онлайн-сервис, можно пропустить этот шаг и использовать --geoip-online.

Использование

Примеры использования (популярные комбинации)

Перечислить интерфейсы:

root@kitploit:~
python capture_outbound.py --list-interfaces

Выбрать интерфейс по индексу:

root@kitploit:~
python capture_outbound.py --interface 0

Использовать несколько интерфейсов (повторяемый параметр):

root@kitploit:~
python capture_outbound.py --interface "Ethernet" --interface "Wi-Fi"

Или с именами через запятую:

root@kitploit:~
python capture_outbound.py --interfaces "Ethernet,Wi-Fi"

Захват только pcap (A) с офлайн GeoIP:

root@kitploit:~
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"

Корреляция pcap + netstat (B) с офлайн GeoIP:

root@kitploit:~
python capture_outbound.py --mode pcap_plus_netstat --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"

Объединение pcap + netstat (A+B):

root@kitploit:~
python capture_outbound.py --mode both --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"

Онлайн GeoIP (бесплатно, с ограничением скорости, кэшируется на диск):

root@kitploit:~
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipapi

Онлайн GeoIP с токеном IPinfo:

root@kitploit:~
$env:IPINFO_TOKEN="your_token_here"
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipinfo

Или передать токен явно:

root@kitploit:~
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipinfo --geoip-online-token "your_token_here"

Настройка тайм-аута и повторных попыток онлайн GeoIP:

root@kitploit:~
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-online ipapi --geoip-timeout 2.5 --geoip-retries 1

Отключить обратный DNS (для более быстрой работы):

root@kitploit:~
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --no-dns

Настройка тайм-аута DNS:

root@kitploit:~
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --dns-timeout 0.5

Ограничить захват по количеству пакетов:

root@kitploit:~
python capture_outbound.py --mode pcap --duration 60 --packet-limit 5000

Фильтровать по протоколу, удалённому порту и CIDR IP:

root@kitploit:~
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:

root@kitploit:~
python capture_outbound.py --group-by remote_ip,process --top 10

Отслеживать общее количество байт на соединение:

root@kitploit:~
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --track-bytes

Отключить вывод прогресса:

root@kitploit:~
python capture_outbound.py --no-progress

Отключить вывод в консоль:

root@kitploit:~
python capture_outbound.py --no-console

Примеры использования (продвинутые комбинации)

Объединение pcap + netstat (A+B) + онлайн GeoIP + запись pcap + CSV + HTML:

root@kitploit:~
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:

root@kitploit:~
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"

Обнаружение активности, похожей на маячки (медленные обратные вызовы):

root@kitploit:~
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

Обнаружение паттернов (постоянные интервалы, джиттер, повторяющиеся адресаты, одинаковые размеры):

root@kitploit:~
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

Жёсткие пороги маячков и паттернов с фильтрацией:

root@kitploit:~
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-паттерны):

root@kitploit:~
python capture_outbound.py --duration 180 --dns-timeout 0.25 --dns-pattern-min-queries 5 --pattern-repeat-destination 3

Выводы

  • По умолчанию таблица в консоли
  • CSV: outbound_connections.csv
  • JSON: outbound_connections.json
  • HTML: --html "report.html"
  • Результаты обнаружения маячков: *_beacon_findings.csv / *_beacon_findings.json
  • Паттерны соединений: *_connection_patterns.csv / *_connection_patterns.json
  • DNS-паттерны: *_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:

root@kitploit:~
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --csv "C:\Path\outbound.csv" --json "C:\Path\outbound.json"

Отправить все выводы в папку:

root@kitploit:~
python capture_outbound.py --mode pcap --duration 20 --output-dir "C:\Path\Reports"

Записать HTML-вывод:

root@kitploit:~
python capture_outbound.py --html "outbound.html"

Записать pcap-файл:

root@kitploit:~
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --pcap-out "capture.pcap"

Параметры командной строки

  • --mode {pcap,pcap_plus_netstat,both}: Стратегия захвата (по умолчанию: pcap)
  • --duration SECONDS: Продолжительность захвата (по умолчанию: 15)
  • --packet-limit COUNT: Остановить после N пакетов (0 = без ограничения)
  • --list-interfaces: Показать интерфейсы Npcap и выйти
  • --interface NAME: Имя интерфейса захвата (повторяемый параметр)
  • --interfaces "NAME,NAME": Имена интерфейсов через запятую
  • --filter-protocol tcp,udp: Фильтр по протоколу (повтор или через запятую)
  • --filter-port 80,443,1000-2000: Фильтры удалённых портов
  • --allow-ip CIDR: Разрешить удалённые IP CIDR (один или несколько)
  • --deny-ip CIDR: Запретить удалённые IP CIDR (один или несколько)
  • --group-by remote_ip,process,country: Вывод групповой сводки
  • --top N: Ограничить групповые сводки первыми N строками
  • --beacon-min-duration SECONDS: Минимальная длительность для обнаружения маячка
  • --beacon-min-packets COUNT: Минимальное количество пакетов для обнаружения маячка
  • --beacon-min-interval SECONDS: Минимальный средний интервал для обнаружения маячка
  • --beacon-max-interval SECONDS: Максимальный средний интервал для обнаружения маячка
  • --beacon-max-jitter SECONDS: Максимальный джиттер интервала для обнаружения маячка
  • --beacon-max-rate PPS: Максимум пакетов в секунду для обнаружения маячка
  • --pattern-high-jitter SECONDS: Порог джиттера интервала для выявления случайных паттернов
  • --pattern-repeat-destination COUNT: Минимальное число соединений для пометки повторяющихся адресатов
  • --pattern-max-byte-jitter BYTES: Максимальный разброс размера байт для определения постоянства
  • --dns-pattern-min-queries COUNT: Минимальное количество DNS-запросов для пометки паттернов
  • --csv PATH: Путь для вывода CSV (по умолчанию: outbound_connections.csv)
  • --json PATH: Путь для вывода JSON (по умолчанию: outbound_connections.json)
  • --html PATH: Путь для вывода HTML-отчёта
  • --pcap-out PATH: Запись захваченных пакетов в pcap-файл
  • --output-dir PATH: Запись всех выходных файлов в эту директорию
  • --no-console: Отключить вывод таблицы в консоль
  • --no-progress: Отключить вывод прогресса
  • --log-json: Выводить предупреждения/ошибки в виде JSON-строк в stderr
  • --track-bytes: Отслеживать общее количество байт на соединение, если доступно
  • --geoip-db PATH: Путь к базе данных GeoIP (.mmdb или IP2Location .BIN)
  • --geoip-db-type {auto,maxmind,dbip,ip2location}: Тип базы GeoIP (по умолчанию: auto)
  • --geoip-online {ipapi,ip-api,ipinfo}: Использовать бесплатный онлайн-сервис GeoIP (с ограничением скорости)
  • --geoip-online-token TOKEN: Токен API для провайдера онлайн GeoIP (например, IPinfo)
  • --geoip-cache-path PATH: Переопределить путь к файлу кэша онлайн GeoIP JSON
  • --geoip-timeout SECONDS: Тайм-аут запроса онлайн GeoIP (по умолчанию: 3.0)
  • --geoip-retries COUNT: Количество повторных попыток онлайн GeoIP (по умолчанию: 2)
  • --no-dns: Отключить обратный DNS-запрос
  • --dns-timeout SECONDS: Тайм-аут DNS-запроса (по умолчанию: 2.0)

Выходные данные

Основные выходные данные (--csv/--json) содержат поля:

  • protocol, local_ip, local_port
  • remote_ip, remote_port, remote_hostname, remote_fqdn, remote_country
  • pid, process_name, packet_count
  • duration_seconds, avg_interval_seconds, interval_jitter_seconds
  • first_seen, last_seen, source
  • byte_count (если включён --track-bytes)

Производные выходные данные включают:

  • Уникальные соединения: remote_ip, remote_port, remote_hostname, remote_fqdn, remote_country
  • Уникальные процессы: pid, process_name, connection_count, unique_remote_ips
  • Групповые сводки: количество и уникальные метрики для remote_ip, process или country
  • Результаты обнаружения маячков: поля основных выходных данных плюс beacon_reason
  • Паттерны соединений: поля основных выходных данных плюс pattern_type/pattern_reason, byte_min/byte_max/byte_range (с --track-bytes) и общее количество адресатов
  • DNS-паттерны: dns_query, query_count, IP/порт резолвера, детали паттерна и byte_min/byte_max/byte_range (с --track-bytes)

Примечания

  • Используйте PowerShell от имени Администратора для захвата трафика с повышенными привилегиями и сопоставления PID.
  • --mode pcap_plus_netstat только дополняет захваченные соединения данными PID/процесса.
  • --mode both добавляет в итоговый вывод соединения, полученные только через netstat.
  • Если захват пакетов не удался или отсутствует Npcap/scapy, скрипт переключается на результаты только netstat и завершается с кодом 2 после записи выходных данных.
  • --log-json форматирует предупреждения/ошибки в виде JSON-строк (полезно для машинного ввода).
  • --duration задаётся в секундах.
  • --packet-limit останавливает захват после N пакетов, даже если время ещё не вышло.
  • --no-dns пропускает обратное DNS-разрешение (hostname/FQDN будут пусты).
  • --dns-timeout управляет тайм-аутом DNS-запроса (секунды).
  • Результаты онлайн GeoIP кэшируются в geoip_online_cache.json в выходной директории (или рабочей директории), если не указано другое с помощью --geoip-cache-path.
  • --geoip-db-type auto определяет тип по расширению файла: .mmdb -> MaxMind/DB-IP, .BIN -> IP2Location.
  • IPinfo возвращает коды стран ISO (например, US) вместо полных названий стран.
  • Обнаружение DNS-паттернов основано на пакетах DNS-запросов, захваченных в режиме pcap.
  • Если --geoip-db опущен, столбец remote_country остаётся пустым, если не используется --geoip-online.
  • Если заданы и --geoip-db, и --geoip-online, используется база данных.
  • --filter-port применяется к удалённому порту (исходящий адресат).
  • --track-bytes добавляет столбцы byte_count и включает паттерны постоянства размера.
Скачать инструмент