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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ForgeCert — تزوير الشهادات لمصادقة Active Directory باستخدام مفاتيح خاصة مسروقة لسلطة الشهادات (CA)، مما يتيح الوصول المستمر إلى المجال باستخدام ملفات .pfx مُزورة. | Kitploit
أدوات/GitHubGitHub/ghostpack/forgecert
توليد الحمولةآليات الاستمراريةالاستغلالالمصادقة
GitHubghostpack/forgecert

ForgeCert

تزوير الشهادات لمصادقة Active Directory باستخدام مفاتيح خاصة مسروقة لسلطة الشهادات (CA)، مما يتيح الوصول المستمر إلى المجال باستخدام ملفات .pfx مُزورة.

عرض المستودع
715115منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

ForgeCert

يستخدم ForgeCert واجهة برمجة تطبيقات BouncyCastle C# وشهادة هيئة التصديق (CA) المسروقة بالإضافة إلى المفتاح الخاص لتزوير شهادات لمستخدمين اعتباطيين قادرين على المصادقة إلى Active Directory.

تم ترميز هذا الهجوم باسم DPERSIST1 في الورقة البيضاء "Certified Pre-Owned" الخاصة بنا. تم إصدار قاعدة الشيفرة هذه بعد حوالي 45 يومًا من نشر الورقة البيضاء.

@tifkin_ هو المؤلف الأساسي لـ ForgeCert.

@tifkin_ و @harmj0y هما المؤلفان الأساسيان للبحث المرتبط بـ Active Directory Certificate Service (مدونة و ورقة بيضاء).

الخلفية

كما هو موصوف في قسمي الخلفية و تزوير الشهادات باستخدام شهادات CA المسروقة - DPERSIST1 من الورقة البيضاء الخاصة بنا، فإن المفتاح الخاص لشهادة هيئة التصديق محمي على خادم CA إما عبر DPAPI أو عبر الأجهزة (HSM/TPM). بالإضافة إلى ذلك، يتم نشر الشهادة (بدون المفتاح الخاص) إلى كائن الغابة NTAuthCertificates، الذي يحدد شهادات CA التي تتيح المصادقة إلى AD. مجتمعة، تستخدم CA التي تكون شهادتها موجودة في NTAuthCertificates مفتاحها الخاص لتوقيع طلبات توقيع الشهادة (CSRs) من العملاء الطالبين. يلخص هذا الرسم البياني العملية:

أمان المفتاح الخاص لـ CA له أهمية قصوى. كما ذكر، إذا لم يكن المفتاح الخاص محميًا بحل مادي مثل TPM أو HSM، فسيتم تشفير المفتاح باستخدام واجهة حماية البيانات (DPAPI) وتخزينه على القرص على خادم CA. إذا تمكن المهاجم من اختراق خادم CA، فيمكنه استخراج المفتاح الخاص لأي شهادة CA غير محمية بواسطة الأجهزة باستخدام Mimikatz لـ @gentilkiwi أو مشروع GhostPack SharpDPAPI. يصف THEFT3 في الورقة البيضاء هذه العملية لشهادات الجهاز.

نظرًا لأن المادة الرئيسية الوحيدة المستخدمة لتوقيع الشهادات الصادرة هي المفتاح الخاص لـ CA، إذا سرق المهاجم مثل هذا المفتاح (لشهادة في NTAuthCertificates) فيمكنه تزوير شهادات قادرة على المصادقة على النطاق. يمكن أن تكون هذه الشهادات المزورة لأي كيان في النطاق (على الرغم من أن الحساب يجب أن يكون "نشطًا" حتى تكون المصادقة ممكنة، لذا لن تعمل حسابات مثل krbtgt) وستكون الشهادات صالحة طالما أن شهادة CA صالحة (عادةً 5 سنوات افتراضيًا ولكن يمكن ضبطها لتكون أطول).

أيضًا، نظرًا لأن هذه الشهادات ليست نتاج عملية الإصدار العادية، فإن CA لا تعلم بإنشائها. وبالتالي، لا يمكن إبطال الشهادات.

ملاحظة: يمكن استخدام المفتاح الخاص لأي شهادة CA في NTAuthCertificates (جذر أو CA فرعي) لتزوير شهادات قادرة على المصادقة في الغابة. إذا كانت الشهادة/المفتاح من CA فرعي، فيجب توفير CRL شرعي للتحقق من سلسلة الشهادة.

يستخدم ForgeCert مولد شهادات X509V3 من BouncyCastle لتنفيذ عمليات التزوير.

استخدام سطر الأوامر

root@kitploit:~
C:\Temp>ForgeCert.exe
ForgeCert 1.0.0.0
Copyright c  2021

ERROR(S):
  Required option 'CaCertPath' is missing.
  Required option 'SubjectAltName' is missing.
  Required option 'NewCertPath' is missing.
  Required option 'NewCertPassword' is missing.

  --CaCertPath         Required. CA private key as a .pfx or .p12 file

  --CaCertPassword     Password to the CA private key file

  --Subject            (Default: CN=User) Subject name in the certificate

  --SubjectAltName     Required. UPN of the user to authenticate as

  --NewCertPath        Required. Path where to save the new .pfx certificate

  --NewCertPassword    Required. Password to the .pfx file

  --CRL                ldap path to a CRL for the forged certificate

  --help               Display this help screen.

  --version            Display version information.

الاستخدام

ملاحظة: للحصول على دليل كامل لسرقة مفتاح خاص لـ CA وتزوير شهادات المصادقة، راجع DPERSIST1 في الورقة البيضاء.

السياق:

  • شهادة CA المسروقة هي ca.pfx، مشفرة بكلمة مرور Password123!
  • الموضوع اعتباطي لأننا نحدد اسمًا بديلاً للموضوع للشهادة.
  • الاسم البديل للموضوع (أي المستخدم الذي نزور له شهادة) هو [email protected].
  • سيتم حفظ الشهادة المزورة باسم localadmin.pfx، مشفرة بكلمة مرور NewPassword123!
root@kitploit:~
C:\Tools\ForgeCert>ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword "Password123!" --Subject "CN=User" --SubjectAltName "[email protected]" --NewCertPath localadmin.pfx --NewCertPassword "NewPassword123!"
CA Certificate Information:
  Subject:        CN=theshire-DC-CA, DC=theshire, DC=local
  Issuer:         CN=theshire-DC-CA, DC=theshire, DC=local
  Start Date:     1/4/2021 10:48:02 AM
  End Date:       1/4/2026 10:58:02 AM
  Thumbprint:     187D81530E1ADBB6B8B9B961EAADC1F597E6D6A2
  Serial:         14BFC25F2B6EEDA94404D5A5B0F33E21

Forged Certificate Information:
  Subject:        CN=User
  SubjectAltName: [email protected]
  Issuer:         CN=theshire-DC-CA, DC=theshire, DC=local
  Start Date:     7/26/2021 3:38:45 PM
  End Date:       7/26/2022 3:38:45 PM
  Thumbprint:     C5789A24E91A40819EFF7CFD77150595F8B9878D
  Serial:         3627A48F90F6869C3215FF05BC3B2E42

Done. Saved forged certificate to localadmin.pfx with the password 'NewPassword123!'

يمكن إجراء هذا التزوير على نظام يتحكم به المهاجم، ويمكن استخدام الشهادة الناتجة مع Rubeus لطلب TGT (و/أو استرداد NTLM الخاص بالمستخدم ;)

اعتبارات دفاعية

TypeRefHash لقاعدة شيفرة ForgeCert الحالية هو b26b451ff2c947ae5904f962e56facbb45269995fbb813070386472f307cfcf0.

GUID TypeLib الخاص بـ ForgeCert هو bd346689-8ee6-40b3-858b-4ed94f08d40a. ينعكس هذا في قواعد Yara الموجودة حاليًا في هذا المستودع.

راجع PREVENT1 و DETECT3 و DETECT5 في الورقة البيضاء الخاصة بنا للحصول على إرشادات الوقاية والكشف.

نشر Fabian Bader منشورًا رائعًا حول كيفية تخفيف العديد من استخدامات "الشهادات الذهبية" من خلال تعديلات على OCSP من Microsoft. لاحظ مع ذلك أنه في قسم أفكار نهائية يذكر هذه الطريقة ليست مضمونة على الإطلاق. نظرًا لأن المهاجم هو المسؤول عن عملية إنشاء الشهادة، يمكنه فقط تغيير الرقم التسلسلي إلى رقم صالح. تم تنفيذ هذا في PR الخاص به، مع تذكر أن الرقم التسلسلي سيتم عشوائيًا افتراضيًا، مما يعني أن منع OSCP يجب أن يعمل في كثير من الحالات ويستحق التنفيذ في رأينا.

نعتقد أنه قد تكون هناك فرص لبناء قواعد Yara/كشف أخرى لأنواع الشهادات المزورة التي ينتجها هذا المشروع - إذا وجد أي باحث دفاعي طريقة جيدة لتوقيع هذه الملفات، فيرجى إبلاغنا وسنقوم بتحديث قواعد Yara/الإرشادات الدفاعية هنا.

تأملات

هناك توازٍ واضح بين "التذاكر الذهبية" (TGTs المزورة) وهذه "الشهادات الذهبية" (شهادات AD CS المزورة). كل من تجزئة krbtgt والمفتاح الخاص لـ CA هما مواد تشفيرية حاسمة لأمان بيئة Active Directory، ويمكن استخدام كليهما لتزوير أدوات المصادقة لمستخدمين اعتباطيين. ومع ذلك، بينما يمكن استرداد تجزئة krbtgt عن بُعد عبر DCSync، يجب استرداد المفتاح الخاص لـ CA (على الأقل بقدر ما نعلم) من خلال تنفيذ التعليمات البرمجية على جهاز CA نفسه. بينما يمكن تدوير تجزئة krbtgt بسهولة نسبيًا، فإن تدوير المفتاح الخاص لـ CA أكثر صعوبة بشكل كبير.

فيما يتعلق بالإفصاح العام، قمنا بحظر أنفسنا من إصدار أدواتنا الهجومية (ForgeCert بالإضافة إلى Certify) لمدة ~45 يومًا بعد نشر الورقة البيضاء الخاصة بنا لإعطاء المنظمات فرصة للسيطرة على المشكلات المحيطة بـ Active Directory Certificate Services. ومع ذلك، وجدنا أن المنظمات والبائعين غالبًا لم يقوموا تاريخيًا بإصلاح المشكلات أو بناء اكتشافات للهجمات "النظرية" حتى يثبت شخص ما أن شيئًا ما ممكن من خلال دليل إثبات المفهوم.

ينعكس هذا في رد فعل بعض الأشخاص على البحث: هذا غبي، بالطبع يمكنك تزوير الشهادات باستخدام المفتاح الخاص لـ CA. وبهذا نقول، نعم، العديد من الأشياء ممكنة، ولكن PoC||GTFO

تنزيل الأداة