العودة إلى التحديثات
New releaseAug 23, 2026

Kestrel v.1.1.0

أداة تعداد أمني لأكتيف ديركتوري منخفضة الظهور تستخدم واجهات ADSI/COM الأصلية. تعدّد قوائم ACL، والتفويض، وعلاقات الثقة، وADCS، وأهداف Kerberoast، ومسارات الهجوم دون الحاجة إلى .NET أو PowerShell، مع إنتاج مخرجات متوافقة مع BloodHound.

مشاركة

Kestrel

build license language dependencies

BloodHound يريك المسار. Kestrel يريك ما هو موجود في الداخل بالفعل.

الجميع يرسمون نفس الشيء: مسار الهجوم - من يستطيع الوصول إلى Domain Admin. إنه السؤال الصحيح، والأدوات التي تجيب عليه ممتازة. لكن الرسم البياني لـ«من يستطيع الوصول إلى من» أعمى عن فئة كاملة من المشاكل، لأن بعض أسوأ الأشياء في Active Directory ليست مسارًا على الإطلاق.

إنها باب خلفي ملحوم في سمة (attribute). شهادة تظل تصادق لفترة طويلة بعد إعادة تعيين كلمة المرور. صلاحية مطبوعة في المخطط (schema) نفسه، بحيث يرثها كل كائن يُنشأ من الآن فصاعدًا بصمت. حساب محذوف احتفظ شخص ما بهدوء بحق إعادته. كائن مخفي عن التعداد بواسطة ACE واحد يمنع القراءة.

لا شيء من ذلك يظهر كحافة (edge) في رسم بياني. كل ذلك موجود في دليلك الآن. يقرؤه Kestrel - باستدعاءات Windows أصلية، وصلاحيات مستخدم نطاق عادي، دون خادم، ودون Python، ودون وكيل، وببصمة على وحدة تحكم النطاق (domain controller) مقيدة لدرجة أنها موثقة حدثًا بحدث.

ملف .exe واحد. أمر واحد. كل ما يلي.


كنت تنظر في الاتجاه الخاطئ

النظام البيئي الهجومي لـ Active Directory - SharpHound وimpacket وCertipy والرسم البياني الذي يقف خلفها - ممتاز، وكلها تنظر إلى السطح نفسه: قابلية الوصول (reachability). ينظر Kestrel إلى الأبعاد الثلاثة التي لا يستطيع ذلك السطح التعبير عنها.

  • الزمن. الرسم البياني لقطة سريعة (snapshot). يقرأ Kestrel بيانات تعريف النسخ المتماثل (replication metadata) - متى تغيرت سمة من Tier-0 وأي DC كان مصدرها. صلاحية DCSync الممنوحة الليلة الماضية ليست النتيجة نفسها لصلاحية موجودة منذ سنوات، وواحدة فقط منهما تعني أنك تتعرض للهجوم الآن.
  • الاستمرارية في سمة، لا في حافة. Shadow credentials، وSID history، وإعادة إحياء القبور (reanimate-tombstones)، وبوابات خلفية في defaultSecurityDescriptor بالمخطط، وكائنات مخفية، وACEs من نوع deny لـ OWNER RIGHTS، ومفاتيح AD FS DKM. لا تجمع أدوات الرسوم البيانية هذه الأشياء لأنه لا توجد حافة لرسمها.
  • الوضع الدفاعي، معكوسًا. ليس «من يستطيع الهجوم»، بل «ما هو غير محمي» - حساب Tier-0 خارج نطاقه المعزول، حساب المزامنة ذو RID العشوائي الذي لم يضع له أحد وسمًا، سياسة القفل التي لا تكبح أبدًا هجمات التخمين (spray).

ليس الأمر أن Kestrel أسرع من رسم بياني. إنه يجيب عن أسئلة لا يستطيع الرسم البياني طرحها.


كل خطايا Active Directory، في ملف exe أصلي واحد

الخطيئةما يجده Kestrelالأعلام (Flags)
النسخ المتماثل والتفويضصلاحيات DCSync (من يمكنه النسخ المتماثل - دون النسخ أبدًا)، تفويض غير مقيد / مقيد / RBCD / S4U--acl · --delegation
إساءة استخدام الشهاداتAD CS ESC1–5/9، مرجع تصديق (CA) مارق في مخزن NTAuth، استمرارية شهادات طويلة العمر، ACL لمفتاح AD FS DKM - الشرط المسبق لـ Golden SAML--adcs · --adfs
الاستمرارية في السماتShadow credentials، حقن SID history، صلاحيات إعادة إحياء القبور، كائنات مخفية، بوابات خلفية في defaultSecurityDescriptor بالمخطط، adminCount يتيمة--shadowcreds · --sidhistory · --acl · --schema · --adminsdholder
بيانات اعتماد نصية وقابلة للكسرGPP cpassword، أسرار unattend/sysprep وكلمات مرور السكربتات عبر SYSVOL، حسابات قابلة للـ Kerberoast والـ AS-REP roast، فجوات في تغطية LAPS--gpp · --roast · --laps
عبر النطاقات والهجينكيانات رئيسية أجنبية في مجموعات مميزة، حسابات مزامنة Entra Connect موسومة كـ Tier-0، وضع الثقة (trust)، حسابات آلات أُنشئت عبر MachineAccountQuota (mS-DS-CreatorSID)--groups · --trust · --machines
الوضع والاستطلاعسياسة كلمات المرور / PSO، عمر krbtgt، إعدادات GPO لـ LLMNR / NBT-NS / WDigest / NTLMv1، قراء gMSA، أجهزة كمبيوتر قديمة، طوبولوجيا التفويض--pwdpolicy · --policy · --gmsa · --stale

أكثر من عشرين فحصًا تنتشر عادةً عبر اثني عشر سكربتًا ولغتين. هنا هي ملف ثنائي واحد - وتنتهي بنتيجة واحدة مرتبة حسب الخطورة.


سطر واحد

Kestrel.exe --all --report audit.html

شغّل كل شيء. احصل على تقرير HTML الكامل. وفي نهاية وحدة التحكم تمامًا، الجزء المهم:

═══ Kestrel - Prioritized Findings ═══

  CRITICAL  DCSync         CORP\svc_sql - non-default principal can replicate directory changes (DCSync)
                          → fix: remove GetChanges/GetChangesAll from the principal on the domain head (dsacls) unless it is a DC
  CRITICAL  AD FS          CN=... - read access to the DKM key (Golden SAML precondition)
                          → fix: remove non-default read ACEs on the DKM object (dsacls) and rotate the token-signing certificate
  HIGH      Persistence    CN=... - object hidden from enumeration via a broad deny-read ACE
                          → fix: inspect the hidden object and remove the broad deny-read ACE (dsacls)

  [=] 2 critical · 1 high · 0 medium · 0 low

ليس جدارًا من المخرجات. بل النتائج المهمة، مرتبة، ولكل منها الأمر اللازم لإغلاقها.


ملف exe واحد. أحمر، أزرق، بنفسجي.

  • أحمر / رمادي - تعداد الاستمرارية والتفويض الذي يفوته الرسم البياني، تصدير مباشر إلى BloodHound CE OpenGraph (--opengraph) لدمجه مع مجموعتك الحالية، أو الانطلاق من أي كيان رئيسي (principal) (--from).
  • أزرق - قائمة نتائج مرتبة وقابلة للمعالجة؛ --diff مقابل لقطة الأسبوع الماضي لرصد ما تغير؛ وأداة بصمتها الاكتشافية الدقيقة منشورة لتتمكن من إدراجها في قائمتك البيضاء وضبط نظام التنبيه الخاص بك حولها.
  • بنفسجي - قطعة أثرية واحدة يقرؤها الطرفان بالطريقة نفسها. الأحمر يجدها، والأزرق يصلحها، والجميع يشير إلى رقم السطر نفسه.

قابلة للاكتشاف بالتصميم

Kestrel للقراءة فقط. لا يكتب أبدًا إلى الدليل، ولا ينسخ مطلقًا، ولا يحتاج SeSecurityPrivilege، ولا يلمس السحابة. قراءة من يمكنه تنفيذ DCSync لا تشبه على الشبكة (wire) تنفيذ DCSync إطلاقًا - لا DRSUAPI، ولا توقيع نسخ متماثل 4662. كل استعلام يشغله وكل حدث يمكنه (ولا يمكنه) توليده مُفهرس في FOOTPRINT.md. مدقق يخبر المدافع بالضبط كيف يكتشفه ليس تناقضًا - بل هو المغزى كله.


بداية سريعة

احصل على بناء (build). كل تشغيل CI ناجح ينشر قطعة أثرية Kestrel.exe - حمّلها من تبويب Actions، دون الحاجة إلى سلسلة أدوات (toolchain).

أو ابنِه بنفسك. Visual Studio (v143+) أو MSBuild:

git clone https://github.com/ssteelfactor-oss/Kestrel.git
cd Kestrel
msbuild Kestrel.vcxproj /p:Configuration=Release /p:Platform=x64

لغة C نقية، بلا أي تبعيات خارجية. ابنِه بـ /MT وستحصل على ملف تنفيذي واحد مكتفٍ ذاتيًا - ضعه على جهاز منضم إلى النطاق، وشغّله بأي مستخدم عادي.

شغّله.

Kestrel.exe --all --report audit.html      # everything, HTML report + ranked findings
Kestrel.exe --acl --adcs --adfs            # pick specific checks
Kestrel.exe --paths --from CORP\jdoe       # attack paths from one principal
Kestrel.exe --all --diff last-week.json    # what changed since the last snapshot
Kestrel.exe --all --opengraph graph.json   # export to BloodHound CE OpenGraph

الوحدات

شغّل --all، أو اختر أي مجموعة فرعية. المساعدة الكاملة: Kestrel.exe --help.

الفئات