
يراقب حركة المرور الصادرة للكشف عن استدعاءات مشبوهة تشبه الـbeacons، لأنها إذا استمرت في العودة وفق جدول زمني، فالأرجح أنها ليست وجبة إفطار.
تستنشق حركة المرور الصادرة للبحث عن استدعاءات مرتدة مشبوهة تشبه المنارات، لأنه إذا استمرت العودة وفق جدول زمني، فمن المحتمل أنها ليست فطورًا.
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"
التقاط 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 + union 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
ملخصات جماعية وأفضل 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 + union 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: السماح بـ CIDR (CIDRs) لعناوين IP البعيدة--deny-ip CIDR: رفض CIDR (CIDRs) لعناوين IP البعيدة--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: تجاوز مسار ذاكرة التخزين المؤقت JSON لـ GeoIP عبر الإنترنت--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 أو countrybeacon_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_online_cache.json في دليل المخرجات (أو دليل العمل) ما لم يتم تجاوزه باستخدام --geoip-cache-path--geoip-db-type auto يستخدم امتداد الملف: .mmdb -> MaxMind/DB-IP، .BIN -> IP2LocationUS) بدلاً من أسماء البلدان الكاملة--geoip-db، يبقى عمود remote_country فارغًا ما لم يتم استخدام --geoip-online--geoip-db و --geoip-online، يتم استخدام قاعدة البيانات--filter-port يُطبق على المنفذ البعيد (الوجهة الصادرة)--track-bytes يضيف أعمدة byte_count ويمكّن أنماط تناسق الحجم