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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Kerbeus-BOF — BOF لإساءة استخدام Kerberos (تطبيق لبعض الميزات الهامة من Rubeus). | Kitploit
أدوات/GitHubGitHub/ralfhacker/kerbeus-bof
تصعيد الامتيازاتهجمات كلمات المرورالاستغلالالحركة الجانبيةما بعد الاستغلالاختبار الاختراقالقيادة والسيطرةالمصادقةالفريق الأحمر
GitHubralfhacker/kerbeus-bof

Kerbeus-BOF

BOF لإساءة استخدام Kerberos (تطبيق لبعض الميزات الهامة من Rubeus).

60377منذ 9 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Kerbeus-BOF


ملفات كائنات المنارة (Beacon Object Files) لاستغلال Kerberos. هذا تنفيذ لبعض الميزات المهمة لمشروع Rubeus، مكتوب بلغة C. المشروع يدعم التكامل مع أطر عمل C2: Cobalt Strike و Havoc و AdaptixC2 و Outflank C2.

طلبات التذاكر والتجديدات

asktgt

يقوم إجراء asktgt ببناء حركة مرور AS-REQ (طلب TGT) خام للمستخدم المحدد ومفتاح التشفير (/rc4 أو /aes256). يمكن أيضًا استخدام علم /password بدلاً من التجزئة - في هذه الحالة سيكون /enctype:X افتراضيًا إلى RC4. إذا لم يتم تحديد /domain، يتم استخراج المجال الحالي للكمبيوتر، وإذا لم يتم تحديد /dc، يتم فعل الشيء نفسه لوحدة التحكم بالمجال الحالية للنظام. إذا نجح المصادقة، يتم تحليل AS-REP الناتج وإخراج KRB-CRED (ملف .kirbi الذي يتضمن TGT للمستخدم) ككتلة base64. علم /ptt سيقوم بعملية "pass-the-ticket" وتطبيق بيانات اعتماد Kerberos الناتجة على جلسة تسجيل الدخول الحالية. ملاحظة أمنية أخرى: يمكن تطبيق TGT واحد فقط في كل مرة على جلسة تسجيل الدخول الحالية، لذا يتم مسح TGT السابق عند تطبيق التذكرة الجديدة عند استخدام خيار /ptt.

لتكوين AS-REQ بشكل أكثر توافقًا مع الطلبات الحقيقية، يمكن استخدام علم /opsec، حيث سيرسل هذا طلب AS-REQ أولي دون مصادقة مسبقة أولاً، إذا نجح ذلك، يتم فك تشفير AS-REP الناتج وإرجاع TGT، وإلا يتم إرسال AS-REQ مع مصادقة مسبقة.

يمكن طلب TGT بدون PAC باستخدام المفتاح /nopac. يمكن استخدام علم /nopreauth لإرسال AS-REQ دون مصادقة مسبقة.

root@kitploit:~
krb_asktgt /user:USER /password:PASSWORD [/domain:DOMAIN] [/dc:DC] [/enctype:{rc4|aes256}] [/ptt] [/nopac] [/opsec]
krb_asktgt /user:USER /aes256:HASH [/domain:DOMAIN] [/dc:DC] [/ptt] [/nopac] [/opsec]
krb_asktgt /user:USER /rc4:HASH [/domain:DOMAIN] [/dc:DC] [/ptt] [/nopac]
krb_asktgt /user:USER /nopreauth [/domain:DOMAIN] [/dc:DC] [/ptt]

asktgs

يقوم إجراء asktgs ببناء/تحليل طلب خدمة TGS-REQ/TGS-REP خام باستخدام TGT المحدد /ticket:X المقدم. يجب أن تكون هذه القيمة ترميز base64 لملف .kirbi. إذا لم يتم تحديد /dc، يتم استخراج وحدة التحكم بالمجال الحالية للكمبيوتر واستخدامها كوجهة لحركة المرور الطالبة. علم /ptt سيقوم بعملية "pass-the-ticket" وتطبيق تذكرة الخدمة الناتجة على جلسة تسجيل الدخول الحالية. يجب تحديد واحد أو أكثر من /service:X SPNs، مفصولة بفواصل.

أنواع التشفير المدعومة في TGS-REQ المنشأة هي RC4_HMAC و AES256_CTS_HMAC_SHA1. في هذه الحالة، سيستخدم KDC أعلى تشفير مدعوم بشكل متبادل لبناء تذكرة الخدمة المعادة. إذا كنت ترغب في فرض مفاتيح RC4 أو AES256، استخدم /enctype:[rc4 or aes256].

لتكوين TGS-REQ بشكل أكثر توافقًا مع الطلبات الحقيقية، يمكن استخدام علم /opsec، سيؤدي هذا أيضًا إلى إرسال TGS-REQ إضافي تلقائيًا عند طلب تذكرة خدمة لحساب تم تكوينه للتفويض غير المقيد.

تم تنفيذ علم /u2u لطلب تذاكر من مستخدم إلى مستخدم (User-to-User). مع وسيطة /tgs:X (لتزويد TGT للحساب الهدف)، يمكن أن تكون وسيطة /service:X اسم المستخدم للحساب الذي تم تزويد TGT له (مع وسيطة /tgs:X). وسيطة /targetuser:X ستطلب PAC لأي حساب آخر عن طريق إدراج قسم بيانات PA-FOR-USER باسم مستخدم المستخدم الهدف.

تم تنفيذ علم /keyList لطلبات قائمة مفاتيح Kerberos. يجب أن تستخدم هذه الطلبات TGT جزئي مُزور من وحدة تحكم مجال للقراءة فقط في معامل /ticket:BASE64. علاوة على ذلك، يجب تعيين حقل /spn:x إلى SPN الخاص بـ KRBTGT داخل المجال، على سبيل المثال KRBTBT/domain.local.

root@kitploit:~
krb_asktgs /ticket:BASE64 /service:SPN1,SPN2,... [/domain:DOMAIN] [/dc:DC] [/tgs:BASE64] [/targetdomain:DOMAIN] [/targetuser:USER] [/enctype:{rc4|aes256}] [/ptt] [/keylist] [/u2u] [/opsec]

renew

يقوم إجراء renew ببناء/تحليل تبادل تجديد TGT خام TGS-REQ/TGS-REP باستخدام /ticket:X المقدم. يجب أن تكون هذه القيمة ترميز base64 لملف .kirbi. إذا لم يتم تحديد /dc، يتم استخراج وحدة التحكم بالمجال الحالية للكمبيوتر واستخدامها كوجهة لحركة التجديد. علم /ptt سيقوم بعملية "pass-the-ticket" وتطبيق بيانات اعتماد Kerberos الناتجة على جلسة تسجيل الدخول الحالية.

root@kitploit:~
krb_renew /ticket:BASE64 [/dc:DC] [/ptt]

استغلال التفويض المقيد

إذا تم تكوين حساب (مستخدم أو كمبيوتر) للتفويض المقيد (أي لديه قيمة SPN في حقل msds-allowedtodelegateto الخاص به)، يمكن استخدام هذا الإجراء لاستغلال الوصول إلى SPN/الخادم الهدف.

شرح مختصر هو أن الحساب الذي تم تمكين التفويض المقيد له يُسمح له بطلب تذاكر لنفسه كأي مستخدم، في عملية تُعرف بـ S4U2self. لكي يُسمح للحساب بفعل ذلك، يجب أن يكون لديه TrustedToAuthForDelegation ممكّنًا في خاصية useraccountcontrol الخاصة به، وهو شيء لا يمكن تعديله إلا من قبل المستخدمين المميزين افتراضيًا. هذه التذكرة تحمل علامة FORWARDABLE افتراضية. يمكن للخدمة بعد ذلك استخدام هذه التذكرة المطلوبة بشكل خاص لطلب تذكرة خدمة لأي اسم رئيسي خدمة (SPN) محدد في حقل msds-allowedtodelegateto للحساب. باختصار، إذا كنت تتحكم في حساب مع تعيين TrustedToAuthForDelegation وقيمة في msds-allowedtodelegateto، يمكنك التظاهر بأنك أي مستخدم في المجال لـ SPNs المحددة في حقل msds-allowedtodelegateto للحساب.

يمكن بعد ذلك استخدام تذكرة S4U2self كمعامل /tgs:Y (كتلة base64) لتنفيذ عملية S4U2proxy. يجب توفير قيمة صالحة لـ msds-allowedtodelegateto للحساب (/service:X).

معامل /altservice يسمح لنا باستبدال أي اسم خدمة نريده في ملف KRB-CRED الناتج. يمكن توفير اسم خدمة بديل واحد أو أكثر، مفصولة بفواصل (/altservice:cifs,HOST,...).

لتكوين TGS-REQ بشكل أكثر توافقًا مع الطلبات الحقيقية، يمكن استخدام علم /opsec.

من الممكن، في بعض الظروف، استخدام تذكرة S4U2Self لانتحال المستخدمين المحميين من أجل تصعيد الامتيازات على النظام الطالب، كما نوقش هنا. لهذا الغرض، يمكن استخدام علم /self ووسيطة /altservice:X لإنشاء تذكرة خدمة قابلة للاستخدام.

لتزوير إحالة S4U2Self، يكون مفتاح الثقة هو المطلوب فقط. باستخدام وسيطة /targetdomain:X مع علم /self وبدون وسيطة /targetdc، سيتم التعامل مع التذكرة المقدمة مع /ticket:X كإحالة S4U2Self وطلب تذكرة خدمة S4U2Self النهائية فقط. يمكن أيضًا استخدام /altservice:X لإعادة كتابة sname في التذكرة الناتجة.

root@kitploit:~
krb_s4u /ticket:BASE64 /service:SPN {/impersonateuser:USER | /tgs:BASE64} [/domain:DOMAIN] [/dc:DC] [/altservice:SERVICE] [/ptt] [/nopac] [/opsec] [/self]
krb_cross_s4u /ticket:BASE64 /service:SPN /targetdomain:DOMAIN /targetdc:DC {/impersonateuser:USER | /tgs:BASE64} [/domain:DOMAIN] [/dc:DC] [/altservice:SERVICE] [/nopac] [/self]

إدارة التذاكر

ptt

يقوم إجراء ptt بتقديم /ticket:X (TGT أو تذكرة خدمة) لجلسة تسجيل الدخول الحالية من خلال API LsaCallAuthenticationPackage() مع رسالة KERB_SUBMIT_TKT_REQUEST، أو (إذا كان مرتفع الامتياز) لجلسة تسجيل الدخول المحددة بواسطة /luid:ea4... مثل معاملات /ticket:X الأخرى، يمكن أن تكون القيمة ترميز base64 لملف .kirbi.

root@kitploit:~
krb_ptt /ticket:BASE64 [/luid:LOGONID]

purge

يقوم إجراء purge بمسح جميع تذاكر Kerberos من جلسة تسجيل الدخول الحالية، أو (إذا كان مرتفع الامتياز) جلسة تسجيل الدخول المحددة بواسطة /luid:0xA...

root@kitploit:~
krb_purge [/luid:LOGONID]

describe

يقوم إجراء describe بأخذ قيمة /ticket:X (TGT أو تذكرة خدمة)، وتحليلها، ووصف قيم التذكرة. مثل معاملات /ticket:X الأخرى، يمكن أن تكون القيمة ترميز base64 لملف .kirbi.

root@kitploit:~
krb_describe /ticket:BASE64

klist

يقوم klist بإدراج معلومات مفصلة عن جلسة تسجيل الدخول الحالية للمستخدم وتذاكر Kerberos، إذا لم يكن مرتفع الامتياز. إذا تم تشغيله من سياق مرتفع الامتياز (SYSTEM)، يتم عرض معلومات عن جميع جلسات تسجيل الدخول وتذاكر Kerberos المرتبطة بها. يمكن عرض معلومات تسجيل الدخول والتذاكر لـ LogonID محدد باستخدام /luid:3ea.. (إذا كان مرتفع الامتياز).

root@kitploit:~
krb_klist [/luid:LOGINID] [/user:USER] [/service:SERVICE] [/client:CLIENT]

dump

يقوم إجراء dump باستخراج TGTs الحالية وتذاكر الخدمة إذا كان في سياق مرتفع الامتياز (SYSTEM). إذا لم يكن مرتفع الامتياز، يتم استخراج تذاكر الخدمة للمستخدم الحالي.

root@kitploit:~
krb_dump [/luid:LOGINID] [/user:USER] [/service:SERVICE] [/client:CLIENT]

triage

يقوم إجراء triage بإخراج جدول تذاكر Kerberos للمستخدم الحالي، إذا لم يكن مرتفع الامتياز. إذا تم تشغيله من سياق مرتفع الامتياز (SYSTEM)، يتم عرض جدول يصف جميع تذاكر Kerberos على النظام.

root@kitploit:~
krb_triage [/luid:LOGINID] [/user:USER] [/service:SERVICE] [/client:CLIENT]

عوامل التصفية

بالنسبة لـ klist و triage و dump، يمكن تصفية التذاكر بواسطة /luid و /service و /client.

يتطلب سياق SYSTEM.

tgtdeleg

يستغل tgtdeleg GSS-API الخاص بـ Kerberos لاسترداد TGT قابل للاستخدام للمستخدم الحالي دون الحاجة إلى رفع الامتياز على المضيف. يتم استخدام AcquireCredentialsHandle() للحصول على مقبض لبيانات اعتماد أمان Kerberos للمستخدم الحالي، و InitializeSecurityContext() مع علم ISC_REQ_DELEGATE و SPN هدف CIFS/DC.domain.com لإعداد سياق مفوض مزيف لإرساله إلى DC. ينتج عن هذا AP-REQ في مخرجات GSS-API التي تحتوي على KRB_CRED في مجموع التحقق من المصادقة (authenticator checksum). يتم استخراج مفتاح جلسة تذكرة الخدمة من ذاكرة التخزين المؤقت المحلية لـ Kerberos ويستخدم لفك تشفير KRB_CRED في المصادق، مما ينتج عنه TGT .kirbi قابل للاستخدام.

إذا فشل الاستخراج التلقائي للهدف/المجال، يمكن تحديد SPN معروف لخدمة تم تكوينها بتفويض غير مقيد باستخدام /target:SPN.

root@kitploit:~
krb_tgtdeleg [/target:SPN]

التحميص (Roasting)

kerberoasting

يستخدم kerberoasting لطلب تذكرة الخدمة المناسبة. وسيطة /ticket:X تحدد تذكرة TGT لمستخدم المجال. وسيطة /spn:X تحدد SPN الهدف. وسيطتا /domain و /dc اختياريتان وتستردان الإعدادات الافتراضية للنظام مثل الإجراءات الأخرى.

وسيطة /nopreauth:USER ستحاول إرسال AS-REQ مع الخدمة الممررة إلى /spn:Y لطلب تذاكر الخدمة.

root@kitploit:~
krb_kerberoasting /spn:SPN [/nopreauth:USER] [/dc:DC] [/domain:DOMAIN]
krb_kerberoasting /spn:SPN /ticket:BASE64 [/dc:DC]

asreproasting

إذا لم يكن لدى مستخدم المجال تمكين المصادقة المسبقة لـ Kerberos، يمكن طلب AS-REP بنجاح للمستخدم، ويمكن اختراق جزء من الهيكل دون اتصال بالإنترنت على غرار kerberoasting. وسيطة /user:X تحدد المستخدم الهدف. وسيطتا /domain و /dc اختياريتان، ويتم سحب الإعدادات الافتراضية للنظام مثل الإجراءات الأخرى.

root@kitploit:~
krb_asreproasting /user:USER [/dc:DC] [/domain:DOMAIN]

متنوعات

hash

يقوم إجراء hash بأخذ /password:X واختياريًا /user:USER و/أو /domain:DOMAIN. سيولد تمثيل rc4_hmac (NTLM) لكلمة المرور. إذا تم تحديد اسم المستخدم والمجال، يتم توليد نماذج التجزئة aes128_cts_hmac_sha1 و aes256_cts_hmac_sha1. يتم استخدام اسم المستخدم والمجال كأملاح (salts) لتنفيذات AES.

root@kitploit:~
krb_hash /password:PASSWORD [/user:USER] [/domain:DOMAIN]

changepw

يقوم إجراء changepw بأخذ blob TGT .kirbi للمستخدم وتنفيذ تغيير كلمة مرور MS kpasswd بالقيمة المحددة /new:PASSWORD. إذا لم يتم تحديد /dc، يتم استخراج وحدة التحكم بالمجال الحالية للكمبيوتر واستخدامها كوجهة لحركة إعادة تعيين كلمة المرور.

يمكن استخدام وسيطتي /targetuser و /targetdomain لتغيير كلمة مرور مستخدمين آخرين، بشرط أن يكون المستخدم الذي يملك TGT لديه امتيازات كافية.

لاحظ أنه يمكن استخدام إما TGT للمستخدم أو تذكرة خدمة لـ kadmin/changepw لتغيير كلمة المرور

root@kitploit:~
krb_changepw /ticket:BASE64 /new:PASSWORD [/dc:DC] [/targetuser:USER] [/targetdomain:DOMAIN]

TODO

  • تنفيذ asktgt /cert:...
  • إعادة هيكلة الكود لتقليل حجم BOFs
  • توسيع مخرجات describe
  • إذا كنت بحاجة إلى أي شيء، راسلني على X أو TG :)

الإسناد

  • Rubeus - https://github.com/GhostPack/Rubeus
  • CS-Situational-Awareness-BOF - https://github.com/trustedsec/CS-Situational-Awareness-BOF
  • nanorobeus - https://github.com/wavvs/nanorobeus
تنزيل الأداة