
APT-Hunter é uma ferramenta de Threat Hunting para logs de eventos do Windows, criada com a mentalidade de purple team para fornecer detecção de movimentos de APT escondidos no mar de logs de eventos do Windows, a fim de reduzir o tempo para descobrir atividades suspeitas.
Caça a ameaças em logs de eventos do Windows, construída com uma mentalidade purple-team.
O APT-Hunter é uma ferramenta de caça a ameaças para logs de eventos do Windows. Utiliza regras de deteção predefinidas e estatísticas de logs para revelar atividade de APT escondida em grandes volumes de eventos, reduzindo o tempo necessário para descobrir comportamentos suspeitos. É especialmente eficaz para avaliações de compromisso.
Os resultados são escritos como uma linha temporal que pode ser analisada diretamente no Excel, Timeline Explorer, Timesketch e ferramentas semelhantes, ou explorada no painel web integrado com triagem opcional por LLM local.
Descarregue binários compilados na página de Releases, ou execute a partir do código-fonte (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 aceita um diretório ou um único ficheiro. Adicione -web para abrir o painel quando a análise terminar.





Execute python3 APT-Hunter.py -h para a lista completa. Opções principais:
| Opção | Descrição |
|---|---|
-p, --path | Ficheiro ou pasta de logs a analisar |
-o, --out | Nome / diretório de saída |
-start, -end | Restringir a linha temporal (formato ISO) |
-tz | Fuso horário (local ou, por exemplo, Asia/Dubai) |
-cores | Núcleos de CPU a utilizar (predefinição: metade dos disponíveis) |
-hunt, -huntfile, -eid | Caçar por string/regex, ficheiro de regex ou Event ID |
-sigma, -rules | Caçar com regras Sigma convertidas para JSON |
-o365hunt, -o365rules, -o365raw | Caça em logs de auditoria do Office 365 |
-procexec, -logon, -objaccess, -allreport | Relatórios adicionais |
-web, -webview, -webhost, -webport | Iniciar o painel web |
-llm, -llm-provider, -llm-url, -llm-model, -llm-key, -llm-severity, -llm-batch, -llm-context | Análise com LLM local |
Analisar uma pasta de ficheiros EVTX (os tipos de log são detetados automaticamente):
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport
Focar num intervalo temporal:
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport -start 2022-04-03 -end 2022-04-05T20:56
Caçar com uma string, uma regex ou um ficheiro de regexes:
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
Caçar com regras Sigma:
python3 APT-Hunter.py -sigma -rules rules.json -p /opt/wineventlogs/ -o Project2
Obter as regras Sigma mais recentes convertidas para o APT-Hunter (escreve rules.json):
./Get_Latest_Sigma_Rules.sh
Navegue por um relatório gerado no browser: filtragem, gráficos, linha temporal de incidentes e exportação de relatório de 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
Aceitar uma conclusão de triagem fixa-a à linha temporal de incidentes juntamente com as suas evidências, anexadas como sub-eventos recolhíveis: ficam sob a conclusão na tabela em vez de intercalados com todo o resto, e são mantidos fora dos gráficos da linha temporal para que os gráficos permaneçam legíveis. Remover uma conclusão remove também os seus sub-eventos.
O servidor liga-se a 0.0.0.0:5000 por predefinição. Use --host / --port (ou -webhost / -webport) para alterar isto, por exemplo --host 127.0.0.1 para o manter local. As conclusões revistas e a linha temporal são mantidas quando a cache do relatório é reconstruída.
