Blocky - Linux машина легкого рівня. Якщо провести ретроспективу, то шлях від розвідки до отримання прав root користувача доволі простий, але те, що на машині є певна кількість кролячих нір, зробило її цікавою ціллю для практики.
Розвідка
Почнемо з autorecon:
$ autorecon blocky.htb --single-target --no-port-dirs
Результат Nmap:
PORT STATE SERVICE REASON VERSION
21/tcp open ftp? syn-ack ttl 63
22/tcp open ssh syn-ack ttl 63 OpenSSH 7.2p2 Ubuntu 4ubuntu2.2
80/tcp open http syn-ack ttl 63 Apache httpd 2.4.18
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-title: BlockyCraft – Under Construction!
|_http-generator: WordPress 4.8
25565/tcp open minecraft syn-ack ttl 63 Minecraft 1.11.2 (Protocol: 127, Message: A Minecraft Server, Users: 0/20)
Результат feroxbuster:
200 GET 1l 9w 1398c http://blocky.htb/wp-includes/js/wp-embed.min.js
200 GET 326l 1144w 10330c http://blocky.htb/wp-content/themes/twentyseventeen/assets/js/html5.js
200 GET 249l 928w 7682c http://blocky.htb/wp-content/themes/twentyseventeen/assets/js/global.js
200 GET 70l 199w 2397c http://blocky.htb/wp-login.php
200 GET 43l 43w 1045c http://blocky.htb/wp-includes/wlwmanifest.xml
200 GET 6l 1435w 97184c http://blocky.htb/wp-includes/js/jquery/jquery.js
200 GET 225l 400w 3646c http://blocky.htb/wp-content/themes/twentyseventeen/assets/css/ie8.css
200 GET 1l 2522w 52657c http://blocky.htb/index.php/wp-json
200 GET 4282l 8552w 82584c http://blocky.htb/wp-content/themes/twentyseventeen/style.css
200 GET 209l 846w 5836c http://blocky.htb/wp-content/themes/twentyseventeen/assets/js/jquery.scrollTo.js
200 GET 31l 90w 683c http://blocky.htb/wp-content/themes/twentyseventeen/assets/js/skip-link-focus-fix.js
200 GET 2l 281w 10056c http://blocky.htb/wp-includes/js/jquery/jquery-migrate.min.js
200 GET 70l 199w 2397c http://blocky.htb/wp-login.php?redirect_to=http%3A%2F%2Fblocky.htb%2Fwp-admin%2F&reauth=1
200 GET 313l 3592w 52227c http://blocky.htb/
200 GET 397l 808w 8110c http://blocky.htb/plugins/assets/js/script.js
200 GET 553l 1016w 9759c http://blocky.htb/plugins/assets/css/styles.css
200 GET 37l 61w 745c http://blocky.htb/plugins/
200 GET 1l 4w 29c http://blocky.htb/wp-includes/ms-files.php
200 GET 200l 2015w 40838c http://blocky.htb/wp-includes/
200 GET 10l 51w 380c http://blocky.htb/wiki/
200 GET 50l 54w 2100c http://blocky.htb/phpmyadmin/js/whitelist.php
200 GET 267l 586w 6715c http://blocky.htb/phpmyadmin/js/get_image.js.php
200 GET 168l 361w 3082c http://blocky.htb/phpmyadmin/themes/pmahomme/css/printview.css
200 GET 28l 101w 8170c http://blocky.htb/phpmyadmin/themes/pmahomme/img/logo_right.png
200 GET 1225l 3368w 35212c http://blocky.htb/phpmyadmin/themes/pmahomme/jquery/jquery-ui-1.11.2.css
200 GET 1l 1w 53c http://blocky.htb/phpmyadmin/themes/dot.gif
200 GET 77l 147w 3068c http://blocky.htb/phpmyadmin/js/codemirror/addon/lint/lint.css
200 GET 38l 73w 662c http://blocky.htb/phpmyadmin/js/codemirror/addon/hint/show-hint.css
200 GET 26l 347w 10334c http://blocky.htb/phpmyadmin/db_structure.php
200 GET 26l 347w 10327c http://blocky.htb/phpmyadmin/index.php
200 GET 98l 278w 35231c http://blocky.htb/phpmyadmin/favicon.ico
200 GET 325l 922w 7771c http://blocky.htb/phpmyadmin/js/codemirror/lib/codemirror.css
200 GET 390l 2925w 28835c http://blocky.htb/phpmyadmin/js/messages.php
200 GET 209l 786w 12811c http://blocky.htb/phpmyadmin/doc/html/index.html
200 GET 5173l 11326w 105964c http://blocky.htb/phpmyadmin/phpmyadmin.css.php
200 GET 26l 347w 10327c http://blocky.htb/phpmyadmin/
200 GET 5l 15w 135c http://blocky.htb/wp-trackback.php
200 GET 13l 78w 4373c http://blocky.htb/wp-admin/images/wordpress-logo.png
200 GET 462l 905w 7393c http://blocky.htb/wp-admin/css/install.css
200 GET 385l 3179w 19935c http://blocky.htb/license.txt
200 GET 15l 72w 1082c http://blocky.htb/wp-admin/install.php
200 GET 70l 199w 2412c http://blocky.htb/wp-login.php?redirect_to=http%3A%2F%2Fblocky.htb%2Fwp-admin%2Fupdate-core.php&reauth=1
200 GET 70l 199w 2407c http://blocky.htb/wp-login.php?redirect_to=http%3A%2F%2Fblocky.htb%2Fwp-admin%2Fimport.php&reauth=1
200 GET 23l 71w 1030c http://blocky.htb/wp-admin/upgrade.php
200 GET 98l 844w 7413c http://blocky.htb/readme.html
Як бачимо, є куди розгулятись і куди копнути. Передивляючись знайдені файли та директорії, знаходимо http://blocky.htb/index.php/wp-json/wp/v2/users:
id 1
name "Notch"
url ""
description ""
link "http://blocky.htb/index.php/author/notch/"
slug "notch"
Спроби перебору паролів по словнику для FTP та SSH з користувачем notch результатів не принесло. Передивляючись знахідки далі, знаходимо форму логіну в адмінпанель для WordPress і форму логіну для phpMyAdmin, але без пароля це все поки що марно. Шукаємо далі. Нарешті, знаходимо дещо цікаве на http://blocky.htb/plugins/
Отримуємо ім’я користувача і пароль в одному з файлів:
Після цього все мало бути вже ДУЖЕ просто, але до простого шляху треба ще додуматись… Логічно було припустити, що цей користувач і пароль повинні підійти для phpMyAdmin, бо це система адміністрування MySQL. Про всяк випадок спробувала автентифікуватись в SSH та FTP - нічого не вийшло. В phpMyAdmin зайти вдалось, але там я не змогла зробити нічого цікавого, потинявшись трохи, знайшла таблицю з користувачами, де був вже знайдений раніше notch і його хешований пароль. Проваливши спробу знайти пароль за допомогою hashcat, згенерувала свій хеш і вставила його у таблицю. Мені здалось, що наступним логічним кроком буде зайти в адмінпанель WordPress як користувач notch і спробувати експлуатувати WordPress теми або плагіни, щоб виконати код для отримання зворотного з’єднання. Не так сталося, як гадалося. Промучившись хвилин 20, зрозуміла, що діла не буде.
Первинне проникнення
Правильна відповідь була на поверхні, але мені знадобилось багато часу, щоб дійти до неї. Треба було спробувати пароль, знайдений у BlockyCore.jar для користувача notch:
$ ssh [email protected]
[email protected]`s password:
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64)
Last login: Fri Jul 8 07:24:50 2022 from 10.10.14.29
notch@Blocky:~$ ls
minecraft user.txt
Підвищення привілеїв
Техніка підвищення привілеїв до root користувача тут очевидна, нічого і розписувати:
notch@Blocky:~$ sudo -l
[sudo] password for notch:
Matching Defaults entries for notch on Blocky:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User notch may run the following commands on Blocky:
(ALL : ALL) ALL
notch@Blocky:~$ sudo cat /root/root.txt
hehehehehehehe
Подивившись проходження цієї машини від IppSec, я зрозуміла що все ж таки можливо було виконати код через WordPress теми. Виходить, в мене зірки не зійшлись, а може і руки не з того місця 🫠