
Python CLI, эксплуатирующий CVE-2026-48907 в Joomla JCE через загрузку импорта профиля, проверяет пути к shell и открывает интерактивный командный канал на авторизованных целях.
E.L.V — Exploit Loader & Vulnerability Firmware
Утилита для исследований в области кибербезопасности, предназначенная для авторизованной оценки уязвимостей.
E.L.V CVE Research & Assessment Framework — это утилита командной строки на Python, предназначенная для контролируемых исследований в области безопасности и авторизованной оценки уязвимостей.
Предоставленная реализация содержит функциональность для:
Текущий исходный код определяет свою исследовательскую цель как:
CVE-2026-48907 Joomla! JCE Extension < 2.9.99.5 Unauthenticated RCE
Это утверждение о CVE/продукте является метаданными, предоставленными исходным кодом, и не было независимо проверено в этом README. Перед публикацией заявления о безопасности проверьте идентификатор, затронутые версии, рекомендации, затронутый компонент и информацию об устранении по доверенному источнику CVE/производителя.
Этот проект взаимодействует с удалёнными веб-приложениями, и предоставленная реализация включает функциональность, предназначенную для загрузки пользовательской серверной полезной нагрузки и связи с загруженным шеллом.
Используйте его только против систем, на которые у вас есть явное разрешение.
Не используйте этот проект для:
Для безопасной лаборатории используйте изолированную локальную среду VM/контейнера или намеренно уязвимую тренировочную цель.
| Поле | Значение |
|---|---|
| Проект | E.L.V CVE Research & Assessment Framework |
| Автор / Движок | HxN / E.L.V |
| Версия | 1.0.0 |
| Язык | Python |
| Платформа | *nix / Unix-подобные системы |
| Лицензия | GNU GPL v3 |
| Интерфейс | Командная строка |
| HTTP-клиент | requests |
| Параллелизм | ThreadPoolExecutor |
| Основное назначение | Авторизованные исследования в области безопасности и оценка |
Предоставленный исходный код elv-cve.py содержит следующие основные компоненты.
Скрипт читает локальный файл, указанный через опцию --shell.
Исходный код описывает его как пользовательский файл шелла/загрузчика и завершает работу, когда указанный файл не может быть прочитан.
Программа поддерживает два взаимоисключающих режима целей:
Для каждой цели скрипт выполняет GET-запрос к корню цели и ожидает HTTP-ответ 200 перед продолжением.
Реализация ищет в возвращённом HTML значение, связанное с CSRF, с помощью регулярных выражений.
В настоящее время реализованы два шаблона.
Скрипт формирует запрос на многочастную загрузку к:```text /index.php?option=com_jce
Запрос включает задачу импорта профиля и извлечённый токен.
### 6. Проверка путей-кандидатов
После запроса на загрузку программа проверяет несколько возможных местоположений итогового файла.
Текущий исходный код содержит следующие пути-кандидаты:```text
/tmp/
/images/
/images/stories/
/media/
Для одной цели текущая программа вызывает интерфейс интерактивных команд, когда сообщает об успешно загруженном пути к оболочке.
Источник отправляет команды, используя POST-параметры с именами:```text cmd c
Поскольку эта функциональность может привести к удалённому выполнению команд, её следует ограничить изолированными, явно авторизованными средами.
### 8. Обработка нескольких целей
Когда указан файл с целями, программа использует `ThreadPoolExecutor` и обрабатывает цели параллельно.
Количество потоков по умолчанию в исходном коде:```text
10
На высоком уровне текущая реализация следует такому потоку:```text Start │ ├── Parse command-line arguments │ ├── Load local payload file │ ├── Load one target OR target list │ ├── Create ELV_CVE output directory │ ├── Target processing │ │ │ ├── GET target │ ├── Check HTTP response │ ├── Extract token │ ├── Submit profile-import request │ ├── Check candidate file paths │ └── Record result │ └── Write results / display summary
---
## Требования
Поставляемый исходный код импортирует:
- Модули стандартной библиотеки Python:
- `random`
- `re`
- `time`
- `argparse`
- `sys`
- `os`
- `json`
- `threading`
- `concurrent.futures`
- Сторонние модули:
- `requests`
- `urllib3`
Таким образом, минимальная установка зависимостей:```bash
python3 -m pip install requests urllib3
Для воспроизводимых развёртываний зафиксируйте зависимости в файле requirements.txt.
Пример:```text requests urllib3
---
## Установка
Клонируйте или скопируйте проект в изолированную среду оценки.
Пример:```bash
git clone <YOUR-REPOSITORY-URL>
cd <YOUR-REPOSITORY-DIRECTORY>
Создайте виртуальное окружение:```bash python3 -m venv .venv
Активируйте его:```bash
source .venv/bin/activate
Установите зависимости:```bash python3 -m pip install -r requirements.txt
Проверьте Python:```bash
python3 --version
Проверьте зависимость:```bash python3 -c "import requests, urllib3; print('Dependencies OK')"
> Замените `<YOUR-REPOSITORY-URL>` и `<YOUR-REPOSITORY-DIRECTORY>` на значения, используемые в вашем репозитории.
---
## Интерфейс командной строки
В исходном коде определены следующие параметры командной строки.
### Выбор цели```text
-u, --url
Единый целевой URL.```text -f, --file
Путь к файлу, содержащему целевые URL-адреса.
Эти параметры являются взаимоисключающими, и один из них обязателен.