الصيد المتقدم باستخدام PowerShell

ينطبق على:

هل تريد تجربة 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. لمزيد من المعلومات، راجع واجهة برمجة تطبيقات التتبع المتقدمة.

في هذا القسم، نشارك عينات 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 لنقطة النهاية)
  • $appSecret: سر تطبيقك Microsoft Entra

تشغيل الاستعلام

قم بتشغيل الاستعلام التالي:

$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 تحتوي على نتائج الاستعلام
  • يحتوي $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.