שתף באמצעות


ציד מתקדם באמצעות PowerShell

חל על:

רוצה להתנסות ב- Microsoft Defender עבור נקודת קצה? הירשם לקבלת גירסת ניסיון ללא תשלום.

הערה

אם אתה לקוח של ממשלת ארה"ב, השתמש בURI המפורטים ב- Microsoft Defender עבור נקודת קצה עבור לקוחות של ממשלת ארה"ב.

עצה

לקבלת ביצועים טובים יותר, באפשרותך להשתמש בשרת קרוב יותר למיקום הגיאוגרפי שלך:

  • 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

הפעל שאילתות מתקדמות באמצעות PowerShell. לקבלת מידע נוסף, ראה API מתקדם לציד.

בסעיף זה, אנו משתפים דוגמאות של PowerShell כדי לאחזר אסימון ולהשתמש בו כדי להפעיל שאילתה.

לפני שתתחיל

תחילה עליך ליצור יישום.

הוראות הכנה

  • פתח חלון PowerShell.

  • אם המדיניות שלך אינה מאפשרת לך להפעיל את פקודות PowerShell, באפשרותך להפעיל את הפקודה הבאה:

    Set-ExecutionPolicy -ExecutionPolicy Bypass
    

לקבלת מידע נוסף, ראה תיעוד של PowerShell.

קבל אסימון

  • הפעל את הפעולות הבאות:
$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: מזהה הדייר בשמו ברצונך להפעיל את השאילתה (כלומר, השאילתה מופעלת על הנתונים של דייר זה)
  • $appId: מזהה היישום Microsoft Entra שלך (האפליקציה חייבת לכלול הרשאת 'הפעל שאילתות מתקדמות' ב- Defender for Endpoint)
  • $appSecret: סוד האפליקציה Microsoft Entra שלך

הפעל שאילתה

הפעל את השאילתה הבאה:

$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 מכילות את תוצאות השאילתה שלך
  • $schema מכיל את הסכימה של תוצאות השאילתה

שאילתות מורכבות

אם ברצונך להפעיל שאילתות מורכבות (או שאילתות מרובות שורות), שמור את השאילתה בקובץ, וב במקום השורה הראשונה בדוגמה לעיל, הפעל את הפקודה הבאה:

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

עבודה עם תוצאות שאילתה

כעת באפשרותך להשתמש בתוצאות השאילתה.

כדי ליצור פלט של תוצאות השאילתה בתבנית CSV בקובץ file1.csv, הפעל את הפקודה הבאה:

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

כדי ליצור פלט של תוצאות השאילתה בתבנית JSON בקובץ file1.json, הפעל את הפקודה הבאה:

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

מאמר קשור

עצה

האם ברצונך לקבל מידע נוסף? Engage עם קהילת האבטחה של Microsoft בקהילת הטכנולוגיה שלנו: Microsoft Defender עבור נקודת קצה Tech Community.