Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
MicroburstSecretsHunter — يفحص ملفات تفريغ نطاقات Azure المُصدَّرة بحثاً عن كلمات مرور نصية صريحة، وسلاسل اتصال، ومفاتيح تخزين، وغيرها من الأسرار؛ وينشئ تقارير CSV/HTML منقّحة لسير عمل التدقيق للقراءة فقط. | Kitploit
أدوات/GitHubGitHub/rootsecdev/microburstsecretshunter
أدوات دفاعيةالتحليل الثابتتدقيق التكوينأمن السحابةكشف الأسرارسوء التكوينأمن قواعد البيانات
GitHubrootsecdev/microburstsecretshunter

MicroburstSecretsHunter

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

يفحص ملفات تفريغ نطاقات Azure المُصدَّرة بحثاً عن كلمات مرور نصية صريحة، وسلاسل اتصال، ومفاتيح تخزين، وغيرها من الأسرار؛ وينشئ تقارير CSV/HTML منقّحة لسير عمل التدقيق للقراءة فقط.

عرض المستودع
221منذ 14 أياملم تتم المراجعة بعد

صائد أسرار MicroBurst

ماسح PowerShell يمر عبر مخرجات MicroBurst Get-AzDomainInfo بحثًا عن كلمات مرور ومفاتيح وسلاسل اتصال وأسرار أخرى بنص واضح لا ينبغي أن تبقى غير مشفّرة في بيئة Azure.

مصمَّم لسير عمل تدقيق للقراءة فقط: تجمع تفريغًا للنطاق باستخدام MicroBurst (يكفي وصول Reader لتشغيل Get-AzDomainInfo)، ثم توجّه هذه الأداة إلى مجلد المخرجات. وهي لا تلمس Azure نفسها — بل تقرأ فقط الملفات التي صدّرتها بالفعل. قيم الأسرار تكون مُخفاة في كل تقرير، لذا فالمخرجات آمنة لإرفاقها بالنتائج.


بدء سريع

root@kitploit:~
# Clone / copy this folder, then from a PowerShell prompt:
.\Scan-MicroBurst.ps1 -Path .\MicroBurst-2026 -Verbose

أو استورد الوحدة النمطية واستخدم الأمر cmdlet مباشرةً:

root@kitploit:~
Import-Module .\MicroBurstSecretsHunter.psd1 -Force
Invoke-MBSecretScan -Path .\MicroBurst-2026

تُكتب التقارير إلى مجلد يحمل طابعًا زمنيًا (MBSecretScan-<timestamp>) في الدليل الحالي ما لم تمرّر -OutputDirectory.

افتراضيًا، تكون كل قيمة مُخفاة بحيث تكون التقارير آمنة للمشاركة. تُخصص الأحرف المكشوفة بمقدار ربع طول القيمة (بحد أقصى 4 في البداية + 2 في النهاية)، وأي شيء بطول 8 أحرف أو أقل يُستبدل بقناع ثابت العرض — لذلك تظهر كلمة المرور النموذجية كـ ********، بينما يبقى مفتاح تخزين بطول 88 حرفًا مميزًا كـ AAAA**********AA. تُخفى سلاسل السياق قبل اقتطاعها، وكل سر يُعثر عليه في سطر يُخفى من سياق كل نتيجة في ذلك السطر، بحيث لا يبقى أي نص واضح في التقرير. عند فرز الإيجابيات الكاذبة، غالبًا ما يكون رؤية القيمة الكاملة أسرع — مرّر -ShowSecrets لإخراج قيم غير مُخفاة في كل مكان (وحدة التحكم، CSV، HTML). عندها تحمل وحدة التحكم وتقرير HTML لافتة تحذير واضحة، ويجب التعامل مع التقارير كمواد اعتمادات حيّة:

root@kitploit:~
Invoke-MBSecretScan -Path .\dump -ShowSecrets        # raw values, for local triage

يعمل على Windows PowerShell 5.1 وPowerShell 7+ (Windows، Linux، macOS).


ما الذي ستحصل عليه

كل تشغيل يُنتج ثلاثة أشياء:

المخرجالوصف
ملخص وحدة التحكمأعداد ملوّنة حسب الخطورة/الفئة إلى جانب أهم النتائج الحرجة/عالية الخطورة.
findings.csvصف واحد لكل نتيجة (الخطورة، القاعدة، الملف، السطر، القيمة المُخفاة، السياق) لفرزها في Excel. الحقول التي تحمل محتوى ممسوحًا ضوئيًا مُهرَّبة ضد حقن صيغ الجداول.

الأمر cmdlet يُصدر أيضًا كائنات النتائج إلى خط الأنابيب، لذا يمكنك معالجتها لاحقًا:

root@kitploit:~
$f = Invoke-MBSecretScan -Path .\dump -Quiet
$f | Where-Object Severity -eq 'Critical' | Format-Table File,Line,RuleName

ما الذي يكتشفه

مجموعة القواعد الكاملة والقابلة للتحرير موجودة في Private/Get-MBSignature.ps1. كل قاعدة هي [PSCustomObject] بهذه الحقول:

الاقتران المنظّم بين أعمدة CSV

يصدّر Get-AzDomainInfo متغيرات حسابات التشغيل الآلي وإعدادات التطبيق كصفوف Name,Value[,Encrypted]. السر موجود في عمود Value بينما الكلمة المفتاحية التي تحدده (مثل ServiceAccountPwd, dbConnectionString) موجودة في عمود Name — لذلك لا يرى التعبير النمطي العادي الاثنين على نفس «السطر»، وتكون الكلمة المفتاحية مدفونة داخل رمز مركّب بدون حدود كلمات.

بالنسبة لملفات .csv / .tsv, يقوم الماسح بالإضافة إلى ذلك بـالاقتران المنظّم للأعمدة (Private/Get-MBCsvFinding.ps1):

  • وضع Name/Value — يصنّف خلية Name في كل صف؛ إذا كانت حساسة وكانت خلية Value تحمل بيانات حقيقية، يُبلَّغ عنها. الصفوف الموسومة بـ Encrypted=True تُتخطى (القيمة ليست نصًا واضحًا).
  • وضع العمود الحساس — إذا كانت ترويسة العمود بحد ذاتها حساسة (عمود Password أو StorageKey), يُبلَّغ عن كل خلية ليست عنصرًا نائبًا.

القيم التي تغطيها قاعدة عالية الثقة بالفعل (سلاسل الاتصال، مفاتيح التخزين، SAS) تُؤجَّل إلى مرحلة السطور الخام لإخفاء أكثر إحكامًا، وتُزال ازدواجية النتائج حسب الفئة بحيث لا يُبلَّغ عن السر نفسه مرتين. إذا تعذّر تحليل ملف كـ CSV، يعود الماسح تلقائيًا إلى الفحص العادي للسطور الخام.

فحص جانب القيمة (-ScanValues)

الاقتران أعلاه يعتمد على اسم الإعداد. وللحصول أيضًا على الأسرار المخزّنة تحت اسم بلا معنى (مثل Config1 = P@ssw0rd2026!)، مرّر -ScanValues. إنه يفحص محتوى خلايا القيم باستدلالين متحفظين منخفضي الخطورة:

  • يشبه كلمة المرور — من 8 إلى 64 حرفًا، بدون مسافات بيضاء، يحتوي حرفًا خاصًا قويًا (!@#$%^&* …) إضافة إلى حروف وفئة أخرى. القيم ذات النمط المعرّفي مثل Standard_D2s_v3 (ورمزها الوحيد _ - .) تُتجاهل.
  • عالية الإنتروبيا — ≥ 16 حرفًا، حروف+أرقام مختلطة، إنتروبيا شانون ≥ -MinEntropy. المسارات / عناوين URL / معرفات الموارد (أي شيء يحتوي / أو \) تُتخطى لتجنب الإبلاغ عن معرفات الموارد.

في جداول Name/Value يفحص عمود Value؛ وفي الجداول الحرة يفحص كل خلية. هذا يضحي باسترجاع أعلى مقابل إيجابيات كاذبة أكثر، لذا فهو معطّل افتراضيًا — شغّله لفحص أعمق، ثم افرز النتائج منخفضة الخطورة.


التعامل مع الإيجابيات الكاذبة

تفريغات Azure مليئة بسلاسل طويلة تبدو عشوائية لكنها ليست أسرارًا. الماسح يفلترها:

  • GUIDs (معرفات الاشتراك / المستأجر / المورد / الكائن) لا يُبلَّغ عنها أبدًا.

  • العناصر النائبة وأشكال القيم غير السرية — ********, null, <provide-at-deploy>, true/false, الأحرف المتكررة، رموز القوالب (${var}, %VAR%)، كائنات/مصفوفات JSON ({...}, [...], بما فيها متعددة الأسطر)، التواريخ/الطوابع الزمنية، وأسماء أنواع/مجموعات .NET المسلسلة (مثل عمود Secrets في مجموعة مقياس VM يظهر كـ System.Collections.Generic.List1[...VaultSecretGroup]) — تُتخطى. لاحظ أن هذا يعتمد على الشكل: عمود Secrets` يحمل قيمة نصية واضحة فعلية لا يزال يُبلَّغ عنه.

  • حقول بيانات كلمة المرور الحميدة — أعمدة الدليل التي يحتوي اسمها على كلمة مفتاحية لكنها تصف فقط سياسة/حالة كلمة المرور، ولا تصف السر نفسه أبدًا (PasswordProfile, , , , , …). هذه شائعة في تصديرات RBAC مثل / ولا يُبلَّغ عنها، بينما العمود المسمّى حقًا لا يزال يُبلَّغ عنه. أعمدة أذونات سياسة الوصول في Key Vault (, , …) — التي تحمل أفعال أذونات مثل — تُتجاهل بالمثل.


المعاملات الأساسية


هيكل المشروع

root@kitploit:~
MicroBurstSecretsHunter.psd1     Module manifest
MicroBurstSecretsHunter.psm1     Module loader
Scan-MicroBurst.ps1              Convenience wrapper script
Public/
  Invoke-MBSecretScan.ps1        Main cmdlet (file walk, matching, reporting)
Private/
  Get-MBSignature.ps1            Detection rule set (edit to extend)
  Get-MBCsvFinding.ps1           Structured CSV Name/Value column pairing
  MBHelpers.ps1                  Entropy, redaction, context rendering,
                                 CSV field escaping, line windowing,
                                 placeholder/GUID filters
  Write-MBConsoleSummary.ps1     Console output
  New-MBHtmlReport.ps1           HTML report generator
tests/
  sample-dump/                   Example Get-AzDomainInfo-style fixture

لتجربته على العينة المرفقة:

root@kitploit:~
.\Scan-MicroBurst.ps1 -Path .\tests\sample-dump

حدود التغطية التي تخبرك بها الأداة

أي شيء لم يستطع الماسح قراءته هو نقطة عمياء، والنقطة العمياء الصامتة تُقرأ على أنها «لا شيء موجود هنا». لذلك يكون الماسح صريحًا بشأنها:

  • الملفات الأكبر من -MaxFileSizeMB تُنتج Write-Warning يسمّيها، وسطر NOT scanned في ملخص وحدة التحكم، ولافتة في تقرير HTML.
  • الملفات غير المقروءة (مقفلة، مرفوضة الإذن) تُحسب بالطريقة نفسها؛ شغّل مع -Verbose لعرض المسارات الفردية.
  • الأسطر الطويلة لا تُقتطع. JSON المصغّر في سطر واحد أمر طبيعي في تصديرات Azure، وقالب ARM من سطر واحد بحجم 14 كيلوبايت يمكن أن يخفي بسهولة AdminPassword خلف أي حد ثابت، لذلك تُفحص الأسطر بنوافذ متداخلة من 8000 حرف بدلًا من ذلك. التكرارات الناتجة من التداخل تُدمج في إزالة الازدواجية.

ملاحظات وتحذيرات

  • غياب الاكتشافات ليس دليلًا على الأمان. تعامل معها كمضاعِف قوة للمراجعة اليدوية، وليس بديلًا عنها.
  • افتراضيًا تُخفي التقارير القيم السرية لكنها ما تزال تكشف أين تعيش الأسرار، لذا تعامل معها كمصنوعات اختبار حساسة. مع -ShowSecrets ستحتوي على الاعتمادات الكاملة بالنص الواضح — خزّنها بأمان واحذفها بعد الفرز.
  • الأداة للقراءة فقط ولا تُجري أي استدعاءات شبكية.
تنزيل الأداة
report.htmlتقرير HTML مكتفٍ بذاته (بدون أصول خارجية) مع بطاقات خطورة، وفلتر نص فوري، ومفاتيح تبديل للخطورة — قابل للمشاركة مع العميل.
القاعدةالخطورةمثال على المصدر في التفريغ
سلسلة اتصال SQL/قاعدة بيانات تتضمن كلمة مرور مضمّنةحرجةإعدادات App Service، تصديرات web.config
سلسلة اتصال حساب Azure Storage / مفتاح بطول 88 حرفًاحرجةإعدادات التطبيق، تصديرات Storage
SharedAccessKey لـ Service Bus / Event Hubحرجةإعدادات موارد المراسلة
مفتاح حساب Cosmos DBحرجةإعدادات التطبيق
كتلة مفتاح خاص بصيغة PEMحرجةتصديرات Key Vault / الشهادات
كلمة مرور Azure Redis Cacheعاليةسلاسل اتصال ذاكرة التخزين المؤقت
سر عميل Azure AD (صيغة ما بعد 2021 …Q~…)عاليةقوالب ARM، إعدادات التطبيق
رمز SAS / معامل sig=عاليةعناوين URL الخاصة بـ SAS للتخزين
JWT / رمز حاملعاليةرموز مخزّنة مؤقتًا وتهيئات
وجود ملف شهادة / مفتاح (.pfx, .pem, .key, …)عاليةفي أي مكان في التفريغ
إسناد عام لـ password / pwdعاليةمتغيرات أتمتة، إعدادات تطبيق، معاملات ARM
إسناد عام لـ secret / client_secretعاليةإعدادات التطبيق، قوالب
مفتاح وصول AWS / رموز GitHub / Slackعالية/متوسطةاعتمادات خارجية مخزّنة في تطبيقات Azure
api_key / access_key / connectionstring عامةمتوسطةإعدادات التطبيق
سلسلة عالية الإنتروبيا (استدلالي)منخفضةشبكة أمان لصيغ المفاتيح غير المعروفة — اختياري عبر -IncludeEntropy
الحقلمطلوبالغرض
Id, Name, Category, Severityنعمالهوية وكيفية الإبلاغ عن النتيجة وفرزها.
Patternنعمالتعبير النمطي. يُجمَّع مرة واحدة لكل عملية فحص.
ValueGroupنعممجموعة الالتقاط التي تحمل السر (0 = المطابقة كاملة). تتحكم في الإخفاء.
MultiLineلاالتقييم على نص الملف كاملًا بدلًا من سطر بسطر (كتل PEM). تُبلَّغ كل مطابقة، وليس الأولى فقط.
CaseSensitiveلاللخروج من الترجمة الافتراضية IgnoreCase. اضبطه للصيغ المعرّفة بحساسية حالة الأحرف (AKIA, ghp_, eyJ, Q~) — وبدونه تُطابق أشكال مشابهة بأي حالة أحرف.
Redactلااضبطه على $false عندما تكون القيمة الملتقطة تسمية وليست سرًا (سطر ترويسة PEM، اسم ملف شهادة) بحيث تظهر حرفيًا بدلًا من أن تُقنّع إلى درجة غير مقروءة. الافتراضي هو الإخفاء.
PasswordPolicies
ForceChangePasswordNextSignIn
LastPasswordChangeDateTime
PasswordExpirationDateTime
InheritedOwners.csv
InheritedContributors.csv
Password
PermissionsToSecretsStr
PermissionsToKeysStr
Get, List, Set, Delete
  • تعبيرات التعليمات البرمجية والقوالب — عندما يكون password/secret/إلخ اسم متغير أو خاصية يشير إلى تعبير وليس قيمة حرفية، تُتخطى القيمة الملتقطة: استدعاءات أوامر PowerShell (Get-RandomPassword 8, Get-AzKeyVaultSecret ...)، مراجع المتغيرات بما فيها ذات النطاق ($result, $kv.Secrets, $global:clientSecret, $env:KEY), التعبيرات الفرعية ((-join $x))، ومراجع ARM / Logic App (@{body(...)}, @body(...), [parameters('...')]). شائعة في كتيبات التشغيل الآلي وتعريفات Logic App.

    الأشكال الغامضة هنا — $var, (expr), Verb-Noun — لا تُرفض إلا في الملفات التي تحتوي فعلًا على تعليمات برمجية (.ps1, .json, .tf, .yaml, …). كلمة المرور غالبًا ما تكون مرجع متغير صالحًا ($ummer2026, $ecretPass1)، لذا فإن تطبيق هذا الفلتر على خلايا قيم CSV أسقط أسرارًا حقيقية. علامات القوالب غير الغامضة (@{, @body(, [parameters() تُفلتر في كل مكان.

  • مجاورة ترويسة العمود — القواعد العامة keyword = value تعامل فقط : و= كفواصل (وليس ,), لذلك ترويسة CSV مثل ...,AdminPassword,Secrets,... لم تعد تلتقط اسم العمود التالي ككلمة مرور. أزواج Name,Value المفصولة بفواصل ما تزال مشمولة بالاقتران المنظّم لـ CSV.

  • مسارات معرفات الموارد تُقسَّم إلى شرائح قصيرة بدلًا من معاملتها كرمز واحد عالي الإنتروبيا.

  • صيغ الاعتمادات الحساسة لحالة الأحرف (AWS AKIA…, GitHub ghp_…, JWT eyJ…, Azure AD …Q~…) تُطابق بحساسية حالة الأحرف، لذلك لا يُبلَّغ عن أشكال مشابهة بأي حالة مثل akiaijklmnopqrstuvwx. قواعد الكلمات المفتاحية (password=, AccountKey=) تبقى غير حساسة لحالة الأحرف.

  • الاستدلال بالإنتروبيا معطّل افتراضيًا — يُنتج نتائج منخفضة الخطورة مزعجة، لذا تشترك فيه بـ -IncludeEntropy لفحص أعمق. وحتى عندها لا يعمل إلا على الرموز التي تشبه مادة المفاتيح (حروف+أرقام مختلطة أو علامات base64)، لذلك تُتجاهل المعرفات بنمط camelCase مثل networkSecurityGroups. ارفع السقف أكثر مع -MinEntropy 4.5.

  • المعاملالافتراضيالغرض
    -Path(مطلوب)المجلد الجذر لمخرجات MicroBurst.
    -OutputDirectoryمجلد بطابع زمنيحيث تُكتب التقارير (لا يُفحص أبدًا). لا يمكن أن يكون جذر الفحص نفسه؛ مجلد متداخل بداخله يُطلق تحذيرًا.
    -IncludeEntropyمعطّلالاشتراك في مرحلة الاستدلال عالي الإنتروبيا (يضيف نتائج منخفضة الخطورة).
    -MinEntropy4.0عتبة إنتروبيا شانون (بت/حرف) للاستدلال.
    -ScanValuesمعطّلفحص محتوى خلايا قيم CSV أيضًا بحثًا عن أسرار تحت أسماء غير مؤذية (خطورة منخفضة، استرجاع أعلى).
    -ShowSecretsمعطّلإخراج قيم غير مُخفاة في كل المخرجات لتسريع فرز الإيجابيات الكاذبة. تصبح التقارير مادة اعتمادات حيّة.
    -MaxFileSizeMB50تخطي الملفات الأكبر من هذا الحجم. الملفات المتخطاة يُحذَّر بشأنها وتُحسب في الملخص وتقرير HTML.
    -IncludeExtensionأنواع النصوص الشائعةتجاوز أنواع الملفات التي تُفحص (النقطة البادئة اختيارية).
    -NoCsv / -NoHtmlمعطّلتخطي صيغة تقرير.
    -Quietمعطّلكتم ملخص وحدة التحكم (الكائنات ما تزال تُرجَع).