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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Freeze — Freeze هي مجموعة أدوات حمولة (Payload) لتجاوز أنظمة EDR عبر العمليات المعلّقة واستدعاءات النظام المباشرة وطرق التنفيذ البديلة. | Kitploit
أدوات/GitHubGitHub/optiv/freeze
أطر اختبار الاختراقأطر الاستغلالتوليد الحمولةالتهرب من IDS/IPSشيل كودما بعد الاستغلالتجاوز WAFاختبار الاختراقالفريق الأحمرتوليد شيفرة القشرةتطوير الحمولاتArchived
1.5k194منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Freeze

Freeze هي مجموعة أدوات حمولة (Payload) لتجاوز أنظمة EDR عبر العمليات المعلّقة واستدعاءات النظام المباشرة وطرق التنفيذ البديلة.

عرض المستودع

تم أرشفة هذا المستودع

لعرض أحدث إصدار من Freeze أو لتقديم مشكلة، راجع https://github.com/Tylous/Freeze.



Freeze

معلومات إضافية

إذا كنت ترغب في معرفة المزيد عن التقنيات المستخدمة في هذا الإطار، يرجى إلقاء نظرة على مدونة SourceZero

الوصف

Freeze هي أداة لإنشاء الحمولات تُستخدم لتجاوز ضوابط أمان EDR لتنفيذ shellcode بطريقة متخفية. تستخدم Freeze تقنيات متعددة ليس فقط لإزالة خطافات EDR في مساحة المستخدم، ولكن أيضًا لتنفيذ shellcode بطريقة تتجاوز ضوابط مراقبة نقاط النهاية الأخرى.

إنشاء عملية معلقة

عند إنشاء عملية، يتم تحميل Ntdll.dll كأول ملف DLL. يحدث هذا قبل تحميل أي ملفات DLL خاصة بـ EDR. وهذا يعني أن هناك تأخيرًا بسيطًا قبل أن يتم تحميل EDR والبدء في ربط وتعديل كود تجميع ملفات DLL النظامية. عند النظر إلى استدعاءات النظام الخاصة بـ Windows في Ntdll.dll، يمكننا رؤية أنه لم يتم ربط أي شيء بعد. إذا قمنا بإنشاء عملية في حالة معلقة (مجمدة زمنياً)، يمكننا رؤية أنه لم يتم تحميل أي ملفات DLL أخرى باستثناء Ntdll.dll. يمكنك أيضًا رؤية أنه لم يتم تحميل أي ملفات DLL خاصة بـ EDR، مما يعني أن استدعاءات النظام الموجودة في Ntdll.dll غير معدلة.

عشوائية تخطيط مساحة العنوان (ASLR)

لاستخدام هذه العملية النظيفة المعلقة لإزالة الخطافات من محمل Freeze، نحتاج إلى طريقة للعثور على ذاكرة العملية النظيفة المعلقة وقراءتها برمجيًا. هذا هو المكان الذي تلعب فيه عشوائية تخطيط مساحة العنوان (ASLR). ASLR هي آلية أمان لمنع الثغرات القائمة على تلف ذاكرة المكدس. تقوم ASLR بعشوائية مساحة العنوان داخل العملية، لضمان أن جميع الكائنات المعينة في الذاكرة، المكدس، الكومة، والبرنامج القابل للتنفيذ نفسه، فريدة من نوعها. الآن، هذا هو المكان الذي يصبح فيه الأمر مثيرًا للاهتمام لأنه بينما تعمل ASLR، إلا أنها لا تعمل مع الكود المستقل عن الموقع مثل ملفات DLL. ما يحدث مع ملفات DLL (خاصة ملفات DLL النظامية المعروفة) هو أن مساحة العنوان يتم عشوائيتها مرة واحدة عند وقت الإقلاع. هذا يعني أننا لا نحتاج إلى تعداد معلومات عملية بعيدة للعثور على العنوان الأساسي لـ ntdll.dll الخاص بها لأنه هو نفسه في جميع العمليات بما في ذلك العملية التي نتحكم بها. نظرًا لأن عنوان كل ملف DLL هو نفسه في كل إقلاع، يمكننا سحب هذه المعلومات من عمليتنا الخاصة ولا نضطر أبدًا إلى تعداد العملية المعلقة للعثور على العنوان.

باستخدام هذه المعلومات، يمكننا استخدام API ReadProcessMemory لقراءة ذاكرة عملية. يرتبط استدعاء API هذا عادةً بقراءة LSASS كجزء من أي هجوم قائم على بيانات الاعتماد؛ ومع ذلك، فهو في حد ذاته ليس ضارًا بطبيعته، خاصة إذا كنا فقط نقرأ قسمًا عشوائيًا من الذاكرة. الوقت الوحيد الذي سيتم فيه وضع علامة على ReadProcessMemory كشيء مشبوه هو إذا كنت تقرأ شيئًا لا ينبغي لك (مثل محتويات LSASS). لا ينبغي لمنتجات EDR أبدًا وضع علامة على حقيقة أن ReadProcessMemory تم استدعاؤه، نظرًا لوجود استخدامات تشغيلية مشروعة لهذه الوظيفة والتي قد تؤدي إلى العديد من الإيجابيات الخاطئة.

يمكننا أن نأخذ هذا خطوة أخرى إلى الأمام بقراءة قسم واحد فقط من Ntdll.dll حيث يتم تخزين جميع استدعاءات النظام - قسم .text الخاص به، بدلاً من قراءة ملف DLL بالكامل.

من خلال الجمع بين هذه العناصر، يمكننا الحصول برمجيًا على نسخة من قسم .text الخاص بـ Ntdll.dll لاستبدال قسم .text المربوط الحالي قبل تنفيذ shellcode.

تصحيح ETW

يستخدم ETW استدعاءات النظام المضمنة لتوليد هذه البيانات عن بعد. نظرًا لأن ETW أيضًا ميزة أصلية مدمجة في Windows، لا تحتاج منتجات الأمان إلى "ربط" استدعاءات النظام الخاصة بـ ETW للوصول إلى المعلومات. ونتيجة لذلك، لمنع ETW، يقوم Freeze بتصحيح العديد من استدعاءات النظام الخاصة بـ ETW، ومسح السجلات وإعادة تدفق التنفيذ إلى التعليمات التالية. أصبح تصحيح ETW الآن الافتراضي في جميع المحملات.

شيلكود

نظرًا لأنه يتم استعادة Ntdll.dll فقط، يجب أن توجد جميع الاستدعاءات اللاحقة لتنفيذ shellcode في Ntdll.dll. باستخدام Go (لاحظ أنه يمكنك القيام بذلك بلغات أخرى ولكن في Go، من السهل جدًا تنفيذه) يمكننا تعريف واستدعاء استدعاءات النظام الخاصة بـ NT اللازمة لتخصيص وكتابة وحماية shellcode، متجاوزين بذلك الاستدعاءات القياسية الموجودة في kernel32d.dll و Kernelbase.dll، حيث قد تكون هذه لا تزال مربوطة.

المساهمة

تم تطوير Freeze بلغة Golang.

التثبيت

لتثبيت Freeze، قم بتشغيل الأوامر التالية، أو استخدم الملف الثنائي المجمع:

root@kitploit:~
go build Freeze.go

المساعدة

root@kitploit:~
        ___________                                    
        \_   _____/______   ____   ____ ________ ____  
         |    __) \_  __ \_/ __ \_/ __ \\___   // __ \ 
         |     \   |  | \/\  ___/\  ___/ /    /\  ___/ 
         \___  /   |__|    \___  >\___  >_____ \\___  >
             \/                \/     \/      \/    \/ 
                                        (@Tyl0us)
        Soon they will learn that revenge is a dish... best served COLD...
                 
Usage of ./Freeze:
  -I string
        Path to the raw 64-bit shellcode.
  -O string
        Name of output file (e.g. loader.exe or loader.dll). Depending on what file extension defined will determine if Freeze makes a dll or exe.
  -console
        Only for Binary Payloads - Generates verbose console information when the payload is executed. This will disable the hidden window feature.
  -encrypt
        Encrypts the shellcode using AES 256 encryption
  -export string
        For DLL Loaders Only - Specify a specific Export function for a loader to have.
  -process string
        The name of process to spawn. This process has to exist in C:\Windows\System32\. Example 'notepad.exe' (default "notepad.exe")
  -sandbox
        Enables sandbox evasion by checking:
                Is Endpoint joined to a domain?
                Does the Endpoint have more than 2 CPUs?
                Does the Endpoint have more than 4 gigs of RAM?
  -sha256
        Provides the SHA256 value of the loaders (This is useful for tracking)

ثنائي مقابل DLL

يمكن لـ Freeze إنشاء ملف .exe أو .dll. لتحديد ذلك، تأكد من أن خيار سطر الأوامر -O ينتهي إما بـ .exe للثنائيات أو .dll للملفات DLL. لا يتم حاليًا دعم أنواع ملفات أخرى. في حالة ملفات DLL، يمكن لـ Freeze أيضًا إضافة وظائف تصدير إضافية. للقيام بذلك، استخدم -export مع اسم وظيفة تصدير محددة.

وحدة التحكم

تستخدم Freeze تقنية لإنشاء العملية أولاً ثم نقلها إلى الخلفية. هذا يفعل شيئين - أولاً يساعد في إبقاء العملية مخفية، وثانيًا، يتجنب اكتشافها بواسطة أي منتج EDR. يمكن أن يكون إنشاء عملية فورًا في الخلفية مريبًا جدًا ومؤشرًا على الضرر. تقوم Freeze بذلك عن طريق استدعاء وظائف Windows GetConsoleWindow و ShowWindow بعد إنشاء العملية وتحميل خطافات EDR، ثم تغيير سمات النافذة إلى مخفية. تستخدم Freeze واجهات برمجة التطبيقات (APIs) هذه بدلاً من استخدام -ldflags -H=windowsgui التقليدي، حيث أن هذا الأخير موقّع بشكل كبير ويصنف في معظم منتجات الأمان كمؤشر اختراق.

إذا تم تحديد خيار سطر الأوامر -console، فلن تخفي Freeze العملية في الخلفية. بدلاً من ذلك، ستضيف Freeze العديد من رسائل التصحيح التي تظهر ما يفعله المحمل.

الإشادة

  • شكر خاص لـ aahmad097 لتطوير AlternativeShellcodeExec

  • شكر خاص لـ mvdan لتطوير Garble

تنزيل الأداة