
APT-Hunter는 윈도우 이벤트 로그를 위한 위협 헌팅 도구로, 퍼플 팀 마인드셋으로 제작되어 윈도우 이벤트 로그의 바다에 숨겨진 APT 움직임을 탐지하여 의심스러운 활동을 발견하는 시간을 단축시킵니다.
퍼플팀 관점으로 개발된 Windows 이벤트 로그 위협 헌팅.
APT-Hunter는 Windows 이벤트 로그를 위한 위협 헌팅 도구입니다. 사전 정의된 탐지 규칙과 로그 통계를 사용하여 대량의 이벤트 속에 숨겨진 APT 활동을 드러내고, 의심스러운 행위를 찾아내는 데 필요한 시간을 단축합니다. 침해 평가(compromise assessment)에 특히 효과적입니다.
결과는 Excel, Timeline Explorer, Timesketch 및 유사한 도구에서 직접 분석할 수 있는 타임라인으로 작성되며, 선택적 로컬 LLM 트리아지를 갖춘 내장 웹 대시보드에서 탐색할 수도 있습니다.
Releases 페이지에서 컴파일된 바이너리를 다운로드하거나, 소스에서 실행하세요(Python 3.8+):
git clone https://github.com/ahmedkhlief/APT-Hunter.git
cd APT-Hunter
python3 -m pip install -r requirements.txt
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport
-p는 디렉터리 또는 단일 파일을 받습니다. 분석이 끝났을 때 대시보드를 열려면 -web을 추가하세요.





전체 목록은 python3 APT-Hunter.py -h를 실행하세요. 주요 옵션:
| Option | Description |
|---|---|
-p, --path | 분석할 로그 파일 또는 폴더 |
-o, --out | 출력 이름 / 디렉터리 |
-start, -end | 타임라인 제한(ISO 형식) |
-tz | 시간대(local 또는 예: Asia/Dubai) |
-cores | 사용할 CPU 코어 수(기본값: 사용 가능한 코어의 절반) |
-hunt, -huntfile, -eid | 문자열/정규식, 정규식 파일 또는 Event ID로 헌팅 |
-sigma, -rules | JSON으로 변환된 Sigma 규칙으로 헌팅 |
-o365hunt, -o365rules, -o365raw | Office 365 감사 로그 헌팅 |
-procexec, -logon, -objaccess, -allreport | 추가 보고서 |
-web, -webview, -webhost, -webport | 웹 대시보드 실행 |
-llm, -llm-provider, -llm-url, -llm-model, -llm-key, -llm-severity, -llm-batch, -llm-context | 로컬 LLM 분석 |
EVTX 파일 폴더 분석(로그 유형은 자동 감지):
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport
시간 범위 지정:
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport -start 2022-04-03 -end 2022-04-05T20:56
문자열, 정규식 또는 정규식 파일로 헌팅:
python3 APT-Hunter.py -hunt "psexec" -p /opt/wineventlogs/ -o Project2
python3 APT-Hunter.py -huntfile "(psexec|psexesvc)" -p /opt/wineventlogs/ -o Project2
python3 APT-Hunter.py -huntfile huntfile.txt -p /opt/wineventlogs/ -o Project2
Sigma 규칙으로 헌팅:
python3 APT-Hunter.py -sigma -rules rules.json -p /opt/wineventlogs/ -o Project2
APT-Hunter용으로 변환된 최신 Sigma 규칙 가져오기(rules.json 작성):
./Get_Latest_Sigma_Rules.sh
브라우저에서 생성된 보고서를 탐색하세요: 필터링, 차트, 인시던트 타임라인, IR 보고서 내보내기.
python3 run_webapp.py <Output>/<Output>_Report.xlsx # or pass the output directory
python3 APT-Hunter.py -p <logs> -o <Output> -web # analyse, then open the dashboard
python3 APT-Hunter.py -webview <Output> # open an existing report
트리아지 발견을 수락하면 해당 증거와 함께 인시던트 타임라인에 고정되며, 접을 수 있는 하위 이벤트로 첨부됩니다. 이들은 다른 모든 것과 뒤섞이지 않고 테이블에서 발견 아래에 위치하며, 타임라인 차트에서는 제외되어 차트가 읽기 쉬운 상태로 유지됩니다. 발견을 제거하면 그 하위 이벤트도 함께 제거됩니다.
서버는 기본적으로 0.0.0.0:5000에 바인딩됩니다. 이를 변경하려면 --host / --port(또는 -webhost / -webport)를 사용하세요. 예를 들어 로컬로 유지하려면 --host 127.0.0.1을 사용합니다. 보고서 캐시가 재구성될 때 검토된 발견과 타임라인은 유지됩니다.

메인 대시보드: 총 이벤트 및 심각도 수, 심각도 분석, 가장 많이 트리거된 탐지 규칙, 일별 이벤트 볼륨. 사이드바에는 보고서의 모든 이벤트 로그와 요약 테이블이 나열됩니다.

인시던트 타임라인: 고정된 발견을 시간별로 표시하고 심각도에 따라 색상으로 구분합니다. 바쁜 구간을 확대/이동하고, AI 요약을 생성하고, IR 보고서 또는 CSV를 내보낼 수 있습니다.

시간순 타임라인: 공격 체인이 하위 이벤트로 확장되고, 세부 정보 패널에 내러티브, MITRE 기법, 점수가 표시됩니다.
인시던트 타임라인 차트는 확대/축소가 가능하여 몇 분 또는 몇 초 간격의 이벤트 폭주도 읽기 쉬운 상태로 유지됩니다: 차트를 드래그하여 구간을 확대하고, Shift+드래그로 이동하고, Ctrl/Cmd+휠로 커서 기준 확대/축소하거나, 아래의 개요 스트립을 사용하세요. 레이블은 절대 겹치지 않으며, 맞지 않는 레이블은 숨겨지고, 점 위에 마우스를 올리면 그 위에 쌓인 모든 이벤트가 나열됩니다.
로컬 모델을 사용하여 탐지된 이벤트의 악성 여부를 명령줄에서 점수화:
python3 APT-Hunter.py -p <logs> -o <Output> -llm -llm-provider ollama -llm-model llama3 -llm-severity High
또는 대시보드에서 이벤트별로(확인, 설명, 상관 분석). 대시보드의 Settings 페이지에서 제공자(Ollama / LM Studio / llama.cpp), 모델, URL, 타임아웃을 구성하세요. 모든 OpenAI 호환 로컬 서버가 작동하며, 클라우드 서비스로 데이터가 전송되지 않습니다.
대시보드 사이드바의 Agentic Triage는 수천 개의 경보를 짧은 발견 목록으로 바꿉니다: