Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pywhisker — نسخة بايثون من أداة C# لهجمات "Shadow Credentials" | Kitploit
أدوات/GitHubGitHub/shutdownrepo/pywhisker
تصعيد الامتيازاتالاستغلالاختبار الاختراقالمصادقة
GitHubshutdownrepo/pywhisker

pywhisker

نسخة بايثون من أداة C# لهجمات "Shadow Credentials"

عرض المستودع
92210712منذ 3 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

pyWhisker

pyWhisker هو معادل بلغة بايثون للأداة الأصلية Whisker التي صنعها Elad Shamir والمكتوبة بلغة C#. تسمح هذه الأداة للمستخدمين بالتلاعب بخاصية msDS-KeyCredentialLink لمستخدم/كمبيوتر هدف للحصول على سيطرة كاملة على ذلك الكائن. تعتمد على Impacket وعلى معادل بلغة بايثون لـ DSInternals الخاص بـ Michael Grafnetter يُسمى PyDSInternals من صنع podalirius. هذه الأداة، إلى جانب PKINITtools الخاصة بـ Dirk-jan، تسمح باستغلال أولي كامل على الأنظمة المبنية على يونكس فقط.

المتطلبات الأساسية لهذا الهجوم هي كما يلي:

  1. يجب أن يكون مستوى الوظيفة للنطاق الهدف Windows Server 2016 أو أعلى.
  2. يجب أن يحتوي النطاق الهدف على وحدة تحكم نطاق واحدة على الأقل تعمل بنظام Windows Server 2016 أو أعلى.
  3. يجب أن يكون لوحدة تحكم النطاق المستخدمة أثناء الهجوم شهادتها ومفاتيحها الخاصة (وهذا يعني إما أن المؤسسة يجب أن تمتلك AD CS، أو PKI، أو CA أو ما شابه ذلك).
  4. يجب أن يكون المهاجم مسيطرًا على حساب قادر على الكتابة في خاصية msDs-KeyCredentialLink لحساب المستخدم أو الكمبيوتر الهدف.

لماذا بعض المتطلبات؟

  • المتطلبان 1 و2 لأن ميزات PKINIT تم تقديمها مع Windows Server 2016.
  • المتطلب 3 لأن وحدة التحكم في النطاق تحتاج إلى شهادتها ومفاتيحها الخاصة لتبادل مفتاح الجلسة أثناء معاملة AS_REQ <-> AS_REP.

سيتم رفع KRB-ERROR (16) : KDC_ERR_PADATA_TYPE_NOSUPP إذا لم يتم استيفاء المتطلب رقم 3.

مزيد من المعلومات حول هذه الأولية "Shadow Credentials":

  • Shadow Credentials: إساءة استخدام تعيين حساب الثقة الرئيسي للاستيلاء
  • The Hacker Recipes - إساءة استخدام ACEs و DACL
  • The Hacker Recipes - بيانات اعتماد الظل

الاستخدام

يمكن استخدام pyWhisker لتنفيذ إجراءات متنوعة على خاصية msDs-KeyCredentialLink لهدف:

  • list: عرض جميع معرفات KeyCredentials الحالية ووقت الإنشاء
  • add: إضافة KeyCredential جديد إلى msDs-KeyCredentialLink
  • spray: إضافة KeyCredential جديد بشكل عشوائي إلى msDs-KeyCredentialLink
  • remove: إزالة KeyCredential من msDs-KeyCredentialLink
  • clear: إزالة جميع KeyCredentials من msDs-KeyCredentialLink
  • info: طباعة جميع المعلومات الموجودة في هيكل KeyCredential
  • export: تصدير جميع KeyCredentials من msDs-KeyCredentialLink بتنسيق JSON
  • import: استبدال msDs-KeyCredentialLink بـ KeyCredentials من ملف JSON

يدعم pyWhisker طرق المصادقة التالية:

  • (NTLM) كلمة مرور نصية واضحة
  • (NTLM) Pass-the-hash
  • (Kerberos) كلمة مرور نصية واضحة
  • (Kerberos) Pass-the-key / Overpass-the-hash
  • (Kerberos) Pass-the-cache (نوع من Pass-the-ticket)
  • (LDAP عبر Schannel) Pass-the-cert

من بين أشياء أخرى، يدعم pyWhisker مستويات متعددة من الإسهاب، فقط ألحق -v، -vv، ... إلى الأمر :)

يمكن لـ pyWhisker أيضًا العمل عبر النطاقات، انظر الوسيطة -td/--target-domain.

usage: pywhisker [-h] (-t TARGET_SAMNAME | -tl TARGET_SAMNAME_LIST) [-a [{list,add,spray,remove,clear,info,export,import}]] [--use-ldaps] [--use-schannel] [-v] [-q]
                 [--dc-ip ip address] [-d DOMAIN] [-u USER] [-crt CERTFILE] [-key KEYFILE] [-td TARGET_DOMAIN] [--no-pass | -p PASSWORD | -H [LMHASH:]NTHASH | --aes-key hex key]
                 [-k] [-P PFX_PASSWORD] [-f FILENAME] [-e {PEM,PFX}] [-D DEVICE_ID]

Python (re)setter for property msDS-KeyCredentialLink for Shadow Credentials attacks.

وسائط اختيارية:
  -h, --help            إظهار رسالة المساعدة هذه والخروج
  -t TARGET_SAMNAME, --target TARGET_SAMNAME
                        الحساب الهدف
  -tl TARGET_SAMNAME_LIST, --target-list TARGET_SAMNAME_LIST
                        مسار إلى ملف يحتوي على أسماء الحسابات الهدف (واحد لكل سطر)
  -a [{list,add,spray,remove,clear,info,export,import}], --action [{list,add,spray,remove,clear,info,export,import}]
                        الإجراء الذي سيتم تنفيذه على msDS-KeyCredentialLink
  --use-ldaps           استخدام LDAPS بدلاً من LDAP
  --use-schannel        استخدام LDAP Schannel (TLS) للمصادقة المستندة إلى الشهادة
  -v, --verbose         مستوى الإسهاب (-v للإسهاب، -vv للتصحيح)
  -q, --quiet           عدم عرض أي معلومات على الإطلاق

المصادقة والاتصال:
  --dc-ip ip address    عنوان IP لوحدة تحكم النطاق أو KDC لـ Kerberos. إذا تم حذفه، فسيتم استخدام جزء النطاق (FQDN) المحدد في معرّف الهوية
  -d DOMAIN, --domain DOMAIN
                        النطاق (FQDN) للمصادقة عليه
  -u USER, --user USER  المستخدم للمصادقة به
  -crt, --certfile CERTFILE
                        مسار إلى شهادة المستخدم (تنسيق PEM) لمصادقة Schannel
  -key, --keyfile KEYFILE
                        مسار إلى المفتاح الخاص للمستخدم (تنسيق PEM) لمصادقة Schannel
  -td TARGET_DOMAIN, --target-domain TARGET_DOMAIN
                        النطاق الهدف (إذا كان مختلفًا عن نطاق المستخدم المصادق)

  --no-pass             لا تطلب كلمة مرور (مفيد لـ -k)
  -p PASSWORD, --password PASSWORD
                        كلمة المرور للمصادقة بها
  -H [LMHASH:]NTHASH, --hashes [LMHASH:]NTHASH
                        تجزئات NT/LM، التنسيق هو LMhash:NThash
  --aes-key hex key     مفتاح AES لاستخدامه في مصادقة Kerberos (128 أو 256 بت)
  -k, --kerberos        استخدام مصادقة Kerberos. يحصل على بيانات الاعتماد من ملف .ccache (KRB5CCNAME) بناءً على معلمات الهدف. إذا تعذر العثور على بيانات اعتماد صالحة، فسيستخدم تلك المحددة في سطر الأوامر

الوسائط عند تعيين الإجراء إلى add:
  -P PFX_PASSWORD, --pfx-password PFX_PASSWORD
                        كلمة مرور لشهادة PFX الموقعة ذاتيًا المخزنة (ستكون عشوائية إذا لم يتم تعيينها، غير مطلوبة عند التصدير إلى PEM)
  -f FILENAME, --filename FILENAME
                        اسم الملف لتخزين شهادة ومفتاح PEM أو PFX الموقع ذاتيًا المُنشأ، أو اسم الملف لإجراءات "import"/"export"
  -e {PEM,PFX}, --export {PEM,PFX}
                        اختر تصدير الشهادة + المفتاح الخاص بتنسيق PEM أو PFX (أي #PKCS12) (الافتراضي: PFX))

الوسائط عند تعيين الإجراء إلى remove:
  -D DEVICE_ID, --device-id DEVICE_ID
                        معرف الجهاز لـ KeyCredentialLink المراد إزالته عند تعيين الإجراء إلى remove

فيما يلي أمثلة ولقطات شاشة لما يمكن أن يفعله pyWhisker.

العرض والحصول على المعلومات

لدى pyWhisker القدرة على عرض KeyCredentials الموجودة. بالإضافة إلى ذلك، يمكنه توسيع الهيكل بأكمله لعرض كل جزء من المعلومات التي يحتوي عليها هذا الكائن (بما في ذلك معلمات المفتاح العام RSA).

python3 pywhisker.py -d "domain.local" -u "user1" -p "complexpassword" --target "user2" --action "list"
python3 pywhisker.py -d "domain.local" -u "user1" -p "complexpassword" --target "user2" --action "info" --device-id 6419739b-ff90-f5c7-0737-1331daeb7db6

المسح والإزالة

لدى pyWhisker القدرة على إزالة قيم محددة أو مسح الخاصية بالكامل.

تنزيل الأداة