Compartir a través de


Búsqueda avanzada de amenazas con PowerShell

Se aplica a:

¿Quiere experimentar Microsoft Defender para punto de conexión? Regístrese para obtener una prueba gratuita.

Nota:

Si es un cliente del Gobierno de EE. UU., use los URI que aparecen en Microsoft Defender para punto de conexión para clientes del Gobierno de EE. UU.

Sugerencia

Para mejorar el rendimiento, puede usar el servidor más cercano a la ubicación geográfica:

  • us.api.security.microsoft.com
  • eu.api.security.microsoft.com
  • uk.api.security.microsoft.com
  • au.api.security.microsoft.com
  • swa.api.security.microsoft.com
  • ina.api.security.microsoft.com

Ejecute consultas avanzadas con PowerShell. Para obtener más información, consulte Advanced Hunting API.

En esta sección, compartimos ejemplos de PowerShell para recuperar un token y usarlo para ejecutar una consulta.

Antes de empezar

Primero debe crear una aplicación.

Instrucciones de preparación

  • Abra una ventana de PowerShell.

  • Si la directiva no le permite ejecutar los comandos de PowerShell, puede ejecutar el siguiente comando:

    Set-ExecutionPolicy -ExecutionPolicy Bypass
    

Para obtener más información, consulte la documentación de PowerShell.

Obtener token

  • Ejecute el siguiente comando:
$tenantId = '00000000-0000-0000-0000-000000000000' # Paste your own tenant ID here
$appId = '11111111-1111-1111-1111-111111111111' # Paste your own app ID here
$appSecret = '22222222-2222-2222-2222-222222222222' # Paste your own app secret here

$resourceAppIdUri = 'https://api.securitycenter.microsoft.com'
$oAuthUri = "https://login.microsoftonline.com/$TenantId/oauth2/token"
$body = [Ordered] @{
    resource = "$resourceAppIdUri"
    client_id = "$appId"
    client_secret = "$appSecret"
    grant_type = 'client_credentials'
}
$response = Invoke-RestMethod -Method Post -Uri $oAuthUri -Body $body -ErrorAction Stop
$aadToken = $response.access_token

Dónde

  • $tenantId: identificador del inquilino en nombre del que desea ejecutar la consulta (es decir, la consulta se ejecuta en los datos de este inquilino)
  • $appId: identificador de la aplicación Microsoft Entra (la aplicación debe tener el permiso "Ejecutar consultas avanzadas" en Defender para punto de conexión)
  • $appSecret: Secreto de la aplicación Microsoft Entra

Ejecutar consulta

Ejecute la consulta siguiente:

$token = $aadToken
$query = 'DeviceRegistryEvents | limit 10' # Paste your own query here

$url = "https://api.securitycenter.microsoft.com/api/advancedqueries/run"
$headers = @{ 
    'Content-Type' = 'application/json'
    Accept = 'application/json'
    Authorization = "Bearer $aadToken" 
}
$body = ConvertTo-Json -InputObject @{ 'Query' = $query }
$webResponse = Invoke-WebRequest -Method Post -Uri $url -Headers $headers -Body $body -ErrorAction Stop
$response =  $webResponse | ConvertFrom-Json
$results = $response.Results
$schema = $response.Schema
  • $results contienen los resultados de la consulta
  • $schema contiene el esquema de los resultados de la consulta

Consultas complejas

Si desea ejecutar consultas complejas (o consultas multilínea), guarde la consulta en un archivo y, en lugar de la primera línea del ejemplo anterior, ejecute el siguiente comando:

$query = [IO.File]::ReadAllText("C:\myQuery.txt"); # Replace with the path to your file

Trabajar con resultados de consulta

Ahora puede usar los resultados de la consulta.

Para generar los resultados de la consulta en formato CSV en file1.csv de archivos, ejecute el siguiente comando:

$results | ConvertTo-Csv -NoTypeInformation | Set-Content C:\file1.csv

Para generar los resultados de la consulta en formato JSON en file1.json de archivos, ejecute el siguiente comando:

$results | ConvertTo-Json | Set-Content file1.json

Artículo relacionado

Sugerencia

¿Desea obtener más información? Interactúe con la comunidad de seguridad de Microsoft en nuestra comunidad tecnológica: Microsoft Defender para punto de conexión Tech Community.