## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SRCX404-CVE-2024-39722
# Инструмент эксплуатации Ollama CVE-2024-39722
Этот инструмент предназначен для эксплуатации CVE-2024-39722 — уязвимости раскрытия наличия моделей в Ollama версиях до 0.1.45 включительно. Он позволяет проверить, уязвим ли сервер Ollama, и попытаться обнаружить существующие модели на сервере. Кроме того, инструмент может обходить официальную библиотеку моделей Ollama для формирования списка потенциальных моделей для тестирования. 中文
## Сведения об уязвимости
* **CVE ID:** CVE-2024-39722
* **Описание:** Ollama версий <= 0.1.45 уязвима к раскрытию наличия моделей. Отправляя специально сформированный запрос к конечной точке `/api/push`, злоумышленник может определить, существует ли конкретная модель (включая пользовательские модели, отсутствующие в публичной библиотеке) на сервере.
* **Затронутые версии:** <= 0.1.45
* **Оценка CVSS:** 7.5 (High)
## Возможности
* **Обход библиотеки моделей Ollama:** получает список моделей из официальной библиотеки Ollama (`https://ollama.com/library`).
* **Проверка версии:** проверяет, уязвима ли версия целевого сервера Ollama.
* **Эксплуатация уязвимости:** пытается обнаружить существующие модели на уязвимом сервере Ollama, используя список известных имён моделей.
* **Многопоточная эксплуатация:** использует несколько потоков для более быстрого обнаружения моделей.
* **Вывод результатов:** сохраняет собранные и раскрытые модели в JSON-файл.
## Требования
* Python 3.x
* `requests`
* `lxml`
* `termcolor`
## Установка
1. Клонируйте репозиторий или скачайте скрипт `CVE_2024_39722.py`.
2. Установите требуемые пакеты Python:
root@kitploit:~
pip install requests lxml termcolor
## Использование
root@kitploit:~
python CVE_2024_39722.py [options]
### Параметры
* `-h, --help`: показать справочное сообщение и выйти.
* `-u URL, --url URL`: URL целевого сервера Ollama (например, `http://localhost:11434`).
* `-c, --crawl`: обойти библиотеку моделей Ollama и сохранить их в `links.json`.
* `-o OUTPUT, --output OUTPUT`: выходной файл для результатов (по умолчанию: `results.json`).
* `-t THREADS, --threads THREADS`: количество потоков для эксплуатации (по умолчанию: 10).
* `-v, --version-check`: только проверить, уязвим ли целевой сервер Ollama, на основе его версии.
### Примеры
1. **Показать справку:**
root@kitploit:~
python CVE_2024_39722.py -h
2. **Обойти библиотеку моделей Ollama:** Этот шаг получит имена моделей с `https://ollama.com/library` и сохранит их в `links.json`.
root@kitploit:~
python CVE_2024_39722.py --crawl
3. **Проверить, уязвим ли целевой сервер:**
root@kitploit:~
python CVE_2024_39722.py -u http://localhost:11434 --version-check
4. **Эксплуатировать целевой сервер:** Сначала будет проверена версия сервера. Если она уязвима, будет использован файл `links.json` (будет выполнен обход, если файла нет, или использован существующий) для проверки наличия моделей.
root@kitploit:~
python CVE_2024_39722.py -u http://localhost:11434
5. **Эксплуатация с указанным количеством потоков:**
root@kitploit:~
python CVE_2024_39722.py -u http://localhost:11434 -t 20
6. **Эксплуатация с сохранением результатов в пользовательский файл:**
root@kitploit:~
python CVE_2024_39722.py -u http://localhost:11434 -o discovered_models.json
## Отказ от ответственности
Этот инструмент предназначен только для образовательных целей и авторизованного тестирования безопасности. Не используйте его на каких-либо системах без явного разрешения владельца. Автор не несёт ответственности за любое неправомерное использование или ущерб, причинённый этим инструментом.