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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
RDPCredentialStealer — إمبلنت ويندوز يسرق بيانات اعتماد RDP عبر خطاف API (Detours) وحقن DLL، حيث يلتقط أسماء المستخدمين وكلمات المرور إلى ملف لاستغلال ما بعد الاختراق لفريق الأحمر. | Kitploit
أدوات/GitHubGitHub/s12cybersecurity/rdpcredentialstealer
ما بعد الاستغلالالفريق الأحمر
GitHubs12cybersecurity/rdpcredentialstealer

RDPCredentialStealer

إمبلنت ويندوز يسرق بيانات اعتماد RDP عبر خطاف API (Detours) وحقن DLL، حيث يلتقط أسماء المستخدمين وكلمات المرور إلى ملف لاستغلال ما بعد الاختراق لفريق الأحمر.

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
26638منذ 5 أشهرتمت المراجعة من قبل Kitploit

RDPCredentialStealer

RDPCredentialStealer هو أداة اختراق تسرق بيانات الاعتماد التي يُدخلها المستخدمون في RDP باستخدام ربط API مع Detours بلغة C++

أداة إثبات المفهوم لسرقة بيانات الاعتماد

لنجرب هذا:

أولاً، أقوم بنقل ملف DLL من مستودع GitHub إلى المسار C:\Users\Public\Music:

imagen

الآن، أفتح تطبيق نافذة اتصال RDP:

imagen

ثم أقوم بتشغيل ملف EXE الموجود في مستودع GitHub:

imagen

وعند محاولة الوصول إلى خادم RDP:

imagen

أقوم بإدخال المستخدم: s12User وكلمة المرور: passwdtest

والآن أتحقق من الملف: C:\Users\Public\Music\RDPCreds.txt

imagen

الكود

RDPCredStealerDLL:

هذا الكود هو تطبيق لتقنية ربط (Hooking) في C++ باستخدام مكتبة Detours. يستهدف بشكل خاص دالة CredUnPackAuthenticationBufferW من مكتبة credui.dll، المسؤولة عن فك حزم مخازن المصادقة المستخدمة في عمليات بيانات الاعتماد.

دعنا نحلل الكود خطوة بخطوة: يتم تضمين ملفات الرأس اللازمة، مثل windows.h و wincred.h و detours.h وغيرها. يتم تعريف نوع مؤشر دالة CredUnPackAuthenticationBufferW_t، الذي يمثل توقيع دالة CredUnPackAuthenticationBufferW الأصلية. يتم إعلان مؤشر الدالة pCredUnPackAuthenticationBufferW، والذي سيُستخدم لتخزين عنوان الدالة الأصلية.

يتم تنفيذ الدالة MyCredUnPackAuthenticationBufferW، والتي تعمل كربط (Hook) للدالة الأصلية. يتم استدعاؤها عند استدعاء الدالة المربوطة. تقوم هذه الدالة أولاً باستدعاء الدالة الأصلية باستخدام مؤشر الدالة المخزن pCredUnPackAuthenticationBufferW. ثم تقوم بتحويل اسم المستخدم وكلمة المرور المستخرجين من سلاسل عريضة (LPWSTR) إلى سلاسل مشفرة بـ UTF-8 (std::string). وأخيراً، تفتح ملفًا في وضع الإلحاق وتكتب اسم المستخدم وكلمة المرور إليه.

تعمل الدالة DllMain كنقطة دخول لمكتبة DLL للربط. يتم استدعاؤها عند تحميل DLL أو إلغاء تحميله. عندما يكون ul_reason_for_call هو DLL_PROCESS_ATTACH، مما يشير إلى أن DLL يتم تحميله، فإنه يقوم بتحميل مكتبة credui.dll باستخدام LoadLibraryA. ثم يحصل على عنوان الدالة الأصلية CredUnPackAuthenticationBufferW باستخدام GetProcAddress. إذا نجح ذلك، يبدأ عملية الربط باستدعاء DetourTransactionBegin و DetourUpdateThread و DetourAttach.

عندما يكون ul_reason_for_call هو DLL_PROCESS_DETACH، مما يشير إلى أن DLL يتم إلغاء تحميله، فإنه يعكس عملية الربط باستدعاء DetourTransactionBegin و DetourUpdateThread و DetourDetach.

الغرض من هذا الكود هو ربط الدالة CredUnPackAuthenticationBufferW واعتراض بيانات الاعتماد التي تمرر إليها، مما يسمح لكود الربط باستخراج وتسجيل اسم المستخدم وكلمة المرور في ملف. يمكن استخدام هذه التقنية بشكل ضار لالتقاط معلومات حساسة مثل بيانات اعتماد RDP، وهو ما يمثل مشكلة أمنية كبيرة.

Inject.h

يوفر هذا الكود وظائف لحقن DLL (مكتبة الارتباط الديناميكي) في عملية مستهدفة على نظام تشغيل Windows. دعنا نحلل الكود ونفهم وظائفه:

يتم تضمين ملفات الرأس اللازمة، مثل windows.h و stdio.h و tlhelp32.h. توفر هذه الملفات الدوال وأنواع البيانات المطلوبة للتفاعل مع Windows API.

تأخذ الدالة getPIDbyProcName اسم عملية كمدخل وتعيد معرف العملية المقابل (PID). تستخدم الدالة CreateToolhelp32Snapshot لإنشاء لقطة للعمليات الحالية، ثم تتكرر عبر اللقطة باستخدام دوال Process32FirstW و Process32NextW للعثور على العملية التي تحمل اسمًا مطابقًا. إذا تم العثور عليها، فإنها تُعيد معرف العملية؛ وإلا فإنها تُعيد 0.

تأخذ الدالة DLLinjector معرف العملية (pid) ومسار DLL كمدخلات. تقوم بحقن DLL المحدد في العملية المستهدفة. إليك كيف تعمل: أ. تفتح العملية المستهدفة باستخدام OpenProcess مع علامة PROCESS_ALL_ACCESS. ب. تسترجع مقبض وحدة Kernel32 باستخدام GetModuleHandleW. ج. تحصل على عنوان دالة LoadLibraryW داخل Kernel32 باستخدام GetProcAddress. د. تخصص ذاكرة في العملية المستهدفة باستخدام VirtualAllocEx. هـ. تكتب مسار DLL إلى الذاكرة المخصصة في العملية المستهدفة باستخدام WriteProcessMemory. و. تنشئ خيطًا بعيدًا في العملية المستهدفة باستخدام CreateRemoteThread وتمرر عنوان LoadLibraryW والذاكرة المخصصة كوسائط. ز. إذا نجح إنشاء الخيط، فإنها تُعيد true مما يشير إلى نجاح حقن DLL.

الدالة main غير موفرة في هذا المقتطف. يمكنك استخدام هذه الدوال داخل تطبيقك الخاص لحقن DLL في عملية مستهدفة عن طريق توفير اسم العملية ومسار DLL كمدخلات.

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

تنزيل الأداة