
أداة لاستخراج كلمات المرور من ذاكرة TeamViewer باستخدام Frida
مرحبًا، في هذه المقالة نريد التحدث عن بحثنا الصغير حول أمان كلمات المرور في TeamViewer. يمكن أن تساعد هذه الطريقة أثناء اختبار الاختراق في مرحلة ما بعد الاستغلال للوصول إلى جهاز آخر باستخدام TeamViewer.
قبل بضعة أيام، عملت على VPS السحابي الخاص بي على Windows باستخدام TeamViewer (حيث قمت بتعيين كلمة مرور مخصصة). بعد العمل، قمت بقطع الاتصال، وفي المرة التالية التي أردت فيها الاتصال، رأيت أن TeamViewer قد ملأ كلمة المرور تلقائيًا.

أعتقد "مثير للاهتمام، كيف يمكنني الوصول إلى كلمة المرور؟ كيف يتم تخزين كلمة المرور على جهاز الكمبيوتر الخاص بي؟"
قمت بتفريغ ذاكرة TeamViewer وقمت بالبحث عن كلمة المرور باستخدام grep.

أوه نعم، 😊 يتم تخزين كلمة المرور في الذاكرة بصيغة Unicode. اتضح أنه إذا أنهيت عملك مع TeamViewer ولم تقم بإنهاء العملية (أو الخروج من TeamViewer

سيتم تخزين كلمة المرور في الذاكرة)
بعد التحليل، أدركنا أن المنطقة الحمراء الأولى تمثل بيانات السحر (magic data) للبداية، والثانية تمثل بيانات السحر للنهاية (من وقت لآخر، تكون قيمة بيانات السحر للنهاية = 00 00 00 20 00 00).
لاستخراج كلمات المرور من الذاكرة، كتبنا برنامجين صغيرين، بلغة Python ولغة C++.
شكرًا لفريق Frida على الأداة الرائعة! يقوم سكربت Python الخاص بنا بالارتباط بعملية TeamViewer.exe، ويحصل على العنوان الأساسي وحجم الذاكرة لكل مكتبة في هذه العملية. بعد ذلك، يُفرّغ مناطق الذاكرة واحدة تلو الأخرى، ويبحث عن الأجزاء التي تحتوي على وحدات بايت [00 88] في البداية و [00 00 00] في النهاية، وينسخها في المصفوفة. الخطوة التالية والأخيرة هي اختيار الصفوف النهائية لفك التشفير وفقًا للتعبير النمطي وسياسة كلمة المرور.

بعد تنفيذ كود C++، ستحصل على هذا العرض: "asdQWE123" هي كلمة المرور

مثال بلغة C++

مثال بلغة Python
