مشاركة عبر


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

ملاحظة

إذا كنت أحد عملاء حكومة الولايات المتحدة، فاستخدم معرفات URI المدرجة في Microsoft Defender لنقطة النهاية لعملاء حكومة الولايات المتحدة.

تلميح

للحصول على أداء أفضل، بدلا من استخدام api.security.microsoft.com، استخدم خادما أقرب إلى الموقع الجغرافي الخاص بك:

  • 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

تشغيل استعلامات متقدمة باستخدام 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.security.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.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 تحتوي على نتائج الاستعلام
  • يحتوي $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

تلميح

هل تريد معرفة المزيد؟ تواصل مع مجتمع الأمان من Microsoft في مجتمعنا التقني: مجتمع Microsoft Defender لنقطة النهاية التقني.