
أسقط أي أثر Windows DPAPI وسيتعرف على التنسيق ومفتاح master المطلوب بالضبط، ثم يفك التشفير بمجرد تزويده بالمفتاح. يعمل دون اتصال، عبر واجهة سطر الأوامر وواجهة الويب.
مجموعة أدوات دون اتصال لأدلة Windows DPAPI. تجمع الملفات، وتوجّه الأداة نحو أحد الآثار، فتتعرّف على التنسيق وتخبرك بالضبط أي مفتاح رئيسي تحتاجه؛ أنت توفّر مادة المفتاح فتقوم الأداة بفك التشفير.
معظم أدوات DPAPI هي سكربت واحد لكل تنسيق، أو ميزة مدفونة داخل إطار عمل هجومي أكبر. هذه أداة واحدة تغطي النطاق كاملًا — المفاتيح الرئيسية، وكتل DPAPI، وCredential Manager، وVault، وCREDHIST، وWi-Fi، وRDP/RDCMan، ومفاتيح وشهادات CAPI/CNG، وPowerShell SecureStrings، وKeePass، وSCCM، ومفاتيح Chromium os_crypt، و(مع إضافة اختيارية) DPAPI-NG — تُشغَّل من الملفات المجمّعة وحدها، بواجهة سطر أوامر وواجهة ويب محلية للسحب والإفلات فوق النواة نفسها.
صُمّمت للفريق الأحمر واختبار الاختراق، وDFIR، والبحث الأمني. لا يُستخدم أي وصول مباشر إلى المضيف، أو وحدة تحكم المجال، أو الشبكة، أو BKRP، أو LSASS، ولا تقوم بكرّ القوة على كلمات المرور أو رموز PIN: أنت توفّر الآثار المجمّعة ومادة المفتاح صراحةً.
لا تستخدم هذا إلا ضد الأنظمة والأدلة التي تملكها أو المصرّح لك صراحةً بفحصها.

لقد جمعت مجلد Protect الخاص بمستخدم وملف Credential Manager دون اتصال، وتعرف كلمة مرور الحساب. افحص بيانات الاعتماد أولًا — دون الحاجة إلى مفتاح:
python3 dpapi_toolkit.py CREDENTIAL_FILE
يطبع كتلة DPAPI المضمّنة ومعرّف المفتاح الرئيسي (GUID) الذي يتطلبه. وجّهه إلى مجلد Protect ودعه يطابق ويفتح ذلك المفتاح الرئيسي، ثم فكّ التشفير:
python3 dpapi_toolkit.py CREDENTIAL_FILE --type credential \
--masterkey-dir Protect-S-1-5-21-... \
--sid S-1-5-21-... \
--password 'password'
النتيجة JSON تحتوي على الهدف، واسم المستخدم، وبيانات الاعتماد المستعادة. ينطبق تدفق الفحص-ثم-فك-التشفير نفسه على كل تنسيق مدعوم.
Python 3.10 أو أحدث. الاعتمادية الصلبة الوحيدة هي
cryptography:
python3 -m pip install cryptography
الاعتماديات الاختيارية تُفعّل ميزات محددة:
python3 -m pip install python-registry # read Outlook data from NTUSER.DAT
python3 -m pip install dpapi-ng # offline DPAPI-NG plugin
python3 -m pip install impacket # offline SYSTEM/SECURITY/SAM hive plugin
لا حاجة إلى مضيف Windows مباشر، أو وحدة تحكم مجال، أو اتصال شبكة، أو وصول LSASS. يجب أن تكون أسرار السجل والمفاتيح الرئيسية قد جُمعت مسبقًا.
ConvertFrom-SecureString / Export-Clixml SecureStrings..vpol/.vcrd)، وسجل كلمات المرور CREDHIST..rdp وRDCMan .rdg/.settings.ProtectedUserKey.bin، وأسرار سياسة SCCM، وOutlook IMAP، ومفاتيح Windows Hello / NGC المدعومة برمجيًا، ومفاتيح Chromium os_crypt.$DPAPImk$ (Hashcat 15300/15310/15900/15910)، و$MSONLINEACCOUNT$ CacheData (الوضع 33700)، وهاشات SAM NT المحلية. راجع docs/hashes.md.تعتمد طريقة الفتح على ما لديك بالفعل. هذا الجدول يربطها بخيار سطر الأوامر؛ وتظهر الخيارات نفسها في واجهة الويب تحت 2. Unlock key.
| ما لديك | الحجم / الشكل | الخيار |
|---|---|---|
| مفتاح Windows رئيسي مشفّر | ملف باسم GUID تحت Protect | --masterkey FILE مع طريقة فتح |
| مفتاح رئيسي مفكوك التشفير | 64 بايت | --real-masterkey FILE_OR_HEX_OR_BASE64 |
| تعيين SHA1 لمفتاح رئيسي مفكوك التشفير | 20 بايت | --real-masterkey FILE_OR_HEX_OR_BASE64 |
| سر DPAPI_SYSTEM | MachineKey || UserKey بحجم 40 بايت، أو مفتاح واحد بحجم 20 بايت، أو 44 بايت مع الإصدار | --dpapi-system FILE_OR_HEX_OR_TEXT |
| prekey نهائي للمستخدم مرتبط بـ SID | 20 بايت | --prekey FILE_OR_HEX |
| NT hash | 16 بايت | --nt-hash FILE_OR_HEX --sid SID |
| هاش كلمة مرور SHA1 محلي | SHA1(password as UTF-16LE) بحجم 20 بايت | --sha1-hash FILE_OR_HEX --sid SID |
| مفتاح اعتماد غير مرتبط | 16–128 بايت | --credkey FILE_OR_HEX --sid SID |
| مادة نسخ احتياطي AD DPAPI | PEM، أو DER، أو PVK، أو CAPI PRIVATEKEYBLOB، أو مفتاح ServerWrap بحجم 256 بايت | --domain-backup-key VALUE أو --pvk VALUE |
قيمة DPAPI_SYSTEM بحجم 40/44 بايت ليست مفتاحًا رئيسيًا مفكوك التشفير. استخدمها لفك تشفير مفتاح رئيسي لـ SYSTEM باسم GUID، ثم استخدم المفتاح الرئيسي الناتج بحجم 64 بايت لفك تشفير الأثر.
واجهة الويب هي واجهة أمامية رقيقة فوق النواة دون اتصال نفسها، لذا تتطابق نتائجها مع سطر الأوامر تمامًا:
python3 dpapi_web.py # http://127.0.0.1:8765/
ترتبط بـ 127.0.0.1 فقط، ولا يوجد خيار للارتباط بـ LAN/العام، وتحتفظ بالنتائج المفكوكة في ذاكرة محدودة لتنزيل واحد لمرة واحدة، ولا تكتب مخرجات مفكوكة دائمة. راجع docs/web-ui.md لسير العمل الكامل، وتدفقات كل تنسيق، والوضعية الأمنية.
| الدليل | المحتويات |
|---|---|
| docs/cli-reference.md | الفحص، وفتح المفتاح الرئيسي، وخيارات الإخراج، والإنتروبيا، وتصدير Hashcat، ووضع الدفعات، ومواقع الجمع الافتراضية، واستكشاف الأخطاء. |
| docs/artifacts.md | أمثلة أوامر لكل تنسيق لكل أثر مدعوم. |
| docs/web-ui.md | واجهة الويب المحلية: سير العمل الكامل، وتدفقات الآثار الأساسية، والاستعادة المتسلسلة، ونموذجها الأمني. |
| docs/plugins.md | الإضافات القابلة للإزالة دون اتصال (Certificate/PFX، وCacheData، وWindows hives، وDPAPI-NG) ودليل DPAPI-NG. |
| docs/hashes.md | الحصول على هاشات قابلة للكرّ لاستعادة كلمات المرور دون اتصال — $DPAPImk$، و$MSONLINEACCOUNT$، وهاشات SAM NT، مع أوامر Hashcat. |
المساعدة السريعة مدمجة أيضًا: python3 dpapi_toolkit.py -h للمساعدة المختصرة، و-hh للمساعدة التفصيلية حول المفاتيح/الآثار/المواقع/القيود، وإضافة --structure إلى أي أثر تطبع حقوله المُحلَّلة دون فك التشفير.
| الملف | الغرض |
|---|---|
dpapi_toolkit.py | التحليل/فك التشفير الأساسي بالإضافة إلى سطر الأوامر. قابل للاستيراد أيضًا كوحدة. |
dpapi_web.py | واجهة ويب محلية بلا اعتماديات (خادم HTTP من المكتبة القياسية). |
dpapi_plugins.py | اكتشاف البيان والتحميل الكسول للإضافات دون اتصال. |
plugins/certificate_pfx/ | مطابقة الشهادات/المفاتيح الخاصة وإنشاء PKCS#12/PFX دون اتصال. |
plugins/cachedata/ | مفكّك CacheData لـ Entra ID/CloudAP بكلمة مرور معروفة ومصدّر Hashcat mode-33700. |
plugins/dpapi_ng/ | فك تشفير واصف SID لـ DPAPI-NG من مفتاح جذر KDS مُوفَّر محليًا. |
plugins/windows_hives/ | استخراج DPAPI_SYSTEM دون اتصال وتصدير هاش SAM المحلي الاختياري. |
مجموعة الأدوات دون اتصال عن قصد: لا HTTP صادر، ولا RPC، ولا وحدة تحكم مجال، ولا BKRP، ولا LSASS، ولا وصول إلى السجل المباشر، ولا كرّ قوة على كلمات المرور/رموز PIN. عدا ذلك: