21. Hack The Box. Level Hard: Проходження Compromised. RCE LiteCart та бекдор pam_unix

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

Hack The Box є популярною платформою для пентестерів і фахівців з кібербезпеки, що пропонує навчальні машини для відпрацювання навичок. У цій статті розглянемо, як пройти машину Compromised, використовуючи реальні техніки зламу.

Прохід Compromised на Hack The Box: LiteCart і бекдор pam_unix

Публікуємо рішення задач, направлених на доробку, із платформи HackTheBox. Ці матеріали спрямовані на підтримку розвитку навичок у сфері інформаційної безпеки.

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

Recon

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

10.10.10.207				compromised.htb

Спочатку виконується сканування відкритих портів. Для цього використовується скрипт, який приймає один аргумент — адресу хоста, що сканується:

#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1

Давайте подивимося на сайт.

Виявлено лише CMS LiteCart. Далі виконується сканування директорій за допомогою інструмента gobuster.

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

Знаходимо цікаву директорію backup, а в ній архів.

Цей архів містить вихідні коди сайту.

Серед даних файлів, знаходимо згадку прихованого на сервері файлу.

Файл містить облікові дані адміністратора.

Авторизуємося.

Entry Point

Після вивчення даної CMS, знаходимо RCE експлоїт.

Проте інструмент не спрацьовує належним чином.

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

Для перевірки блокуємої функціональності змінюється навантаження та викликається phpinfo, щоб отримати список заборонених функцій.

Бачимо великий список таких функцій. Для обходу даних блокувань можемо використовувати цей код.

Змінимо код експлоїту так, щоб рахувати та відправити новий PHP код.

І цей код працює.

Подивимося на користувачів і помітимо, що у mysql є bash.

Для отримання зручного шелу використовується інструмент webwrap.

USER1

Оскільки MySQL підтримує виконання команд через командну оболонку, службу можна використовувати від імені звичайного користувача. Для цього виконуються команди безпосередньо через MySQL. Облікові дані для доступу до бази даних зазвичай зберігаються в конфігураційних файлах системи.

Тепер, коли були отримані облікові дані, перевіримо функції mysql.

Генеруються SSH-ключі, після чого публічний ключ додається до домашньої директорії служби. Для цього використовується команда exec cmd, яка дозволяє виконати необхідні дії безпосередньо з MySQL.

mysql -u root --password=changethis -e "select execcmd('echo ssh-rsa AAAAB3NzaC1yc2EAAAADA/ ... 6GuPNZGryVNovs= ralf@ralf-PC > ~/.ssh/authorizedkeys');"

Заходимо по SSH.

USER2

Також можна переглянути журнали системи, де часто зберігаються або фігурують паролі. Аналіз логів може виявити облікові дані, які можна використовувати для подальшого доступу до системи.

Спробуємо змінити користувача зі знайденим паролем.

ROOT

Після тривалого аналізу машини була отримана підказка щодо її назви та використання бекдорів. Для пошуку потенційних бекдорів виконується перевірка останніх змінених файлів, яка може вказати на підозрілі зміни в системі.
find . -mtime -100 2>/dev/null

Виявлено приховану бібліотеку pamunix.so, яка, ймовірно, є бекдором. У системі також присутня схожа легітимна версія цієї бібліотеки. Для подальшого аналізу підозрілий файл завантажується для перевірки його вмісту та функціональності.

scp [email protected]:/lib/x8664-linux-gnu/security/.pamunix.so ~/tmp/

Закидаємо в дизасемблер (я використовував Cutter).

Подивимося, де цей рядок використовується.

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

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

Висновок

У результаті аналізу було виявлено приховану бібліотеку pamunix.so, що містила бекдор. Після вивчення її функцій вдалося знайти зашифрований рядок, який використовувався як пароль. Використання цього пароля для доступу до облікового запису root виявилося успішним, що підтвердило наявність уразливості.
Інші статті по темі
CTF та райтапиОсвітаСамонавчання
Читати далі
Особисте: 20. Hack The Box. Level Medium: Проходження Bitlab. Слабка JS обфускація, GIT та реверс Windows програми
У цьому детальному розборі ми зосередимося на рішенні машини Bitlab, яка поєднує в собі слабку обфускацію JavaScript, роботу з GitLab та реверсинг Windows-додатків.
3
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.