3. Hack The Box. Проходження Buff. RCE у CMS Gym та у CloudMe (level easy)

15 травня 2023 1 хвилина Автор: Lady Liberty

Вивчення таких термінів як: RCE, CMS та CloudMe

Віддалене виконання коду (RCE) – це один із найнебезпечніших типів комп’ютерних уразливостей. Його експлуатація дозволяє дистанційно запустити шкідливий код у рамках цільової системи через локальну мережу або через інтернет. Фізичний доступ зловмисника до пристрою не потрібний. Внаслідок експлуатації RCE-уразливості зломщик може перехопити керування системою або її окремими компонентами, а також вкрасти конфіденційні дані. Останнім часом не тільки у професійному середовищі програмістів спливає загадкова абревіатура CMS. Яке значення за нею ховається? CMS, що це таке і чому про це почали говорити частіше? CMS розшифровується як Content Management System, а якщо дослівно: система управління контентом. CMS одночасно виконує функції інформаційної системи (збір, зберігання та обробка даних) та функції комп’ютерної програми (організація створення, редагування та управління контентом або вмістом ресурсу). CMS здійснює контроль за версіями вмісту, що дуже зручно під час колективної роботи над контентом.

У його ролі можуть виступати текстові документи, відео, аудіофайли та бази даних. WCMS (веб-версії систем управління) відповідають за показ сторінок сайту, миттєво компілюючи їх вміст із двох частин: безпосередньо самого контенту та шаблонів оформлення, що зберігаються у базі даних ресурсу. CloudMe – веб-сервіс для безпечного зберігання файлів різних форматів. Система дозволяє синхронізувати папки між пристроями та працює на базах Windows, MacOS, Linux, NAS та мобільних телефонах. Платформа стане в нагоді для звільнення простору на комп’ютері та смартфонах широкому колу осіб: від студентів, фрілансерів та стартаперів до відділів та керівників великих організацій. Її можуть використовувати активні користувачі інтернету для перегляду відео та прослуховування музики на роботі, в дорозі та вдома.

Recon

1. Насамперед скануємо відкриті порти. Я це роблю за допомогою наступного скрипта, який приймає один аргумент – адресу хоста, що сканується (Скріншот 1.) На хості відкрито два порти. (Скріншот 2.)


Скріншот 1. Приклад команди nmap.

Скріншот 2. Результат сканування.

Entry Point

1. Подивимося, що нам дасть веб-сервер.(Скріншот 1. та Скріншот 2.)


Скріншот 1. Приклад авторизації.

Скріншот 2. Програмне забезпечення.

2. Знаходимо версію CMS і можемо подивитися для неї експлоїти. (Скріншот 3.)


Скріншот 3. Версія CMS.

3. Відмінно, ми маємо RCE. (Скріншот 4. та Скріншот 5.)


Скріншот 4. Remote code execution.

Скріншот 5. Успішне підключення до webshell.

USER

1. Давайте прокинемо зручний шелл. Запустимо на локальній машині веб-сервер. (Скріншот 1.)


Скріншот 1. Приклад команди proton3.

 

2. Та завантажимо на віддалену машину netcat. (Скріншот 2.)


Скріншот 2. Приклад команди netcat.

 

3. Тепер запустимо листенер і кинемо реверс шелл.(Скріншот 3.) та (Скріншот 4.)


Скріншот 3. Приклад команди.

Скріншот 4. Листенер.

ROOT

1. Проводимо розвідку на хості і бачимо працюючий з підвищеними привілеями CloudMe.(Скріншот 1. та Скріншот 2.)


Скріншот 1. Хост.

Скріншот 2. Служба CloudMe.

2. Теж подивимося експлоїти. (Скріншот 3. та Скріншот 4.)


Скріншот 3. Експлоїт.

Скріншот 4. Експлоїт.

3. Далі нам потрібно згенерувати своє навантаження у форматі python. Зробимо це з msfvenom. (Скріншот 5. та Скріншот 6.)


Скріншот 5. Приклад команди msfvenom.

Скріншот 6. Навантаження у форматі python.

 

4. Так навантаження буде відправлено на 8888 порт. (Скріншот 7.)


Скріншот 7. Навантаження на 8888 порт.

5. Давайте зробимо тунель. Запустимо сервер chisel на локальній машині. (Скріншот 8. та Скріншот 9.)


Скріншот 8. Приклад команди chisel.

Скріншот 9. Сервер chisel.

6. Та клієнт на віддаленій. (Скріншот 10. та Скріншот 11.)


Скріншот 10. Приклад команди chisel.

Скріншот 11. Сервер chisel.

7. На локальній машині побачимо успішне підключення.(Скріншот 12.) Тепер все, що приходить на локальний порт 8888, транслюється на той же порт віддаленої машини. (Скріншот 13.)


Скріншот 12. Успішне підключення.

Скріншот 13. Сервер chisel з виконаним “тунелем”.

8. Виконуємо експлоїт і отримуємо реверс шелл з підвищеними привілеями. (Скріншот 14. та Скріншот 16.)


Скріншот 14. Приклад команди python.

Скрінщот 13. Отримання root прав.
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.