Repérage avancé à l’aide de PowerShell

S’applique à :

Vous voulez découvrir Microsoft Defender pour point de terminaison ? Inscrivez-vous pour bénéficier d’un essai gratuit.

Remarque

Si vous êtes un client du gouvernement des États-Unis, utilisez les URI répertoriés dans Microsoft Defender pour point de terminaison pour les clients du gouvernement des États-Unis.

Conseil

Pour de meilleures performances, vous pouvez utiliser le serveur plus près de votre emplacement géographique :

  • 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

Exécutez des requêtes avancées à l’aide de PowerShell. Pour plus d’informations, consultez API de chasse avancée.

Dans cette section, nous partageons des exemples PowerShell pour récupérer un jeton et l’utiliser pour exécuter une requête.

Avant de commencer

Vous devez d’abord créer une application.

Instructions de préparation

  • Ouvrez une fenêtre PowerShell.

  • Si votre stratégie ne vous permet pas d’exécuter les commandes PowerShell, vous pouvez exécuter la commande suivante :

    Set-ExecutionPolicy -ExecutionPolicy Bypass
    

Pour plus d’informations, consultez la documentation PowerShell.

Obtenir un jeton

  • Exécutez la commande suivante :
$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

  • $tenantId : ID du locataire pour le compte duquel vous souhaitez exécuter la requête (autrement dit, la requête est exécutée sur les données de ce locataire)
  • $appId : ID de votre application Microsoft Entra (l’application doit disposer de l’autorisation « Exécuter des requêtes avancées » sur Defender pour point de terminaison)
  • $appSecret : Secret de votre application Microsoft Entra

Exécuter la requête

Exécutez la requête suivante :

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

$url = "https://api.securitycenter.microsoft.com/api/advancedhunting/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 contiennent les résultats de votre requête
  • $schema contient le schéma des résultats de votre requête

Requêtes complexes

Si vous souhaitez exécuter des requêtes complexes (ou des requêtes multilignes), enregistrez votre requête dans un fichier et, au lieu de la première ligne de l’exemple ci-dessus, exécutez la commande suivante :

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

Travailler avec les résultats de la requête

Vous pouvez maintenant utiliser les résultats de la requête.

Pour générer les résultats de la requête au format CSV dans le file1.csv de fichier, exécutez la commande suivante :

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

Pour générer les résultats de la requête au format JSON dans le file1.json de fichier, exécutez la commande suivante :

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

Article connexe

Conseil

Voulez-vous en savoir plus ? Engage avec la communauté Microsoft Security dans notre communauté technique : Microsoft Defender pour point de terminaison Tech Community.