
APT-Hunter — это инструмент поиска угроз (Threat Hunting) для журналов событий Windows, созданный с подходом фиолетовой команды (purple team) для обнаружения движений APT, скрытых в море журналов событий Windows, чтобы сократить время выявления подозрительной активности.
Threat hunting for Windows event logs, built with a purple-team mindset.
APT-Hunter — это инструмент threat hunting для журналов событий Windows. Он использует предопределённые правила обнаружения и статистику журналов, чтобы выявлять активность APT, скрытую в больших объёмах событий, сокращая время, необходимое для обнаружения подозрительного поведения. Он особенно эффективен при оценке компрометации.
Результаты записываются в виде таймлайна, который можно анализировать непосредственно в 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 для полного списка. Основные параметры:
| Параметр | Описание |
|---|---|
-p, --path | Файл или папка с журналами для анализа |
-o, --out | Имя / каталог для выходных данных |
-start, -end | Ограничить таймлайн (формат ISO) |
-tz | Часовой пояс (local или, например, Asia/Dubai) |
-cores | Используемые ядра CPU (по умолчанию: половина доступных) |
-hunt, -huntfile, -eid | Hunting по строке/регулярному выражению, файлу регулярных выражений или Event ID |
-sigma, -rules | Hunting с правилами Sigma, преобразованными в JSON |
-o365hunt, -o365rules, -o365raw | Hunting по журналам аудита 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
Hunting по строке, регулярному выражению или файлу регулярных выражений:
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
Hunting с правилами Sigma:
python3 APT-Hunter.py -sigma -rules rules.json -p /opt/wineventlogs/ -o Project2
Получение последних правил Sigma, преобразованных для APT-Hunter (создаёт rules.json):
./Get_Latest_Sigma_Rules.sh
Просмотр сгенерированного отчёта в браузере: фильтрация, графики, таймлайн инцидента и экспорт IR-отчёта.
python3 run_webapp.py <Output>/<Output>_Report.xlsx # или передайте каталог с выходными данными
python3 APT-Hunter.py -p <logs> -o <Output> -web # анализ, затем открытие панели
python3 APT-Hunter.py -webview <Output> # открыть существующий отчёт
Принятие находки сортировки закрепляет её на таймлайне инцидента вместе с её доказательствами, прикреплёнными в виде сворачиваемых подсобытий: они располагаются под находкой в таблице, а не чередуются со всем остальным, и не отображаются на графиках таймлайна, чтобы графики оставались читаемыми. Удаление находки удаляет и её подсобытия.
По умолчанию сервер привязывается к 0.0.0.0:5000. Используйте --host / --port (или -webhost / -webport), чтобы изменить это, например --host 127.0.0.1, чтобы оставить его локальным. Проверенные находки и таймлайн сохраняются при перестроении кэша отчёта.