Ejecute su consulta en Búsqueda avanzada, luego envíe la misma consulta a la ejecución de runHuntingQuery de Microsoft Graph para obtener los resultados como JSON. El botón de exportación del portal produce un archivo estilo hoja de cálculo que LogTotal no lee hoy. La búsqueda avanzada mantiene datos de 30 días, por lo que cualquier cosa más antigua debe provenir de Sentinel o de donde dirija los datos de Defender.
Defender XDR contiene telemetría de endpoint, identidad, correo electrónico y aplicaciones en la nube en un solo lugar consultable, lo que lo convierte en el primer paso en la mayoría de las investigaciones en un entorno Microsoft. Prime Core tiene 17,197 reglas de detección para datos de Microsoft Defender, mapeadas a 659 técnicas MITRE ATT&CK. A continuación se muestra cómo extraer una porción, sanearla e investigarla de manera gratuita en LogTotal.
Antes de comenzar
Permisos. Para Graph, necesita el permiso ThreatHunting.Read.All. El usuario conectado también necesita un rol de Defender que permita la búsqueda avanzada.
Límites. Las consultas se agotan tras unos minutos, y los resultados están limitados. Planifique dividir por tiempo o por dispositivo.
Las tablas. DeviceProcessEvents, DeviceNetworkEvents, DeviceLogonEvents, DeviceFileEvents, DeviceRegistryEvents, DeviceEvents (un conjunto variado, incluyendo eventos ASR y AMSI), EmailEvents, IdentityLogonEvents, y AlertInfo con AlertEvidence. La columna de tiempo es Timestamp.
Los ejemplos siguen la documentación de Microsoft, revisada en octubre de 2026.
Paso 1: Escriba la consulta
DeviceProcessEvents
| donde Timestamp entre (datetime(2026-10-19) .. datetime(2026-10-20))
| donde DeviceName empieza con "ws-042"
| proyectar Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine,
InitiatingProcessFileName, InitiatingProcessCommandLine, SHA256
Ejecutar primero en el portal. Los nombres de los dispositivos en Defender a menudo son FQDN, por lo que empieza con funciona mejor que ==.
Paso 2: Exportar a través de Microsoft Graph
Connect-MgGraph -Scopes "ThreatHunting.Read.All"
$kql = @"
DeviceProcessEvents
| donde Timestamp entre (datetime(2026-10-19) .. datetime(2026-10-20))
| donde DeviceName empieza con "ws-042"
"@
$resp = Invoke-MgGraphRequest -Method POST `
-Uri "https://graph.microsoft.com/v1.0/security/runHuntingQuery" `
-Body (@{ Query = $kql } | ConvertTo-Json) -ContentType "application/json"
$resp.results | ForEach-Object { $_ | ConvertTo-Json -Depth 10 -Compress } |
Out-File ws042_proc_1019.jsonl -Encoding utf8
Cada fila regresa como un objeto JSON por línea. Para varios días o varios dispositivos, recorra ventanas del tamaño de un día para mantenerse dentro de los límites.
Paso 3: Subir, sanear y revisar en LogTotal
- Subir. Abrir logtotal.com y suelte el archivo .jsonl.
- Sanear.
- Revisar.
Cuando algo sale mal
| Síntoma | Causa probable | Fix |
|---|---|---|
| 403 desde Graph | Falta el consentimiento ThreatHunting.Read.All o rol de Defender | Otorgue el consentimiento; verifique su rol |
| La consulta se agota o devuelve resultados parciales | Demasiados datos en una consulta | Reduzca la ventana de tiempo o el conjunto de dispositivos |
| Nada de más de 30 días | Retención de búsqueda avanzada | Utilice Sentinel o su destino de transmisión |
| El recuento de filas se detiene en un número redondo | Límite de resultados | Divida la ventana |
| No hay filas para un dispositivo conocido | Desajuste de nombre (nombre corto vs FQDN) | Use empieza con o tiene |
FAQ
¿Puedo obtener el EVTX bruto de un dispositivo?
Sí, con Respuesta En Vivo en Defender for Endpoint: getfile extrae archivos, incluyendo EVTX exportado, de una máquina.
¿Es esto lo mismo que Sentinel?
No, aunque se superponen en el portal unificado de Defender. Sentinel mantiene un historial más largo.