Volver a actualizaciones
Nuevo releaseSep 21, 2026

APT-Hunter V4.0

APT-Hunter es una herramienta de caza de amenazas (Threat Hunting) para registros de eventos de Windows, creada con mentalidad de equipo púrpura (purple team) para detectar movimientos de APT ocultos en el mar de registros de eventos de Windows, con el fin de reducir el tiempo para descubrir actividad sospechosa.

Compartir

APT-Hunter

APT-Hunter

Búsqueda de amenazas en registros de eventos de Windows, creada con una mentalidad de equipo púrpura.

Release Downloads Stars Contributors Python 3.8+ License

APT-Hunter es una herramienta de búsqueda de amenazas para registros de eventos de Windows. Utiliza reglas de detección predefinidas y estadísticas de registros para exponer actividad de APT oculta en grandes volúmenes de eventos, reduciendo el tiempo necesario para descubrir comportamiento sospechoso. Es especialmente eficaz para evaluaciones de compromiso.

Los resultados se escriben como una línea de tiempo que se puede analizar directamente en Excel, Timeline Explorer, Timesketch y herramientas similares, o explorar en el panel web integrado con triaje opcional mediante LLM local.

Tabla de Contenidos

Características

  • Detección basada en reglas en Security, System, Sysmon, PowerShell, Defender, WinRM, Scheduled Tasks, Terminal Services y más; el tipo de registro se detecta automáticamente.
  • Motor de multiprocesamiento para el análisis rápido de grandes conjuntos de registros.
  • Búsqueda por cadena, regex o archivo de regex, además de soporte para reglas Sigma.
  • Búsqueda en registros de auditoría de Office 365.
  • Salida de línea de tiempo como Excel, CSV (compatible con Timesketch) e informes dedicados de inicio de sesión, ejecución de procesos y acceso a objetos.
  • Panel web con filtrado, gráficos, una línea de tiempo de incidentes y exportación de informes de IR (Markdown / .docx).
  • Análisis con LLM local a través de cualquier servidor compatible con OpenAI (Ollama, LM Studio, llama.cpp). Nada sale de tu máquina.
  • Triaje agéntico que agrupa miles de alertas en una lista corta y revisable de hallazgos.

Instalación

Descarga los binarios compilados desde la página de Releases, o ejecuta desde el código fuente (Python 3.8+):

git clone https://github.com/ahmedkhlief/APT-Hunter.git
cd APT-Hunter
python3 -m pip install -r requirements.txt

Inicio Rápido

python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport

-p acepta un directorio o un único archivo. Añade -web para abrir el panel cuando finalice el análisis.

APT-Hunter Help

APT-Hunter analysing with all reports

APT-Hunter command-line output

APT-Hunter Excel output

APT-Hunter CSV output with Timesketch

Opciones de Línea de Comandos

Ejecuta python3 APT-Hunter.py -h para ver la lista completa. Opciones principales:

OpciónDescripción
-p, --pathArchivo o carpeta de registros a analizar
-o, --outNombre / directorio de salida
-start, -endRestringir la línea de tiempo (formato ISO)
-tzZona horaria (local o p. ej. Asia/Dubai)
-coresNúcleos de CPU a usar (por defecto: la mitad de los disponibles)
-hunt, -huntfile, -eidBuscar por cadena/regex, archivo de regex o Event ID
-sigma, -rulesBuscar con reglas Sigma convertidas a JSON
-o365hunt, -o365rules, -o365rawBúsqueda en registros de auditoría de Office 365
-procexec, -logon, -objaccess, -allreportInformes adicionales
-web, -webview, -webhost, -webportIniciar el panel web
-llm, -llm-provider, -llm-url, -llm-model, -llm-key, -llm-severity, -llm-batch, -llm-contextAnálisis con LLM local

Ejemplos

Analizar una carpeta de archivos EVTX (los tipos de registro se detectan automáticamente):

python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport

Centrarse en un intervalo de tiempo:

python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport -start 2022-04-03 -end 2022-04-05T20:56

Buscar con una cadena, una regex o un archivo de regex:

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

Buscar con reglas Sigma:

python3 APT-Hunter.py -sigma -rules rules.json -p /opt/wineventlogs/ -o Project2

Obtener las últimas reglas de Sigma convertidas para APT-Hunter (escribe rules.json):

./Get_Latest_Sigma_Rules.sh

Panel Web

Explora un informe generado en el navegador: filtrado, gráficos, línea de tiempo de incidentes y exportación de informes de IR.

python3 run_webapp.py <Output>/<Output>_Report.xlsx     # o pasa el directorio de salida
python3 APT-Hunter.py -p <logs> -o <Output> -web         # analiza y luego abre el panel
python3 APT-Hunter.py -webview <Output>                  # abre un informe existente

Aceptar un hallazgo de triaje lo fija a la línea de tiempo de incidentes junto con su evidencia, adjuntada como sub-eventos plegables: se sitúan bajo el hallazgo en la tabla en lugar de intercalarse con todo lo demás, y se mantienen fuera de los gráficos de la línea de tiempo para que los gráficos sigan siendo legibles. Eliminar un hallazgo elimina también sus sub-eventos.

El servidor se enlaza a 0.0.0.0:5000 por defecto. Usa --host / --port (o -webhost / -webport) para cambiarlo, por ejemplo --host 127.0.0.1 para mantenerlo local. Los hallazgos revisados y la línea de tiempo se conservan cuando se reconstruye la caché del informe.

Main dashboard

Panel principal: total de eventos y recuentos de severidad, desglose de severidad, reglas de detección más activadas y volumen diario de eventos. La barra lateral lista cada registro de eventos y tabla de resumen del informe.

Incident timeline plot

Línea de Tiempo de Incidentes: hallazgos fijados representados por tiempo y codificados por color según severidad. Haz zoom y desplázate por los tramos más densos, genera un resumen ejecutivo con IA y exporta el informe de IR o CSV.

Incident timeline event details

Línea de tiempo cronológica: una cadena de ataque se expande en sus sub-eventos, y el panel de detalles muestra la narrativa, las técnicas MITRE y la puntuación.

El gráfico de la línea de tiempo de incidentes permite zoom, de modo que las ráfagas de eventos separados por minutos o segundos siguen siendo legibles: arrastra sobre el gráfico para hacer zoom en un tramo, Shift+arrastrar para desplazarte, Ctrl/Cmd+rueda para hacer zoom alrededor del cursor, o usa la franja de vista general situada debajo. Las etiquetas nunca se superponen; las que no caben se ocultan, y al pasar el cursor sobre un punto se listan todos los eventos apilados en él.

Análisis con LLM Local

Puntúa los eventos detectados según su grado de maliciosidad usando un modelo local, desde la línea de comandos:

python3 APT-Hunter.py -p <logs> -o <Output> -llm -llm-provider ollama -llm-model llama3 -llm-severity High

O por evento desde el panel (comprobar, explicar, correlacionar). Configura el proveedor (Ollama / LM Studio / llama.cpp), el modelo, la URL y el tiempo de espera en la página Settings del panel. Cualquier servidor local compatible con OpenAI funciona; no se envían datos a ningún servicio en la nube.

Triaje Agéntico

El Triaje Agéntico en la barra lateral del panel convierte miles de alertas en una lista corta de hallazgos:

  1. Agrupar. Las alertas en el ámbito elegido (severidad mínima, equipos, ventana de tiempo) se agrupan por regla, host, event ID y forma del mensaje. Un informe con ~13,5k alertas normalmente se reduce a unas pocas docenas de grupos.
  2. Veredicto de primera pasada. El LLM evalúa cada grupo exactamente una vez. Esta pasada es barata y exhaustiva, lo que garantiza que no se omita nada.
  3. Investigación. Un agente trabaja sobre las pistas supervivientes con herramientas: busca alertas, lee el registro de eventos sin procesar detrás de una alerta, recorre la línea de tiempo alrededor de un momento y enlaza lo que encuentra en cadenas de ataque. Solo puede proponer hallazgos; nunca escribe en la línea de tiempo por sí mismo.
  4. Revisión. Los hallazgos aparecen en una cola con puntuación, veredicto, técnica MITRE, evidencia y el rastro de investigación del agente. Accept añade un hallazgo a la Línea de Tiempo de Incidentes (y a la exportación del informe de IR / .docx); Reject lo descarta. Establece un umbral de auto-añadido en Settings (o por ejecución) para aceptar automáticamente los hallazgos con puntuación alta.

La fase de investigación necesita un LLM que soporte llamadas a herramientas. Si el tuyo no lo hace, APT-Hunter recurre a una canalización fija de pivotar/correlacionar. La cobertura es idéntica en ambos casos, ya que el agente solo añade profundidad sobre la primera pasada. Las rondas de herramientas y un límite de tiempo real se configuran en Settings.

Agentic Triage runs

Triaje Agéntico: el historial de ejecuciones muestra el ámbito, los recuentos de alertas y grupos, los hallazgos y las llamadas al LLM por ejecución. Aquí 91 alertas críticas en un host se redujeron a 32 grupos y una única cadena de ataque con puntuación alta.

Agentic investigation trace

Detalle del hallazgo: la narrativa, las técnicas MITRE, la evidencia y el rastro completo de investigación (cada evento leído, ventana de línea de tiempo y búsqueda de alertas que hizo el agente), para que cada conclusión pueda auditarse.

Nota: La salida del LLM es una ayuda al triaje, no un veredicto. Revisa los hallazgos antes de confiar en ellos. Los modelos de razonamiento pueden necesitar que el tiempo de espera de la solicitud se eleve muy por encima del valor predeterminado de 200 s.

Muestras de Salida

MuestraDescripción
Sample_TimeSketch.csvLínea de tiempo que puedes subir a Timesketch para ver el panorama completo de un ataque
Sample_Report.xlsxCada evento detectado en todos los registros de Windows proporcionados
Sample_Logon_Events.csvTodos los eventos de inicio de sesión con campos analizados (fecha, usuario, IP de origen, proceso de inicio de sesión, estación de trabajo, tipo de inicio de sesión, dispositivo, registro original)
Sample_Process_Execution_Events.csvTodas las ejecuciones de procesos capturadas de los registros de eventos
Sample_Object_Access_Events.csvAcceso a objetos capturado del Evento 4663
Sample_Collected-SIDS.csvUsuarios y sus SIDs, para ayudar en las investigaciones
EventID_Frequency_Analysis.xlsAnálisis de frecuencia de Event ID

Autor

Twitter: @ahmed_khlief · LinkedIn: Ahmed Khlief

Licencia

Distribuido bajo la GNU GPL v3. Consulta LICENSE.

Créditos

Gracias a Joe Maccry por su increíble contribución en los casos de uso de Sysmon (más de 100 casos de uso añadidos por Joe)

Categorías