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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
KeeFarceReborn — مكتبة DLL مستقلة تقوم بتصدير قواعد البيانات بنص واضح (cleartext) عند حقنها في عملية KeePass. | Kitploit
أدوات/GitHubGitHub/d3lb3/keefarcereborn
هجمات كلمات المرورتوليد الحمولةتسريب البياناتما بعد الاستغلالالفريق الأحمرتوليد شيفرة القشرة
GitHubd3lb3/keefarcereborn

KeeFarceReborn

مكتبة DLL مستقلة تقوم بتصدير قواعد البيانات بنص واضح (cleartext) عند حقنها في عملية KeePass.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

KeeFarce Reborn

مكتبة DLL مستقلة تصدّر قواعد البيانات بنص صريح بمجرد حقنها في عملية KeePass.

مستوحاة بشكل كبير من مشاريع KeeFarce, KeeThief وKeePassHax الرائعة.

لماذا أداة أخرى لاستخراج KeePass؟

قبل بضع سنوات، أصدر @denandz أداة KeeFarce، أول أداة هجومية مصممة لاستخراج قواعد بيانات KeePass بنص صريح. تعمل عن طريق حقن DLL في العملية الجارية، ثم تفحص الكومة باستخدام ClrMD للعثور على الكائنات الضرورية واستدعاء طريقة التصدير المدمجة في KeePass باستخدام الانعكاس. كان عيبها الوحيد في ذلك الوقت أنها تتطلب وضع عدة ملفات على الهدف (DLL الاستخراج + DLL الخاص بـ ClrMD + أداة الحقن + DLL إقلاع).

بعد عام، أصدر @tifkin_ و@harmj0y مراجعة متعمقة للتقنيات الهجومية التي تستهدف KeePass (ورغم أنها لم تعد متاحة على مدونة harmj0y، يمكن العثور على المقالات على Wayback Machine: الجزء 1, الجزء 2). أسفرت عن إصدار KeeThief، وهي أداة قادرة على فك تشفير المفتاح الرئيسي لـ KeePass (بما في ذلك عند استخدام طرق مصادقة بديلة). عملت بشكل جيد لدرجة أن مطوري KeePass أضافوا معاملًا للتخفيف من هذه التقنية (يمكن تعطيله عن طريق تعديل ملف إعداد KeePass إذا كان المستخدم يملك صلاحيات كافية، وهو أمر شائع جدًا).

سرعان ما أصبحت هذه الأدوات خياري الأول أثناء اختبار الاختراق، لكنها سرعان ما أصبحت قديمة لأن تقنيات الحقن الخاصة بها (وتحديدًا مجموعة واجهات برمجة تطبيقات Win32 الشهيرة: VirtualAllocEx, WriteProcessMemory, CreateRemoteThread, WriteProcessMemory وما إلى ذلك) تثير الآن الكشف فورًا. عالج @snovvcrash هذه المشكلة عن طريق إنشاء fork من KeeThief (الموجود الآن في مستودع خاص، لكنه لا يزال متاحًا هنا) لتحسين آلية الحقن باستخدام D/Invoke، وكتب مقالًا رائعًا يوضح بالتفصيل العملية التي اتبعها. ورغم أنه أثبت جدوى الحفاظ على KeeThief، إلا أنني أجد صعوبة في تنفيذ تقنيات حقن جديدة بشكل منتظم، لأن كود KeeThief مرتبط بإحكام بأداة الحقن الخاصة به.

أصدر @holly-cracker أيضًا أداة KeePassHax، والتي تأتي كملف DLL واحد وتستخدم الانعكاس فقط لفك تشفير المفتاح الرئيسي لـ KeePass. مستلهمًا من هذا العمل، قررت أن أفعل الشيء نفسه مع KeeFarce وأكتب أداة استخراج KeePass خاصة بي بالميزات التالية:

  • مكتفية ذاتيًا ⇒ لا حاجة لأي تفاعل مع كود أداة الحقن لتعمل.
  • تستخدم مكتبات .NET المدمجة فقط (بدون ClrMD) ⇒ توافق أفضل + DLL بملف واحد يجعل عملية الحقن أسهل.
  • تصدّر قاعدة البيانات (مثل KeeFarce) ⇒ لا حاجة لاسترجاع ملف .kdbx ولا لاستخدام بناء مخصص من KeePass لإدخال المفتاح الرئيسي المستخرج.

توفر KeeFarce Reborn أيضًا DLL إضافة لـ KeePass لجعل KeePass يحقن نفسه دون الحاجة إلى الانشغال بأدوات الحقن!

البناء

نظرًا لأن الكود يعتمد حصريًا على .NET Framework دون أي تبعية خارجية، فينبغي أن يُجمَّع بسهولة على Visual Studio 2015 والإصدارات الأحدث.

مثال على الاستخدام

لا تتضمن KeeFarce Reborn أداة حقن لتحميل DLL في عملية KeePass. هذا أمر مقصود، فبما أن أدوات الحقن تصبح قديمة كل بضعة أشهر، سيتعين عليك استخدام أداتك الخاصة. توضح الأقسام التالية طريقتين نموذجيتين لتنفيذ الحقن.

جعل KeePass يحقن KeeFarce Reborn كإضافة

متطلب مسبق: صلاحية كتابة إلى دليل إضافات KeePass.

تتميز KeePass بـإطار عمل للإضافات لتوفير وظائف إضافية للمستخدمين. يعمل عن طريق تحميل DLL في عملية KeePass، مما يسمح لمطوري الإضافات بتنفيذ إجراءات داخل نطاق تطبيق KeePass.

ونتيجة لذلك، يمكننا إساءة استخدام هذه الوظيفة لتحميل KeeFarce Reborn كإضافة، دون الحاجة حتى إلى استخدام أداة حقن خارجية! كل ما عليك فعله هو تجميع مشروع KeeFarceRebornPlugin ونسخ DLL إلى دليل الإضافات (الموجود في جذر KeePass، وتحديدًا "C:\Program Files\KeePass Password Safe 2\Plugins" للتثبيت العام).

لكي يُبنى المشروع بشكل صحيح، ستحتاج إلى نسخ إصدار التجميعة (assembly) المستهدفة من KeePass.exe إلى دليل KeeFarceRebornPlugin، أو استخدام PLGX إذا أردت أن تكون الإضافة الناتجة متوافقة مع أي إصدار من KeePass.

في المرة التالية التي يُشغَّل فيها KeePass ويُفتح قفل قاعدة بيانات، سيتم تحميل DLL وتنفيذ الحقن. إذا كان KeePass يعمل بالفعل، فستحتاج إلى الانتظار حتى إعادة تشغيله التالية لكي يحدث الحقن (أو فرض إعادة التشغيل بنفسك).

⚠️ بمجرد تحميل إضافة، سيتم حماية ملف DLL ضد الكتابة حتى يُغلق KeePass. ضع ذلك في اعتبارك للتأكد من أنك لا تترك إضافات خبيثة خلفك أثناء التقييمات.

إذا لم تكن لديك صلاحية كتابة إلى دليل إضافات KeePass، يمكنك إلقاء نظرة على مقال Quarkslab الذي يوضح كيفية تحميل الإضافات بصلاحيات أقل عبر ذاكرة التخزين المؤقت للإضافات.

تنفيذ حقن الشيل كود

متطلب مسبق: KeePass قيد التشغيل + قاعدة بيانات مفتوحة من قبل المستخدم + لديك صلاحيات كافية للحقن في عملية KeePass.

نظرًا لأنني شخصيًا أجد أنه من الأسهل حقن شيل كود بشكل خفي بدلًا من DLL في عملية بعيدة، فإن أول ما أبدأ به عادةً هو توليد شيل كود مستقل عن العنوان من DLL الخاص بنا. يبدو أن مشروع donut من @odzhan و@TheWover يناسب احتياجاتنا تمامًا!

نقوم بتجميع donut من commit في فرع التطوير (dev)، لأنه يصلح مشكلة في إدارة نطاق التطبيق كانت ستمنعنا من تنفيذ الانعكاس في النطاق الافتراضي.

root@kitploit:~
git clone https://github.com/TheWover/donut/
cd donut
git checkout 9d781d8da571eb1499122fc0e2d6e89e5a43603c

يمكننا البناء بسهولة من x64 Native Tools Command Prompt الخاص بـ Visual Studio باستخدام أداة nmake:

root@kitploit:~
nmake -f Makefile.msvc

توليد الشيل كود سهل للغاية:

root@kitploit:~
.\donut.exe "C:\KeeFarceReborn\KeePassReborn\bin\Release\KeeFarceReborn.dll" -c KeeFarceReborn.Program -m Main -e 1

  [ Donut shellcode generator v0.9.3
  [ Copyright (c) 2019 TheWover, Odzhan

  [ Instance type : Embedded
  [ Module file   : "C:\KeeFarceReborn\KeePassReborn\bin\Release\KeeFarceReborn.dll"
  [ Entropy       : None
  [ File type     : .NET DLL
  [ Class         : KeeFarceReborn.Program
  [ Method        : Main
  [ Target CPU    : x86+amd64
  [ AMSI/WDLP     : continue
  [ Shellcode     : "loader.bin"

لاحظ أن -e 1 ضروري لتعطيل الإنتروبيا، وإلا فلن تكون العملية المحقونة في نطاق التطبيق الافتراضي.

دعونا نضغطه باستخدام PowerShell لسهولة الدمج في كود أداة الحقن:

root@kitploit:~
$bytes = [System.IO.File]:https://raw.githubusercontent.com/d3lb3/keefarcereborn/HEAD/:ReadAllBytes(%22C:%5Cdonut%5Cloader.bin%22)
[System.IO.MemoryStream] $outStream = New-Object System.IO.MemoryStream
$deflateStream = New-Object System.IO.Compression.DeflateStream($outStream, [System.IO.Compression.CompressionLevel]::Optimal)
$deflateStream.Write($bytes, 0, $bytes.Length)
$deflateStream.Dispose()
$outBytes = $outStream.ToArray()
$outStream.Dispose()
$b64 = [System.Convert]::ToBase64String($outBytes)
Write-Output $b64 | clip

أصبح لديك الآن حمولة جاهزة للحقن بأسلوبك المفضل. إذا كنت لا تعرف ماذا تفعل بعد الآن، أقترح عليك الاطلاع على صفحة حقن الكود والعمليات في ired.team للتعرف على المفهوم. دورات تطوير البرمجيات الخبيثة من @SEKTOR7 مليئة بالتعلم القيّم إذا كانت في متناولك.

كمثال، دعونا نحقن حمولتنا باستخدام كود VeraCryptThief من snovvcrash (المستوحى نفسه من دورات SEKTOR7) والذي يستخدم D/Invoke. للتوضيح، نسخت مشروعه في مجلد SampleInjector، نحتاج فقط إلى لصق الشيل كود المضغوط ثم تجميعه بصيغة x64.

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

بتشغيل .\SampleInjector.exe مع قاعدة بيانات KeePass مفتوحة، سيتم تحميل DLL وتنفيذ الحقن.

الخطوات بعد الحقن

بمجرد تنفيذ الحقن، سترى رسائل تصحيح تُطبع في MessageBox (والتي يجب إزالتها بوضوح عند استخدامها في سيناريو اختبار اختراق حقيقي)، ثم ستجد قاعدة البيانات المُصدَّرة في %APPDATA% الخاصة بالمستخدم الحالي (المختارة افتراضيًا، لأنه من المؤكد أن KeePass يملك صلاحية الكتابة إليها). يمكن لاحقًا استيراد ملف XML المُصدَّر إلى أي قاعدة بيانات KeePass دون طلب كلمة مرور

التحذيرات المحتملة

سياسة KeePass تمنع تصدير قاعدة البيانات

إذا كانت وظائف الإضافات أو التصدير معطّلة بواسطة السياسة، فلا يزال من الممكن تمكينها عن طريق تعديل KeePass.config.xml بشرط امتلاك صلاحية الكتابة:

root@kitploit:~
<Policy>
    <Plugins>true</Plugins>
    <Export>true</Export>
</Policy>

الاكتشاف

في حين أن المشكلة الرئيسية المتعلقة باكتشاف أدوات استخراج KeePass هي أدوات الحقن، فإن الفحص في الذاكرة قد يثير أيضًا تنبيهات عند تحليل الشيل كود أو ملف DLL الخاص بالإضافة. قد تضطر إلى إخفاء الشيل كود و/أو تشفيره لاستخدامه مع أداة الحقن الخاصة بك.

إذا تم في النهاية رصد ملفات DLL الخاصة بالإضافات بواسطة التحليل الثابت، فلا يزال بإمكانك استخدام صيغة إضافة PLGX الخاصة بـ KeePass لتجنب الاكتشاف.

التوافق

  • تعتمد KeeFarce Reborn حصريًا على .NET Framework دون أي تبعية خارجية، لذا ينبغي أن تكون متوافقة إلى حد كبير مع معظم الأهداف.
  • افتراضيًا، يستهدف حل Visual Studio الخاص بـ KeeFarce Reborn إطار .NET 4.6 (المثبت افتراضيًا على Windows 10) ولكن يمكن إعادة استهدافه أو تعديله.
  • إذا لم يكن .NET Framework مثبتًا على النظام المستهدف، فلا يزال بإمكانك إعداده يدويًا من سطر الأوامر باستخدام DISM.exe.
  • اختبرت فقط حقن حمولات x64، ولكن يجب أن يعمل هذا أيضًا مع البنى 32 بت.

المساهمة

طلبات السحب (Pull requests) مرحب بها. لا تتردد في فتح issue أو مراسلتي على Twitter لاقتراح تحسين.

الاعتمادات

تم أخذ أجزاء من الكود من مشاريع KeeFarce, KeeThief وKeePassHax.

تم أخذ آلية الحقن النموذجية مباشرة من مشاريع snovvcrash.

تنزيل الأداة