1. HackTheBox. Проходження Traceback. Бекдор, LUA, SSH (level easy)

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

Докладніше про Backdoor, LUA, SSH

Першим розглянемо Backdoor – шкідлива програма, а іноді навмисно залишена лазівка в коді легальної програми, яка надає доступ до пристрою для несанкціонованих дій. Бекдор точно відповідає своїй назві (від англ. back door – «чорний хід»): потай впускає зловмисника в систему, наділяючи правами адміністратора. Бекдори споріднені офіційним утілітам для віддаленого адміністрування, але функціональність їх зазвичай ширше. Крім безпосереднього управління процесами на рівні системи і навіть Bios, бекдори можуть красти персональні дані користувача, завантажувати та відправляти по мережі файли, відкривати доступ для вірусів та черв’яків, підключатися до віддалених хостів, перетворювати комп’ютер на «зомбі», роблячи його частиною ботнета та все це непомітно. Далі на черзі LUA та SSH. LUA – мова програмування, в основі якої лежать скрипти. Називається скриптовим. Використовується для того, щоб створювати бізнес-логіку .

SSH це протокол, що використовує клієнт-серверну модель для аутентифікації віддалених систем та забезпечення шифрування даних, обмін якими відбувається в рамках віддаленого доступу. За замовчуванням для роботи протоколу використовується TCP-22 порт: на ньому сервер (хост) очікує вхідне підключення і після отримання команди та проведення аутентифікації, організує запуск клієнта, відкриваючи обрану користувачем оболонку. При необхідності користувач може змінювати порт, що використовується. Для створення SSH підключення клієнт повинен ініціювати з’єднання з сервером, забезпечивши захищене з’єднання і підтвердивши свій ідентифікатор (перевіряються відповідність ідентифікатора з попередніми записами, що зберігаються в RSA-файлі, та особисті дані користувача, необхідні для автентифікації.  Підключення до лабораторії здійснюється через VPN. Рекомендується не підключатися з робочого комп’ютера або з хоста, де є важливі для вас дані, оскільки Ви потрапляєте в приватну мережу з людьми, які щось вміють в області ІБ.

Recon

1. Насамперед скануємо відкриті порти. Оскільки сканувати всі порти nmap’ом довго, то спочатку зроблю це за допомогою masscan. Ми скануємо всі TCP та UDP порти з інтерфейсу tun0 зі швидкістю 500 пакетів на секунду. Приклад команди та результат  сканування відображені на Скріншоті 1 та Скріншоті 2.


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

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

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


Скріншот 3. Приклад команди (з опціею -A).

 


Скріншот 4. Приклад результату сканування.

3. На хості працюють служба SSH та веб-сервер. Зайшовши на веб-сервер нічого не виявимо, крім послання. (Скріншот 5.)


Скріншот 5. Текст посилання.

4. Але звертаємо увагу на щось цікаве у вихідному коді. (Скріншот 6.)


Скріншот 6. Вміст цікавого коду.

5. Шукаємо цей рядок у Google і виходимо на цю сторінку github. (Скріншот 7. та Скріншот 8.)


Скріншот 7. Пошукова сторінка Google.

Скріншот 8. Сторінка github

Entry Point

1. Перебираючи дані файли, визначаємо, що на сервер був завантажений файл smevk.php. (Cкріншот 1.) Після чого у початковому коді на гітхабі знаходимо облікові дані за умовчанням та авторизуємось. (Скріншот 2. та Скріншот 3.)

Скріншот 1. Інтерфейс авторизації smevk.php.

Скріншот 2. Початковий код на гітхабі.

Скріншот 3. Користувальницький сервер Unome.

 

2. Наступним кроком ми згенеруємо PHP шелл і запустимо лістонер. (Скріншот 4. та Скріншот 5.)


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

Скріншот 5. Лістонер у PHP.

3. Тепер завантажимо шелл і звернемося до нього. Отримуємо сесію meterpreter. (Скріншот 6. та Скріншот 7.)


Скріншот 6. Сесія meterpreter.

Скріншот 7. Завантаження шелл .

USER

1. У домашній директорії користувача знаходимо файли та записку до них. ( Скріншот 1.)


Скріншот 1. Файли та посилання директорії користувача.

2.А також від імені користувача sysadmin можна запустити lua скрипт. (Скріншот 2.)


Скріншот 2. Приклад Iua скрипт.

2. Запускаємо шелл. (Скріншот 3.) Для зручності кинемо SSH ключ. Для цього згенеруємо пару відкритий/закритий і запишемо відкритий authorized_keys.

Скріншот 3. Створення SSH ключу.

3. Підключимося за допомогою закритого та забираємо прапор.    (Скріншот 4.)


Скріншот 4. Пароль від користувача.

ROOT

1. Запустимо скрипт базового переліку LinPEAS. І у звіті знайдемо цікаві файли для запису. (Скріншот 1. та Скріншот 2.)


Скріншот 1. Цікава група файлів

Скріншот 2. Скрипт базового переліку LinPEAS.

2. Таким чином, файл /etc/update-motd.d/00-header виконується щоразу, коли відбувається підключення SSH. Давайте перевіримо з допомогою pspy. Запустимо цю утиліту і підключимося по SSH. Та відразу допишемо реверс шелл у цей файл. (Скріншот 3. та Скріншот 4.)


Скріншот 3. Файл /etc/updatemotd.d/00-header.

Скріншот 4. Реверс шелл.

3. Тепер одразу підключимося та побачимо зворотне підключення на наш хост. (Скріншот 5.)

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