Perburuan Tingkat Lanjut menggunakan PowerShell

Note

Jika Anda adalah pelanggan Pemerintah AS, gunakan URI yang tercantum dalam Microsoft Defender untuk Titik Akhir untuk pelanggan Pemerintah AS.

Tip

Untuk performa yang lebih baik, alih-alih menggunakan api.security.microsoft.com, gunakan server yang lebih dekat dengan geolokasi Anda:

  • 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
  • aea.api.security.microsoft.com

Jalankan kueri tingkat lanjut menggunakan PowerShell. Untuk informasi selengkapnya, lihat ADVANCED Hunting API.

Di bagian ini, kami berbagi sampel PowerShell untuk mengambil token dan menggunakannya untuk menjalankan kueri.

Sebelum Anda mulai

Anda harus terlebih dahulu membuat aplikasi.

Instruksi persiapan

  • Buka jendela PowerShell.

  • Jika kebijakan Anda tidak mengizinkan Anda menjalankan perintah PowerShell, Anda bisa menjalankan perintah berikut:

    Set-ExecutionPolicy -ExecutionPolicy Bypass
    

Untuk informasi selengkapnya, lihat dokumentasi PowerShell.

Dapatkan token

  • Jalankan berikut ini:
$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

Where:

  • $tenantId: ID penyewa atas nama yang ingin Anda jalankan kuerinya (artinya, kueri dijalankan pada data penyewa ini)
  • $appId: ID aplikasi Microsoft Entra Anda (aplikasi harus memiliki izin 'Jalankan kueri tingkat lanjut' untuk Defender untuk Titik Akhir)
  • $appSecret: Rahasia aplikasi Microsoft Entra Anda

Jalankan Kueri

Jalankan kueri berikut:

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

$url = "https://api.security.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 berisi hasil kueri Anda
  • $schema berisi skema hasil kueri Anda

Kueri kompleks

Jika Anda ingin menjalankan kueri kompleks (atau kueri multibaris), simpan kueri Anda dalam file dan, alih-alih baris pertama dalam sampel di atas, jalankan perintah berikut:

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

Bekerja dengan hasil kueri

Sekarang Anda bisa menggunakan hasil kueri.

Untuk menghasilkan hasil kueri dalam format CSV dalam file file1.csv, jalankan perintah berikut:

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

Untuk menghasilkan hasil kueri dalam format JSON dalam file file1.json, jalankan perintah berikut:

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

Tip

Apakah Anda ingin mempelajari lebih lanjut? Libatkan dengan komunitas Microsoft Security di Komunitas Teknologi kami: Microsoft Defender untuk Titik Akhir Tech Community.