
不審なビーコン状のコールバックを検出するため、送信トラフィックをスニッフィングします。なぜなら、スケジュール通りに戻ってくるなら、それはおそらく朝食ではないからです。
送信トラフィックをスニッフィングし、怪しいビーコン状のコールバックを検出します。なぜなら、定期的に戻ってくるなら、それはおそらく朝食ではないからです。
Bacon Samplerは軽量な送信接続キャッチャーで、ネットワークトラフィックの「焼ける音」を嗅ぎ分け、定期的で低速なコールバック(マルウェアが指令サーバーに連絡する際によく使うパターン)のような「ビーコン状」の動作にフラグを立てます。
送信接続とDNSルックアップを受動的に監視し、一定の間隔、繰り返される宛先、不自然なジッター、一貫したバイトサイズなど、通常のブラウジングとは異なり、ボットが指示を確認しに来ているように見えるパターンを強調表示します。
ビーと呼ぶにはちょっと…いや、もっと美味しいビーと呼べるでしょう。何かが毎回同じ時間に戻ってくるなら…それはベーコンを試食しているのです。
.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"
オフラインGeoIPを使用したpcapのみのキャプチャ(A):
python capture_outbound.py --mode pcap --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"
オフラインGeoIPを使用したpcap + netstatの関連付け(B):
python capture_outbound.py --mode pcap_plus_netstat --duration 20 --interface "Ethernet" --geoip-db "C:\Path\GeoLite2-Country.mmdb"
オフラインGeoIPを使用した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
IPinfoトークンを使用したオンラインGeoIP:
$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
プロトコル、リモートポート、IP CIDRでフィルタリング:
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
グループサマリーと上位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ファイルの書き出し:
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 DBタイプ(デフォルト:auto)--geoip-online {ipapi,ip-api,ipinfo}:無料オンラインGeoIPサービスを使用(レート制限あり)--geoip-online-token TOKEN:オンラインGeoIPプロバイダーのAPIトークン(例: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_portremote_ip、remote_port、remote_hostname、remote_fqdn、remote_countrypid、process_name、packet_countduration_seconds、avg_interval_seconds、interval_jitter_secondsfirst_seen、last_seen、sourcebyte_count(--track-bytes が有効な場合)派生出力には以下が含まれます:
remote_ip、remote_port、remote_hostname、remote_fqdn、remote_countrypid、process_name、connection_count、unique_remote_ipsremote_ip、process、または country ごとのカウントとユニークメトリクスbeacon_reasonpattern_type/pattern_reason、byte_min/byte_max/byte_range(--track-bytes 有効時)、および宛先合計dns_query、query_count、リゾルバIP/ポート、パターン詳細、および byte_min/byte_max/byte_range(--track-bytes 有効時)--mode pcap_plus_netstat はキャプチャした接続にPID/プロセスデータを追加するだけです。--mode both はnetstatのみの接続を最終出力に追加します。2 で終了します。--log-json は警告/エラーをJSON行としてフォーマットします(取り込みに便利)。--duration は秒単位です。--packet-limit は、時間が残っていてもNパケット後にキャプチャを停止します。--no-dns は逆DNS解決をスキップします(ホスト名/FQDNは空になります)。--dns-timeout はDNSルックアップのタイムアウト(秒)を制御します。--geoip-cache-path で上書きされない限り、出力ディレクトリ(または作業ディレクトリ)の geoip_online_cache.json にキャッシュされます。--geoip-db-type auto はファイル拡張子を使用します:.mmdb -> MaxMind/DB-IP、.BIN -> IP2Location。US)を返します。--geoip-db を省略した場合、--geoip-online を使用しない限り、remote_country 列は空のままになります。--geoip-db と --geoip-online の両方が設定されている場合、データベースが使用されます。--filter-port はリモートポート(送信先)に適用されます。--track-bytes は byte_count 列を追加し、サイズ一貫性パターンを有効にします。