4. HackTheBox. Level Easy: Проходження Traverxec. RCE у веб-сервері nostromo, техніка GTFOBins

6 грудня 2024 1 хвилина Автор: Lady Liberty

Стаття надає детальний аналіз процесу проходження машини Traverxec на платформі HackTheBox. Крім того, в статті описується отримання оболонки Meterpreter та підвищення привілеїй за допомогою техніки GTFOBins. Читачі дізнаються про конкретні інструменти, такі як Masscan, nmap, Metasploit, і як їх використовувати для ефективної експлуатації уразливостей в реальних сценаріях.

Як знайти уразливості в веб-сервері nostromo та отримати RCE

У статті розглядається процес отримання RCE у веб-сервері nostromo, отримання оболонки meterpreter через активну сесію metasploit, аналіз конфігурацій nostromo, злом пароля для шифрування SSH-ключа та використання техніки GTFOBins для підвищення привілеїв.

Підключення до лабораторії здійснюється через VPN. Не рекомендується підключатися з робочих комп’ютерів або пристроїв, на яких зберігаються важливі дані, оскільки доступ до приватної мережі здійснюється з людьми, які мають досвід у галузі інформаційної безпеки.

Recon

Ця машина має IP адресу 10.10.10.165, яку додаємо в /etc/hosts.

10.10.10.165    traverxec.htb

Спочатку проводиться сканування відкритих портів. Оскільки сканування всіх портів за допомогою nmap займає значно більше часу, використовується masscan для прискорення процесу. Скануються всі TCP та UDP порти через інтерфейс tun0 зі швидкістю 1000 пакетів на секунду.

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

Тепер для отримання більш детальної інформації про послуги, що працюють на портах, запустимо сканування з опцією -А.

nmap -A traverxec.htb -p22,80

Таким чином ми маємо SSH та веб-сервер Nostromo.

Перевіримо веб-сервер Nostromo на відомі експлоїти для версії 1.9.6. Для цих цілей можна використовувати пошуковіплати, дана програма надає можливість зручної роботи з експлоїтами, які є в базі exploit-db.

З результатів сканування можна зрозуміти, що другий експлоїт не підходить, а перший має позначку “Metasploit”, що вказує на реалізацію цього модуля в контексті Metasploit Framework.

Entry Point

Завантажуємо msfconsole і здійснимо пошук експлоїту.

Тепер, маючи повне ім’я експлоїту, можна приступити до його використання. Після завантаження експлоїту потрібно переглянути інформацію про нього, щоб дізнатися базові опції для використання та отримати опис самого експлоїту.

Чудово! Оскільки цей експлоїт підходить для нашої версії nostromo, можна задати базові опції та перевірити його роботу. Наступним кроком буде налаштування параметрів експлоїту та запуск для перевірки його ефективності.

Для зручності роботи отримаємо meterpreter оболонку. Для цього відправимо сесію працювати у фоні – Ctrl+Z та підтверджуємо. І якщо подивимося сесії, що працюють, то побачимо ту, яку щойно згорнули.

Отримати оболонку meterpreter в активній сесії можна за допомогою модуля пост-експлуатації post/multi/manage/shell_to_meterpreter. Для швидкого використання цього модуля рекомендується діяти наступним чином.

Повідомляється, що оболонка meterpreter активна у другій сесії. Тому необхідно відкрити та запустити другу сесію.

USER

Спочатку необхідно провести огляд системи на хості. Для цього на машину завантажується скрипт перерахування для Linux.

Далі викликаємо шелл, даємо право виконання і запускаємо скрипт.

Аналізуючи висновок, знаходимо хеш пароля з .htpasswd.

Подальше безцільне дослідження системи виявилося марною тратою часу. Усвідомивши це та не маючи чіткого плану дій, було прийнято рішення переглянути конфігурації веб-сервера. На щастя, директорія, що веде до цього файлу, була чітко вказана.

Далі переглянемо файл nhttp.conf.

У файлі конфігурації nostromo коренева директорія вказується як homedirs_public, що відповідає директорії public_www. Вона розташована в домашній директорії користувача (homedirs/home), а саме в директорії користувача serveradmin ([email protected]). Таким чином, файл index.html знаходиться за шляхом /home/david/public_www. Щоб забезпечити доступ користувачів до цієї сторінки, директорія повинна мати права на читання для всіх користувачів.

Припущення підтвердилися. Крім того, було виявлено певну директорію, яку слід дослідити детальніше, щоб зрозуміти її вміст.

Там знаходимо бекап SSH файлів. Завантажуємо їх.

Розархівуємо файли.

Виявлено приватний ключ користувача, але під час спроби підключення запитується пароль. Це свідчить про те, що ключ зашифрований.

Хеш буде збережено у файл, після чого його буде перевірено за словником rockyou.txt за допомогою інструменту JohnTheRipper.

Так, ми знаходимо пароль шифрування ключа. За допомогою нього та ключа підключаємося по SSH.

ROOT

Дивимося , що у нас є в директорії користувача.

В директорії bin знаходимо цікаві файли.

Скрипт виконує команду, яка спочатку виводить рядки, а потім під sudo запускає іншу команду, передаючи її виведення в cat. Це виглядає досить цікавим. Виконання цієї команди дозволяє отримати дуже інформативний результат.

Перенаправлення в cat одразу підказує можливість застосування техніки GTFOBins. Суть цієї техніки полягає в тому, що за допомогою різних системних утиліт можна отримати доступ до читання, запису файлів, виконання команд тощо. Приклади використання для різних програм доступні у відповідних довідниках.

Особливість у цьому випадку полягає в тому, що, якщо зменшити розмір вікна терміналу й виконати команду без перенаправлення виведення в cat, то виведення автоматично перенаправляється в less. Звідти можна отримати доступ до шелла за допомогою команди !/bin/sh. Оскільки команда виконується з правами sudo, отриманий шелл матиме максимальні привілеї.

Таким чином, отримано доступ до користувача root у системі, що забезпечує повний контроль і найвищі привілеї.

Інші статті по темі
CTF та райтапи
Читати далі
3. HackTheBox. Level Easy: Проходження Nest. NTFS потоки, реверс C# та бродилка по SMB
Читач дізнається, як використовувати сучасні інструменти для сканування мережі (nmap, masscan), досліджувати SMB-ресурси, аналізувати приховані дані в альтернативних потоках NTFS і проводити реверс-інжиніринг C#-додатків.
279
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.