(Write-up) Ломаем машину Bizness на HTB
@zluukka (Egor Orshlet)Всем привет, я начал потихоньку вкатываться в тему тестирования на проникновение и CTF. В дальнейшем буду выкладывать свои райт-апы на машинки , которые буду изучать и ломать. Сегодня хочу разобрать взлом одной тачки на HTB, которая называется Bizness.

Подключившись по VPN к сети HTB перейдем по данному серому айпишнику на веб-сайт "компании".

Внимательно просматриваем интерфейс веб-страницы на наличие полезной информации. Листая ниже обнаружим , название платформы на которой данный сайт работает.

Обратимся в гугл , чтобы узнать поподробнее про данную платформу.
Apache OFBiz — открытое программное обеспечение для планирования ресурсов предприятия (ERP). Предлагает набор приложений для интеграции и автоматизации множества бизнес-процессов предприятий. OFBiz является проектом высшего уровня в Apache Software Foundation. Apache OFBiz предоставляет функциональность для управления заказами, инвентарем, финансами, проектами и другими аспектами бизнеса. Этот фреймворк с открытым исходным кодом может быть использован для разработки и внедрения различных бизнес-приложений, что делает его популярным среди организаций, которые стремятся к автоматизации своих бизнес-процессов.

Также проверим это фреймворк на наличие свежих уязвимостей.

Отлично! Теперь нам известно куда копать. Просмотрим данную страницу на GitHub и клонируем репозиторий на нашу линукс машину.

Как мы можем заметить , здесь есть подробное описание данной уязвимости, если вкратце , то CVE-2023-51467 предстваляет из себя это уязвимость, позволяющая удалённо выполнять код без аутентификации. CVE-2023-51467 активируется с помощью пустых или недействительных параметров USERNAME и PASSWORD в HTTP-запросе, что приводит к сообщению об успешной аутентификации. Это позволяет злоумышленникам получить доступ к внутренним ресурсам.
Атака зависит от того, что параметр «requirePasswordChange» установлен в положение «Y» (да) в URL, что позволяет обойти аутентификацию независимо от предоставленных данных пользователя и пароля.

После успешного клонирования мы видим содержимое репозитория.

Начнем слушать 6666 порт с помощью утилиты netcat.

Теперь вернемся к нашему скрипту , который написан на python и пробросим туда наш код, который позволит создать reverse shell.

После успешного соединения с нашей машиной , будет выполнена команда /bin/bash, которая предоставит доступ к терминалу жертвы.

Все работает , но нет привычного нам интерфейса. Используем модуль pty, python и следующую команду: python3 -c 'import pty; pty.spawn("/bin/bash")'. Модуль pty определяет операции для обработки концепции псевдотерминала: запуск другого процесса и возможность программной записи и чтения с его управляющего терминала

После исследования доступных каталогов находим флаг юзера =)

Повышение привилегий
В этой машине тяжело найти повышение, если не знать, где искать. Воспользуемся подсказкой и сделаем вот такой поиск:
$ find /opt/ofbiz -name "*.dat"
...
/opt/ofbiz/runtime/data/derby/ ...
...
Запомним каталог, перейдем в него и запустим хитрый grep:
cd /opt/ofbiz/runtime/data/derby/
grep -arin -o -E '(\w+\W+){0,5}password(\W+\w+){0,5}' .
Среди строчек найдем наш хэш:

С помощью CyberChef декодируем:
- From Base64 (алфавит URL Safe)
- To HEX (без разделителей)

https://hashcat.net/wiki/doku.php?id=example_hashes
Нам нужен режим SHA1 и солью (в нашем случае соль d), это будет режим 120 из примеров hashcat.
Файл hash.txt:
hash:salt

Брутфорс:
hashcat -a 0 -m 120 -O hash.txt rockyou.txt

Залогинемся под рутом и заберем наш флаг!

Машина взломана, конец=)
