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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
WonkaVision — يكتشف تذاكر Kerberos المزورة عن طريق تفريغ بيانات الجلسة والتذاكر، وتقييم الشذوذ، وإنشاء مؤشرات سجل أحداث Windows للاستجابة للحوادث القائمة على SIEM. | Kitploit
أدوات/GitHubGitHub/0xe7/wonkavision
أدوات دفاعيةإدارة الهوية والوصول (IAM)المصادقةكشف التسللالاستجابة للحوادثكشف الشذوذتحليل السجلات
GitHub0xe7/wonkavision

WonkaVision

يكتشف تذاكر Kerberos المزورة عن طريق تفريغ بيانات الجلسة والتذاكر، وتقييم الشذوذ، وإنشاء مؤشرات سجل أحداث Windows للاستجابة للحوادث القائمة على SIEM.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

WonkaVision


WonkaVision هي أداة إثبات مفهوم (POC) لتحليل تذاكر Kerberos ومحاولة تحديد ما إذا كانت مزورة. تم إنشاء هذه الأداة بواسطة Charlie Clark و Andrew Schwartz.

تجدر الإشارة إلى أن إثبات المفهوم هذا ليس المقصود منه أن يكون تطبيقًا مؤسسيًا جاهزًا للإنتاج، بل لتوليد أفكار حول كيفية تحسين اكتشاف التذاكر المزورة مع نشر مؤشرات الهجوم (IOAs) المكتشفة.

Charlie Clark هو المؤلف الأساسي لهذه القاعدة البرمجية.

تم أخذ الكثير من الكود الخاص بتفريغ معلومات الجلسة، وتفريغ تذاكر Kerberos وفك تشفير/تشفير تذاكر Kerberos من Rubeus. تم تكييف كود GetNCChanges من مشروع MakeMeEnterpriseAdmin الخاص بـ Vincent Le Toux.

لديها 3 وظائف:

  • /createkeys - إنشاء زوج مفاتيح عام/خاص لاستخدامه من قبل أداة التفريغ والمحلل
  • /dump - يتم تشغيله على الخوادم/محطات العمل، لتفريغ بيانات الجلسة مع تذاكر Kerberos المرتبطة بها
  • /analyze - يُشغَّل على مجلد يحتوي على جميع ملفات التفريغ، ويحلل جميع الجلسات والتذاكر داخل التفريغات، وينشئ درجات ويكتب إلى سجل الأحداث

لدى WonkaVision التبعيات التالية:

  • Newtonsoft.Json - لتسلسل/إلغاء تسلسل كائنات json
  • dnMerge - لدمج DLL الخاص بـ Newtonsoft.Json في ملف ثنائي واحد لتسهيل النشر عند تفريغ التذاكر

شريحة العرض التقديمي من المحاضرة موجودة هنا.

WonkaVision مرخصة بموجب رخصة BSD 3-Clause.

Table of Contents

  • WonkaVision
    • إنشاء المفاتيح
    • التفريغ
    • التحليل
      • نموذج سجل الأحداث
      • نموذج إعادة توجيه سجلات SIEM
        • مثال مع Splunk
        • مثال مع Sentinel
  • عروض المحاضرة
  • متشمم Kerberos
  • شكر وتقدير
  • TODO

CreateKeys

يُنشئ زوج مفاتيح عام وخاص باستخدام خوارزمية تبادل مفاتيح المنحنى الإهليلجي Diffie-Hellman (ECDH) باستخدام منحنى P-256. بشكل افتراضي، يخرج المفاتيح إلى الطرفية على شكل كتل مشفرة بـ base64 ولكن يحتوي على وسيط /outdir:PATH لكتابة المفاتيح إلى ملفات.

عند الكتابة إلى ملفات، يجب حماية ملف private.key كما لو كان مفتاح KRBTGT

مثال 1:

root@kitploit:~
C:\WonkaVision>WonkaVision.exe /createkeys
====================PublicKey====================
RUNLMSAAAABN/odC5C5W7meBvf6rKmWOoVW9qRTRcyCJBFuvRbEvMFuMa8cV20W1e+rRd4f9jSfr5vDVJ0+I/SJsZI1ondws
==================End PublicKey==================


====================PrivateKey====================
RUNLMiAAAABN/odC5C5W7meBvf6rKmWOoVW9qRTRcyCJBFuvRbEvMFuMa8cV20W1e+rRd4f9jSfr5vDVJ0+I/SJsZI1ondwsto7Fc/J4akdJdCix51F0ELLKWlsdMDlkYx2shFEV3AA=
==================End PrivateKey==================

مثال 2:

root@kitploit:~
C:\WonkaVision>WonkaVision.exe /createkeys /outdir:.
[!] Writing key files to ., be sure to protect the private key as if it was the krbtgt key!
[*] Written public key to .\public.key
[*] Written private key to .\private.key

C:\WonkaVision>dir
 Volume in drive C is System
 Volume Serial Number is 22BC-4361

 Directory of C:\WonkaVision

10/14/2022  01:10 PM    <DIR>          .
10/14/2022  01:10 PM    <DIR>          ..
10/14/2022  01:10 PM               104 private.key
10/14/2022  01:10 PM                72 public.key
10/14/2022  01:08 PM         1,383,424 WonkaVision.exe
               3 File(s)      1,383,600 bytes
               2 Dir(s)  71,813,464,064 bytes free

Dump

يفرّغ معلومات الجلسات التي تحتوي على تذاكر Kerberos، بما في ذلك تذاكر Kerberos نفسها بتنسيق KERB-CRED. يقوم بذلك عن طريق تنفيذ LsaCallAuthenticationPackage لطلب معلومات الجلسة، ومعلومات حول ذاكرة التخزين المؤقت للتذاكر، وطلب التذاكر بصيغة KERB-CREDs (بنفس الطريقة التي يقوم بها أمر dump في Rubeus).

مطلوب وسيطان أساسيان:

  • /publickey:KEY - المفتاح العام الذي سيتم استخدامه لتشفير البيانات المفرَّغة
  • /dumpdir:DIR - المجلد لتخزين البيانات المفرَّغة

بمجرد تفريغ البيانات، تقوم WonkaVision بما يلي:

  1. تخزين البيانات في سلسلة Json
  2. إنشاء زوج مفاتيح عام/خاص لأداة التفريغ
  3. استخدام مفتاحها الخاص مع المفتاح العام الذي تم تمريره إليها عبر الوسيط /publickey:KEY لاشتقاق مفتاح متماثل
  4. تشفير سلسلة Json باستخدام AES باستخدام المفتاح المتماثل
  5. تخزين البيانات المشفرة، ومفتاحها العام، وقيمة IV داخل سلسلة Json وكتابتها إلى المجلد المحدد بواسطة الوسيط /dumpdir:DIR

من الممكن تحديد جلسات معينة (عبر الوسيط /luid:X)، أو مستخدمين (عبر الوسيط /user:USER)، أو خدمات (عبر الوسيط /service:SVC)، و/أو خوادم (عبر الوسيط /server:Y) ولكن هذه الخيارات لم تخضع حاليًا للكثير من الاختبارات.

مثال:

root@kitploit:~
WonkaVision.exe /dump /publickey:\\server\dumpshare\public.key /dumpdir:\\server\dumpshare\dumps

Analyze

يحلل التفريغات التي تم إنشاؤها باستخدام الأمر /dump. يقوم بالتكرار عبر جميع المجلدات الفرعية التي يشير إليها /dumpdir:DIR بشكل متكرر ويقرأ أي ملفات .json يصادفها. بمجرد إلغاء تسلسل ملف json، يتنقل عبر جميع الجلسات المخزنة فيه وجميع التذاكر داخل الجلسات ويحللها بأقصى عمق ممكن، مع تخصيص درجة لكل انحراف عن المتوقع. بعد ذلك، يقوم بجمع هذه الدرجات لإنتاج درجة إجمالية وينشئ نوعين مختلفين من أحداث Windows، 9988 و 9989، لـ جلسة WonkaVision و تذكرة WonkaVision على التوالي، يحتويان على جميع المشكلات المكتشفة.

من الممكن تحديد /creduser:USER و /creddomain:DOMAIN و /credpass:PASSWORD لاستخدام بيانات اعتماد بديلة لاستعلامات LDAP و DCsync. ومع ذلك، لا يُنصح بذلك في الاستخدام الإنتاجي، فقد تم تنفيذها لتسهيل تصحيح الأخطاء.

مطلوب وسيطان أساسيان:

  • /privatekey:KEY - المفتاح الخاص المستخدم لفك تشفير التفريغات المشفرة
  • /dumpdir:DIR - المجلد الذي تُخزن فيه التفريغات المشفرة

مثال:

root@kitploit:~
WonkaVision.exe /analyze /privatekey:C:\keys\private.key /dumpdir:C:\dumpshare\dumps

نموذج سجل الأحداث

على الرغم من أن WonkaVision ستعيد مخرجات التحليل عبر الطرفية، يمكن العثور على وصف أكثر تفصيلاً لتحليل مؤشرات الهجوم (IOA) في قناة سجل أحداث تطبيقات Windows. هنا سيحصل المحلل على رؤية وسياق أكبر فيما يتعلق بالدرجة الإجمالية، ومؤشرات الهجوم المحددة، وسبب(أسباب) مؤشرات الهجوم، ودرجات الأدوات. يتم كتابة حدثين، 9988 (حدث الجلسة) و 9989 (حدث التذكرة) على التوالي. يمكن العثور على عينة من الأحداث هنا.

فيما يلي مثال لحدث جلسة WonkaVision (9988): حدث 9988

فيما يلي مثال لحدث تذكرة WonkaVision (9989):

مثال على تذكرة ذهبية مزورة محتملة باستخدام Mimikatz في سجلات EVTX: حدث 9989

حدث 9989 2

نموذج إعادة توجيه سجلات SIEM

كما ذُكر أعلاه، تُكتب سجلات WonkaVision إلى قناة سجل أحداث تطبيقات Windows. إذا تم تكوين ذلك، يمكن إعادة توجيه هذه السجلات إلى SIEM (مثل Splunk أو Sentinel أو غيرها).

مثال مع Splunk

يمكن أيضًا استخدام استعلام مقترح باستخدام تسجيل WinEvnet "Classic" في Splunk:

root@kitploit:~
index="wv_demo_wineventlog" source="WinEventLog:Application" (Total_Score>=8) | table _time,Total_Score,User,Machine_Name,Service_Principal_Name,Mimikatz_Score,Rubeus_Score,Impacket_Score,Cobalt_Strike_Score,IOA_Reasons

مثال على تذكرة ذهبية مزورة محتملة باستخدام Mimikatz من WonkaVision في Splunk: Mimikatz WonkaVisvion Splunk

مثال على تذكرة ذهبية مزورة محتملة باستخدام Rubeus من WonkaVision في Splunk:Rubeus WonkaVisvion Splunk

مثال مع Sentinel

يمكن أيضًا إجراء التسجيل باستخدام Sentinel. ومع ذلك، قد يتطلب ذلك تحليلًا إضافيًا. فيما يلي مثال لاستعلام من Jonathan Johnson (@jsecurity101) يوضح كيف قد تظهر WonkaVision محللة في Sentinel:

root@kitploit:~
Event
    | where Computer contains "asgard" and Source contains "Wonka"
    | extend ParsedEventData=parse_xml(EventData)
    | extend Data=ParsedEventData.DataItem.EventData.Data
    | parse-where Data with *
            "Total Score: " TotalScore:string
            "Session: " Session:string
            "Machine Name: " MachineName:string
            "User: " User:string
            "Service Principal Name: " ServicePrincipalName:string
            "IOAs: " IOAs:string
            "SessionUser: " IOA_SessionUser:string
            "KDCCalled: " IOA_KDCCalled:string
            "Mimikatz Score: " TScore_MimikatzScore:string 
            "Impacket Score: " TScore_ImpacketScore:string 
            "Rubeus Score: " TScore_RubeusScore:string 
            "Cobalt Strike Score: " TScore_CobaltStrikeScore:string 
            "IOA Reasons: " IOA_Reasons:string
    | where IOA_SessionUser contains "thor"

مثال على تذكرة ذهبية مزورة محتملة من WonkaVision في Sentinel: WonkaVisvion Sentinel

عروض المحاضرة

العرض 1 - إنشاء التذكرة الذهبية:

https://user-images.githubusercontent.com/13423848/202441525-aec75260-a991-4a4d-8df1-6fbf92ddbb4c.mp4

العرض 2 - إنشاء زوج المفاتيح وتفريغ الجلسة/التذكرة:

https://user-images.githubusercontent.com/13423848/202441775-b753ae06-d012-4258-9ea0-25d88dc80549.mp4

العرض 3 - تحليل التفريغ وإخراج أحداث Windows:

https://user-images.githubusercontent.com/13423848/202441909-04bd1b2a-f204-41c4-a13a-dcfa42eebcf3.mp4

العرض 4 - متشمم شبكة Kerberos:

https://user-images.githubusercontent.com/13423848/202442125-822cc4a4-1c87-447f-88ae-2e5c2fbf58d3.mp4

KrbSniffer POC

إن POC متشمم حركة مرور Kerberos الذي عرضناه في محاضرتنا (العرض 4) تم تنفيذه باستخدام SharpPCap ولكن يمكن تعديله بسهولة لاستخدام المقابس الخام (raw sockets)، مما يزيل هذه التبعية وكذلك الحاجة إلى تثبيت npcap على النظام.

نظرًا لأنه كان مجرد POC بسيط، فإن معظم المؤشرات التي تم تنفيذها كانت المؤشرات غير المشفرة المذكورة في محاضرة Charlie في YASCON 2020 والمفصلة في الشريحة 18 من هذه الشرائح، على الرغم من إمكانية تنفيذ المزيد منها.

شكر وتقدير

  • Will Schroeder (@harmj0y) على قاعدة كود Rubeus
  • Vincent Le Toux (@mysmartlogon) على قاعدة كود 'Make Me Enterprise Admin'
  • Jared Atkinson (@jaredcatkinson) على قاعدتي كود 'Get-KerberosTicketGrantingTicket.ps1' و 'Test-KerberosTicketGrantingTicket.ps1'
  • Jonathan Johnson (@jsecurity101) للمساعدة في استكشاف خطأ DCSync :)، واختبار POC، واختبار Microsoft Sentinel، والنصائح/الإرشادات حول الكتابة إلى سجل أحداث Windows
  • Elad Shamir (@elad_shamir) للنصائح/الإرشادات
  • فريق 'sisoc-tokyo' (جامعة طوكيو، Wataru Matsuda، Mariko Fujimoto، و Takuho Mitsunaga) الذين قدموا 'Real-time detection of attacks leveraging Domain Administrator privilege' في BlackHat Europe 2018، والذين وجدنا عملهم بعد POC. يمكن العثور على مشروعهم هنا
  • Semperis (@SemperisTech) و Trustedsec (@TrustedSec) لسماحهم لنا بإكمال هذا المشروع

TODO

  • إعادة هيكلة وتنظيف الكود
  • تنفيذ استرجاع مفتاح الثقة (Trust Key)
تنزيل الأداة