Фреймворк в стиле Metasploit для тестирования безопасности AI и ML с более чем 40 эксплойт-модулями, нацеленными на уязвимости из OWASP LLM Top 10.
Один из самых популярных open source сканеров безопасности веб-приложений. Поддерживает активное/пассивное сканирование, перехват трафика (proxy), fuzzing, …
Сканер уязвимостей LLM, проверяющий большие языковые модели на слабые места безопасности, галлюцинации и проблемы prompt injection.
CLI-агент для автономного пентеста с 13+ специализированными AI-агентами, 120+ тестами OWASP и удаленным выполнением инструментов через …
Терминальный харнесс с открытым исходным кодом для авторизованного red-team тестирования систем на базе языковых моделей с …
git clone https://github.com/scthornton/MetaLLM.git cd MetaLLM python -m venv venv source venv/bin/activate pip install -r requirements.txt
MetaLLM — это фреймворк для тестирования безопасности, вдохновлённый Metasploit, специально разработанный для систем ИИ и машинного обучения. Он предоставляет 61 рабочий модуль, охватывающий атаки на промпты LLM, отравление RAG, эксплуатацию агентного ИИ, компрометацию инфраструктуры MLOps, тестирование безопасности API и сетевые атаки на уровне МО — всё это управляется через интерактивный CLI с автодополнением, отслеживанием сессий и структурированными отчётами, сопоставленными с MITRE ATLAS и OWASP LLM Top 10 2025.

Существуют и другие инструменты для тестирования безопасности ИИ. Вот чем MetaLLM отличается от них:
| Возможность | MetaLLM | Garak | PyRIT | Promptfoo |
|---|---|---|---|---|
Рабочий процесс оператора в стиле Metasploit (use / set / run / sessions) |
Да | Нет | Нет | Нет |
| Полное покрытие стека (от сети до модели и агента) | Да | Нет | Частично | Нет |
| Модуль отравления инструмента MCP | Да | Нет | Нет | Нет |
| Многоходовые адаптивные джейлбрейки (крещендо, накопление контекста) | Да | Нет | Да | Нет |
| Эксплойты инфраструктуры MLOps (Jupyter, MLflow, W&B, TensorBoard) | Да | Нет | Нет | Нет |
| Менеджер сессий с отслеживанием трофеев | Да | Нет | Нет | Нет |
| Целевая база данных SQLite для сохранения состояния тестирования | Да | Нет | Нет | Нет |
| Сопоставление отчётов с MITRE ATLAS и OWASP | Да | Нет | Частично | Частично |
MetaLLM не заменяет ни один из этих инструментов. Он заполняет пробел: фреймворк, ориентированный на оператора, для практических красных команд ИИ, который охватывает всю поверхность атаки — от сетевой разведки до эксплуатации модели и сбора трофеев после эксплуатации.
git clone https://github.com/perfecXion-ai/MetaLLM.git
cd MetaLLM
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python metallm.py

metalllm> use exploit/llm/prompt_injection
metalllm exploit(prompt_injection)> show options
metalllm exploit(prompt_injection)> set TARGET_URL http://target.example.com/api/chat
metalllm exploit(prompt_injection)> set PROVIDER openai
metalllm exploit(prompt_injection)> set MODEL gpt-4
metalllm exploit(prompt_injection)> run
metalllm> sessions -l # List active sessions
metalllm> sessions -i 1 # Interact with session 1
metalllm> report generate # Generate assessment report

| Команда | Описание |
|---|---|
use <модуль> |
Выбрать модуль |
show options |
Показать настраиваемые параметры активного модуля |
set <ПАРАМЕТР> <значение> |
Установить параметр модуля |
run |
Выполнить активный модуль |
check |
Проверить цель без полной эксплуатации |
search <термин> |
Поиск модулей по имени или ключевому слову |
show modules |
Показать все доступные модули |
sessions -l |
Показать активные сессии |
sessions -i <id> |
Взаимодействовать с сессией |
targets |
Управление базой данных целей |
report generate |
Сгенерировать отчёт в формате HTML/Markdown/JSON |
back |
Отменить выбор активного модуля |
help |
Показать доступные команды |
LLM — 12 модулей
| Модуль | Описание |
|---|---|
exploit/llm/prompt_injection |
Многотехническая инъекция промптов |
exploit/llm/prompt_injection_basic |
Базовые шаблоны инъекции промптов |
exploit/llm/prompt_injection_advanced |
Продвинутая инъекция с манипуляцией контекстом |
exploit/llm/jailbreak |
Стандартные техники джейлбрейка |
exploit/llm/jailbreak_dan |
Варианты джейлбрейка в стиле DAN |
exploit/llm/system_prompt_leak |
Утечка системного промпта через косвенные методы |
exploit/llm/system_prompt_extraction |
Прямое извлечение системного промпта (многотехнический подход) |
exploit/llm/context_manipulation |
Атаки с манипуляцией окном контекста |
exploit/llm/adaptive_jailbreak |
Многоходовые адаптивные джейлбрейки (крещендо, накопление контекста) |
exploit/llm/flipattack |
FlipAttack — обход путём переворота слов/сегментов |
exploit/llm/encoding_bypass |
Обходы с помощью кодировок Base64, ROT13, hex, unicode |
| -- | (11 уникальных модулей; prompt_injection учитывается один раз) |
| RAG — 5 модулей |
| Модуль | Описание |
|---|---|
exploit/rag/vector_injection |
Внедрение вредоносных векторов в конвейер поиска |
exploit/rag/document_poisoning |
Отравление документов, обрабатываемых системами RAG |
exploit/rag/knowledge_corruption |
Искажение записей в базе знаний |
exploit/rag/retrieval_manipulation |
Манипуляция ранжированием и результатами поиска |
exploit/rag/poisoning |
Общие техники отравления RAG |
Agent / MCP — 10 модулей
| Модуль | Описание |
|---|---|
exploit/agent/goal_hijacking |
Перенаправление целей агента через внедрённые инструкции |
exploit/agent/tool_misuse |
Злоупотребление интерфейсами вызова инструментов агента |
exploit/agent/memory_manipulation |
Вмешательство в хранилище памяти агента |
exploit/agent/plugin_abuse |
Эксплуатация загрузки и выполнения плагинов |
exploit/agent/langchain_rce |
Удалённое выполнение кода (RCE) в LangChain через небезопасную десериализацию |
exploit/agent/langchain_tool_injection |
Внедрение вредоносных инструментов в агентов LangChain |
exploit/agent/crewai_task_manipulation |
Манипуляция определениями задач в CrewAI |
exploit/agent/autogpt_goal_corruption |
Искажение состояния целей AutoGPT |
exploit/agent/protocol_message_injection |
Внедрение сообщений в протокольный слой агента |
exploit/agent/mcp_tool_poisoning |
Отравление определений и ответов инструментов MCP |
Инфраструктура MLOps — 9 модулей
| Модуль | Описание |
|---|---|
exploit/mlops/pickle_deserialization |
Удалённое выполнение кода (RCE) через десериализацию Pickle |
exploit/mlops/mlflow_model_poison |
Отравление моделей в MLflow |
exploit/mlops/mlflow_model_poisoning |
Вариант отравления реестра моделей MLflow |
exploit/mlops/jupyter_rce |
Удалённое выполнение кода (RCE) в Jupyter Notebook |
exploit/mlops/jupyter_notebook_rce |
Эксплуатация ядра Jupyter Notebook |
exploit/mlops/wandb_credential_theft |
Извлечение учётных данных Weights & Biases |
exploit/mlops/wandb_data_exfiltration |
Эксфильтрация данных экспериментов W&B |
exploit/mlops/model_registry_manipulation |
Вмешательство в реестр моделей |
exploit/mlops/tensorboard_attack |
Эксплуатация TensorBoard |
API — 3 модуля
| Модуль | Описание |
|---|---|
exploit/api/api_key_extraction |
Извлечение API-ключей из ответов и конфигураций LLM |
exploit/api/excessive_agency |
Проверка на избыточные полномочия / действия без ограничений |
exploit/api/unauthorized_access |
Обход авторизации API |
Сеть — 5 модулей
| Модуль | Описание |
|---|---|
exploit/network/adversarial_examples |
Создание вредоносных входных данных для ML-моделей |
exploit/network/model_extraction |
Кража моделей через API-запросы |
exploit/network/model_inversion |
Восстановление обучающих данных по выходам модели |
exploit/network/membership_inference |
Определение, входили ли данные в обучающий набор |
exploit/network/api_key_harvesting |
Сбор API-ключей из сетевого трафика |
Сканер — 5 модулей
| Модуль | Описание |
|---|---|
auxiliary/scanner/llm_api_scanner |
Поиск API-эндпоинтов LLM |
auxiliary/scanner/mlops_discovery |
Поиск платформ MLOps (MLflow, Kubeflow и др.) |
auxiliary/scanner/rag_endpoint_enum |
Перечисление эндпоинтов систем RAG |
auxiliary/scanner/agent_framework_detect |
Определение используемых фреймворков агентов |
auxiliary/scanner/ai_service_port_scan |
Скан портов для сервисов ИИ/ML |
Фингерпринтинг — 4 модуля
| Модуль | Описание |
|---|---|
auxiliary/fingerprint/llm_model_detector |
Определение LLM за API |
auxiliary/fingerprint/capability_prober |
Зондирование возможностей и ограничений модели |
auxiliary/fingerprint/safety_filter_detect |
Обнаружение и анализ защитных фильтров |
auxiliary/fingerprint/embedding_model_id |
Идентификация моделей эмбеддингов |
Поиск — 3 модуля
| Модуль | Описание |
|---|---|
auxiliary/discovery/vector_db_enum |
Перечисление векторных баз данных (Pinecone, Weaviate, Qdrant и др.) |
auxiliary/discovery/model_registry_scan |
Скан реестров моделей |
auxiliary/discovery/training_infra_disc |
Поиск инфраструктуры обучения |
Тестирование DoS — 3 модуля
| Модуль | Описание |
|---|---|
auxiliary/dos/token_exhaustion |
Исчерпание бюджета токенов |
auxiliary/dos/rate_limit_test |
Тестирование границ ограничения по запросам |
auxiliary/dos/context_overflow |
Переполнение контекстного окна |
Вспомогательные модули LLM — 2 модуля
| Модуль | Описание |
|---|---|
auxiliary/llm/fingerprint |
Фингерпринтинг LLM через анализ поведения |
auxiliary/llm/fuzzer |
Фаззинг входных данных LLM |
| --- |
| Модуль | Описание |
|---|---|
post/llm/context_extraction |
Извлечение контекста беседы и данных из скомпрометированных сессий |
MetaLLM/
├── metallm.py # Entry point -- launches interactive CLI
├── cli/
│ ├── console.py # REPL with tab completion and command history
│ ├── commands.py # Command implementations
│ ├── completer.py # Tab completion engine
│ └── formatter.py # Output formatting
├── metallm/
│ ├── base/ # Base classes: Module, Target, Result, Option
│ └── core/
│ ├── module_loader.py # Dynamic module discovery and loading
│ ├── session.py # Session manager (active sessions, loot)
│ ├── db.py # SQLite target database
│ ├── llm_client.py # Unified LLM client (OpenAI, Anthropic, Ollama, Google, generic HTTP)
│ └── reporting.py # Report generation with MITRE ATLAS + OWASP mapping
├── modules/
│ ├── exploits/ # 44 exploit modules
│ │ ├── llm/ # Prompt injection, jailbreaks, extraction
│ │ ├── rag/ # Vector injection, poisoning, corruption
│ │ ├── agent/ # Goal hijacking, MCP poisoning, RCE
│ │ ├── mlops/ # Pickle deser, MLflow, Jupyter, W&B
│ │ ├── api/ # Key extraction, excessive agency
│ │ └── network/ # Model extraction, adversarial examples
│ ├── auxiliary/ # 16 auxiliary modules
│ │ ├── scanner/ # API scanning, port scanning
│ │ ├── fingerprint/ # Model detection, filter detection
│ │ ├── discovery/ # Vector DB, registry, infra discovery
│ │ ├── dos/ # Token exhaustion, rate limits
│ │ └── llm/ # Fingerprinting, fuzzing
│ └── post/ # 1 post-exploitation module
└── tests/ # 120 unit + 17 integration tests
Унифицированный клиент LLM — Модули не выполняют прямые HTTP-запросы. LLMClient обрабатывает форматирование запросов для конкретных провайдеров: OpenAI, Anthropic, Ollama, Google (Gemini) и любых совместимых с OpenAI конечных точек. Модули вызывают client.send(prompt) и получают текст в ответ.
Менеджер сессий — После успешной эксплуатации создаётся сессия с хранилищем трофеев. Операторы могут просматривать список сессий, взаимодействовать с ними, переводить их в фоновый режим и закрывать — точно так же, как в Metasploit.
База данных целей — Постоянное хранение на основе SQLite для целей, заданий, находок и трофеев. Позволяет возобновить работу без повторного ввода информации о целях.
Движок отчётности — Генерирует самодостаточные отчёты в форматах HTML, Markdown и JSON. Каждая находка сопоставляется с техниками MITRE ATLAS (49 идентификаторов техник) и категориями OWASP LLM Top 10 2025.
MetaLLM включает 137 тестов: 120 юнит-тестов, покрывающих базовые классы, загрузку модулей и основной фреймворк, а также 17 интеграционных тестов, выполняющих реальные эксплойты против работающего экземпляра Ollama.
pytest tests/test_base.py -v
ollama pull llama3.2:1b
pytest tests/test_integration_ollama.py -v -s -m integration
Интеграционные тесты проверяют работоспособность модулей от начала до конца:
Это не мок-тесты. Каждый тест отправляет реальные промпты реальной модели и проверяет реальные ответы.
MetaLLM — это инструмент для тестирования безопасности. Он предназначен исключительно для авторизованного использования.
Требования к использованию: - Получите явное письменное разрешение перед тестированием любой системы, которая вам не принадлежит - Проводите тестирование только в авторизованных средах - Следуйте практике скоординированного раскрытия уязвимостей для любых находок - Соблюдайте все применимые законы и нормативные акты - Используйте результаты для улучшения защиты, а не для причинения вреда
Не используйте MetaLLM для: - Несанкционированного доступа к любым системам - Атак на производственные системы без разрешения - Кражи или эксфильтрации данных - Любой деятельности, нарушающей применимое законодательство
Авторы не несут ответственности за неправомерное использование. Пользователи несут полную ответственность за соблюдение всех применимых законов и нормативных актов.
Приветствуются любые вклады. Чтобы добавить модуль:
modules/exploits/base.pyВсе модули должны определять: name, description, author, options и реализовывать метод run(). Модули эксплойтов также должны реализовывать метод check() для неразрушающей проверки уязвимостей.
Лицензия MIT. Подробности в файле LICENSE.
Автор: Scott Thornton Контакт: scott@perfecxion.ai