
의심스러운 비콘 형태의 콜백을 위해 아웃바운드 트래픽을 탐지합니다. 정해진 시간마다 반복해서 돌아온다면 아침 식사가 아닐 테니까요.
아웃바운드 트래픽을 스니핑하여 의심스러운 비콘 같은 콜백을 찾아냅니다. 정해진 시간마다 계속 돌아온다면, 아침 식사는 아닐 테니까요.
Bacon Sampler는 경량 아웃바운드 연결 캐처로, 네트워크 트래픽의 지글거림을 스니핑하고 "비콘 같은" 행동(멀웨어가 본사로 전화하는 듯한 주기적이고 느린 콜백)을 플래그합니다.
수동적으로 아웃바운드 연결과 DNS 조회를 모니터링한 후, 일정한 간격, 반복되는 목적지, 이상한 지터, 일관된 바이트 크기 등 정상적인 브라우징보다는 봇이 명령을 확인하는 것처럼 보이는 패턴을 강조합니다.
Beacon Scanner의 맛있는 버전이라고 생각하세요. 무언가가 매번 같은 시간에 다시 나타난다면... 우리는 베이컨을 샘플링하는 중입니다.
.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
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"