Терминальный харнесс с открытым исходным кодом для авторизованного red-team тестирования систем на базе языковых моделей с несколькими научно обоснованными сценариями оценки.
MITM-фреймворк для фишинга с обходом двухфакторной аутентификации. Перехватывает не только пароли, но и сессионные куки — …
SET — комплексный фреймворк для атак социальной инженерии. Включает Spear-Phishing, веб-атаки (credential harvesting, tabnabbing), создание вредоносных …
Открытая платформа для симуляции фишинговых атак. Веб-интерфейс для управления кампаниями, шаблонами писем и лендингами. Реальные метрики: …
Современный open source C2-фреймворк от BishopFox. Альтернатива Cobalt Strike и Metasploit для red team операций. Поддерживает …
git clone https://github.com/JailbrokenAI/wallbreaker.git cd wallbreaker python -m venv .venv . .venv/bin/activate python -m pip install -e ".[dev,dashboard]" cp config.example.toml config.toml
██╗ ██╗ █████╗ ██╗ ██╗ ██████╗ ██████╗ ███████╗ █████╗ ██╗ ██╗███████╗██████╗
██║ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗██╔════╝██╔══██╗██║ ██╔╝██╔════╝██╔══██╗
██║ █╗ ██║███████║██║ ██║ ██████╔╝██████╔╝█████╗ ███████║█████╔╝ █████╗ ██████╔╝
██║███╗██║██╔══██║██║ ██║ ██╔══██╗██╔══██╗██╔══╝ ██╔══██║██╔═██╗ ██╔══╝ ██╔══██╗
╚███╔███╔╝██║ ██║███████╗███████╗██████╔╝██║ ██║███████╗██║ ██║██║ ██╗███████╗██║ ██║
╚══╝╚══╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
break the wall · not the rules of engagement ⚔ authorized testing only
Терминал в стиле Claude Code, созданный для красной команды LLM (команда CLI: wallbreaker). Вы общаетесь с ним как с Claude Code; он рассуждает и вызывает инструменты в цикле. Бэкенд полностью настраиваемый, поэтому он работает на OpenRouter, плане кодирования Z.AI GLM, локальном CLI Claude Code, локальном сервере или любом API, совместимом с OpenAI/Anthropic (включая сторонние прокси через bearer-аутентификацию). Он поставляется с мощным набором инструментов для красной команды: движком трансформаций Parseltongue, библиотекой джейлбрейков L1B3RT4S, бенчмарком поведения HarmBench, автоматизированными атаками (PAIR/TAP, Crescendo, best-of-N), автором персон с нуля, имитацией целевых моделей в родном формате на основе утекшего корпуса системных промптов, каналом мультимодальных атак с редактированием изображений, судьёй на базе LLM и проверкой надёжности.
Только для авторизованного тестирования безопасности.
base_url/модель. Захватывает каналы рассуждений/мышления; преобразует сетевые ошибки в чистые сбои (без падений при тайм-ауте).finish() завершает работу инструмента) или не потребуется вмешательство оператора (ask_operator()).validate повторно запускает атаку N раз для получения реального показателя успеха; одноразовый COMPLIED никогда не называется "обходом". Закрепите бэкенд OpenRouter для воспроизводимости.mutate (антиклассификатор LLM).parsel_*, которыми напрямую управляет агент. Любой настроенный [[mcp.servers]] проксируется в реестр инструментов./sysprompt + system_sweep + optimize_universal сходятся к ОДНОМУ универсальному системному промпту; они не могут разделиться на варианты наборов инструментов.author_persona): создаёт полноценный джейлбрейк системного промпта преданной персоны с нуля по кодифицированному методу ENI (черновик → самокритика → валидация → уточнение → дистилляция), автоматически выбирая авторитетный или лимерентный регистр из предметной области цели.sysprompt_* ищут в утекшем корпусе системных промптов продуктов (Claude/GPT/Gemini/Grok…) и передают автору персоны собственный раздел/заголовок целевой модели, чтобы полезная нагрузка говорила на родном языке жертвы.query_image_edit отправляет изображение + инструкцию на цель редактирования изображений и оценивает результат с помощью визуального судьи; image_chain запускает цепочку джейлбрейков, разлагая отвергнутое изображение на лестницу безобидных шагов редактирования. Плюс трансформации фрейминга Tier-3 T2I.protocol = "claude-code", без ключей) в качестве мозга красной команды. Сторонние прокси Anthropic работают через auth_style = "bearer".cipherchat (CipherChat/SelfCipher, ICLR 2024) обучает цель шифру в канале, затем отправляет зашифрованный текст; skeleton_key (Russinovich 2024) переформулирует защитный механизм как поправку к политике с меткой "Warning:"; persuasion_attack (PAP, Zeng 2024) переписывает запрос через 16 стратегий убеждения одновременно и ранжирует обходы; drattack (Li 2024) разлагает цель на безобидные фрагменты, затем собирает их обратно; ica (Wei 2023) упаковывает N вредоносных демонстраций Q/A в один контекстный ход. В предварительных измерениях показывает 60% ASR на deepseek/deepseek-chat — см. CHANGELOG.md.git clone https://github.com/JailbrokenAI/wallbreaker
cd wallbreaker
python -m venv .venv
. .venv/bin/activate
pip install -e ".[dev]" # add [barcodes] for the QR/barcode tool
cp config.example.toml config.toml # add your keys (config.toml is gitignored)
wallbreaker check # validate it: profiles, keys, target, judge
Профили задают мозг атакующего; [target] — это модель под атакой; [judge] оценивает ответы. Ключи могут быть встроены или взяты из переменных окружения. Конечные точки OpenRouter поддерживают закрепление provider и переопределение timeout.
default_profile = "glm"
[profiles.glm]
protocol = "openai"
base_url = "https://api.z.ai/api/paas/v4"
api_key = "..."
model = "glm-4.6"
[target]
protocol = "openai"
base_url = "https://openrouter.ai/api/v1"
api_key = "sk-or-..."
model = "deepseek/deepseek-v4-pro"
# provider = "WandB" # pin the backend for reproducible results
# timeout = 60 # seconds (default 120)
[judge]
protocol = "openai"
base_url = "https://openrouter.ai/api/v1"
api_key = "sk-or-..."
model = "openai/gpt-4o-mini"
Варианты мозга атакующего:
# Local Claude Code CLI as the attacker brain, keyless (the CLI self-auths).
[profiles.claude-code]
protocol = "claude-code"
model = "sonnet"
# system_prompt_file = "operator.md" # optional: leads the harness tool doctrine
# Third-party Anthropic-compatible proxy that wants an OpenAI-style bearer token.
[profiles.proxy]
protocol = "anthropic"
base_url = "https://your-proxy.example" # host root; provider appends /v1/messages
api_key = "..."
model = "claude-sonnet-4"
auth_style = "bearer" # Authorization: Bearer <key> (default: x-api-key)
универсальный декодер) интегрирован напрямую в реестр агентов как нативные инструменты parsel_*
(parsel_list/search/inspect/transform/chain/decode/guide/craft). MCP-сервер или конфигурационный блок не требуются; инструменты появляются автоматически после подключения репозитория и наличия Node.js в PATH. Однократная настройка:
wallbreaker parsel update # git-clone elder-plinius/P4RS3LT0NGV3 into library/ (needs Node.js)
wallbreaker parsel list # sanity-check: prints all 222 transforms by category
Если Node отсутствует, чисто Python-инструмент parseltongue (50+ трансформаций) остаётся в качестве офлайн-запасного варианта. Переопределите путь к подключённому репозиторию с помощью PARSEL_REPO=/абс/путь/к/P4RS3LT0NGV3.
Харнесс также является MCP-клиентом: каждый объявленный [[mcp.servers]] запускается через stdio при старте, а его инструменты проксируются в реестр. Тот же движок P4RS3LT0NGV3 доступен как MCP-сервер, если вы предпочитаете запускать его вне процесса (он повторно регистрирует те же имена parsel_* с идентичным поведением):
[[mcp.servers]]
name = "parsel"
command = "python"
args = ["-m", "p4rs3lt0ngv3_mcp"]
enabled = false # native tools already cover this
# tool_prefix = "p_" # optional namespace for the proxied tools
# env = { PARSEL_REPO = "/abs/path/to/P4RS3LT0NGV3" } # override the vendored repo location
Установка npm install или сборка не требуются; сервер управляет мостом Node в фоновом режиме.
В TUI команды /parsel guide|list|search <запрос>|inspect <ключ> позволяют просматривать каталог. Сервер является самостоятельным MCP-сервером stdio, поэтому любой MCP-клиент (Claude Code, Cursor) может его использовать.
wallbreaker # TUI on default_profile
wallbreaker --profile openrouter
wallbreaker --auto "objective..." # one-shot autonomous run
wallbreaker --resume # reopen the autosaved session (survives a crash/Ctrl+C)
TUI автоматически сохраняет весь сеанс в sessions/autosave.json после каждого хода;
--resume открывает его заново (или укажите конкретный файл сеанса: wallbreaker --resume mysession.json).
/model меняет атакующую модель; /target — целевую.
/target anthropic/claude-3.7-sonnet attack any model on the target endpoint
/target glm attack via a profile
/provider WandB pin the OpenRouter backend (reproducibility)
Цель «один промпт для любой задачи» подразумевает единый фиксированный артефакт, а не набор инструментов.
/sysprompt set <one system prompt> hold ONE fixed system prompt
/sysprompt test sweep it across the HarmBench cyber battery
/validate <task> re-fire 8x for the REAL success rate
Просмотрите, какие задачи не прошли → уточните один промпт → снова /sysprompt test. Единичный COMPLIED — это везение; validate покажет правду. Для варианта с пользовательским ходом используйте
/template set … {request} + /template test.
/tools выводит их в реальном времени)| Инструмент | Назначение |
|---|---|
run_shell, read_file, write_file, edit_file |
создание/запуск/сохранение полезных нагрузок |
parseltongue, parseltongue_catalog, mutate |
обфускация / переписывание для обхода классификаторов |
parsel_* (нативные) |
полный движок P4RS3LT0NGV3: parsel_guide/list/search/inspect/transform/chain/decode: 222 трансформации + универсальный декодер. parsel_craft создаёт готовую к использованию полезную нагрузку (кодирует запрос через цепочку + оборачивает его в decode-and-comply / split-into-vars) |
l1b3rt4s_*, eni_* |
библиотеки джейлбрейков: L1B3RT4S + коллекция персон ENI |
author_persona |
создание полноценной преданной персоны системного промпта с нуля (метод ENI: черновик→критика→валидация→уточнение→дистилляция), автоматический выбор авторитетного/лимерического регистра в зависимости от домена цели |
sysprompt_list, sysprompt_search, sysprompt_get, sysprompt_native |
просмотр/поиск по корпусу утекших системных промптов продуктов (Claude/GPT/Gemini/Grok…); sysprompt_native передаёт форматы секций/заголовков целевой модели автору персоны для имитации нативного стиля |
harmbench, preset |
беспристрастный бенчмарк поведения, курированные шаблоны |
query_target |
отправка запроса модели под тестом (с transforms=[...] для кодирования и отправки) |
query_image_edit |
отправка входного изображения + инструкции на ИЗОБРАЖЕНИЕ-цель (modality='image') и оценка отредактированной картинки с помощью vision-судьи |
image_chain |
Цепочка джейлбрейка: разложение отклонённого изображения на последовательность безобидных шагов редактирования и их поочерёдное выполнение |
multi_fire |
прогон одной полезной нагрузки через множество кодировок (параллельно) |
crescendo |
многоходовая эскалация |
pair_attack |
PAIR/TAP: уточнение одной цели на основе отказов целевой модели |
pair_sweep |
запуск цикла PAIR по всей батарее параллельно (максимальный ASR, пакетная обработка) |
best_of_n |
пересемплирование N раз, сохранение обхода |
many_shot |
многоходовый джейлбрейк: заполнение контекста ложными согласованными ходами, затем отправка |
prefill |
прайминг ответа: подстановка начала ответа ассистента, чтобы он продолжал, а не отказывался |
narrate |
рамка вымысла + прайминг в рамках истории (ролевая игра в стиле главы романа); лидирует в рейтинге |
diff_fire |
A/B-тестирование двух полезных нагрузок на одной цели для определения влияния конкретного изменения на ASR |
recommend_transforms |
анализ ~16 кодировок, ранжирование по обходу, синтез цепочки для тестирования |
seed_sweep |
внедрение одного запроса через множество семян ENI+L1B3RT4S, ранжирование по обходу |
fire_file |
отправка файла/семени В ТОЧНОСТИ (дословно, полной длины) в качестве системного промпта цели |
adapt_seed |
атакующая LLM корректирует персону под конкретный отказ (не используйте для дистилляции) |
| --- |
| campaign | автоматически повышать уровень атаки в батарее HarmBench по лестнице техник, матрица покрытия |
| leaderboard | ранжировать несколько профилей по показателю ASR на одной батарее (бенчмарк устойчивости) |
| leak_scan | сканировать ответ на наличие секретов/PII/эха системного промпта (улики, а не вердикт) |
| scan | матрица покрытия в стиле Garak (техники + зонды HarmBench) |
| indirect_inject | инъекция в RAG/агенты через носители: документы, электронные письма, вывод инструментов |
| system_sweep | проверка ОДНОГО системного промпта на батарее задач (многократная выборка) |
| optimize_universal | градиентный подъём одного шаблона (пользовательский или slot='system') |
| judge_response, validate | оценка ответа LLM-судьёй / измерение реального показателя успешности |
| judge_selftest | калибровка оценщика на безобидных примерах перед доверием к ASR |
| http_request, barcode | прямая доставка / кодирование QR-кодов и штрихкодов |
| finish, ask_operator | завершение работы инструмента / пауза для оператора |
/profile /target /provider /model /judge [model] endpoints & grader
/auto /autoexit /rounds autonomous loop
/objective /template /sysprompt /validate /replay campaign + reliability
/transforms /encode /diff /campaign /leaderboard arsenal, auto-sweep & benchmark
/find /tools /preset /lib /parsel /eni /harmbench search & libraries
/log /asr /stats /findings /repro /export /report logging, scoreboard, repro, CI export
Ctrl+S report · Ctrl+Y copy payload · Ctrl+T stats · Ctrl+R repro · Ctrl+L clear
Каждый запрос, ответ и вердикт записываются в sessions/run-<ts>.jsonl. /findings выводит список обходов; /report [html] создаёт отчёт в формате markdown или стилизованного HTML; /repro [n] копирует пакет для воспроизведения; /export экспортирует структурированные данные в JSON; /session save|load сохраняет или загружает всю сессию (историю, цель, шаблон, системный промпт).
Формируйте отчёты и контролируйте сборки прямо из лога запуска, без TUI. Аргумент лога необязателен: если его опустить (или передать директорию), будет использован самый новый sessions/run-*.jsonl:
wallbreaker report # markdown for the latest run, to stdout
wallbreaker report --html --out report.html
wallbreaker export --out findings.json # structured findings JSON
wallbreaker export --fail-on-finding # exit 2 if any bypass -> fails CI
Готовый к переименованию шаблон GitHub Actions для контроля находится в .github/workflows/redteam-gate.example.yml.
pytest -q
Веб-дашборд поставляется вместе с TUI (бэкенд на FastAPI + SPA на React/Vite). WebUI V2 использует тот же каталог возможностей и сервисы приложений, что и TUI, и добавляет очередь выполнения на стороне сервера, возобновляемые потоки событий, постоянное многопоточное взаимодействие, последовательность рабочих процессов, управление провайдерами/профилями, а также возможность проверки текущих или исторических улик. Agent предназначен для автономного цикла Атака → Цель → Судья; Live обеспечивает целостную и детализированную наблюдаемость.

Другие виды: обзор и арсенал

pip install -e ".[dashboard]" # FastAPI + uvicorn
cd wallbreaker/dashboard/web && npm install && npm run build && cd -
wallbreaker dashboard # binds to 127.0.0.1:8787
Откройте WebUI V2 по адресу http://127.0.0.1:8787/v2. Предыдущая версия дашборда доступна по адресу http://127.0.0.1:8787/legacy во время перехода на паритет. Бэкенд использует тот же движок, что и TUI. Для горячей перезагрузки фронтенда выполните npm run dev в wallbreaker/dashboard/web; он проксирует /api к бэкенду дашборда.
Инструкции по настройке для Windows, конфигурации провайдеров, хранению истории, рабочему процессу разработки, мерам безопасности при сетевой экспозиции и устранению неполадок см. в руководстве по установке. Визуальный обзор единой поверхности оператора см. в демонстрации WebUI V2.
Wallbreaker предназначен исключительно для авторизованного красно-командного тестирования LLM и оценки безопасности: ваших собственных моделей или целей, на тестирование которых у вас есть явное разрешение. Логи запусков и сгенерированные артефакты могут содержать вредоносный контент; они записываются в игнорируемые git-директории wb_runs/, wb_artifacts/, findings/. Полную политику и инструкции по сообщению об уязвимостях в самом инструменте см. в SECURITY.md.
Настройка, архитектура и правила проекта описаны в CONTRIBUTING.md. Перед отправкой PR выполните pytest -q; тестовый набор является контрактом.
AGPL-3.0-or-later. Wallbreaker является copyleft: любая изменённая версия (включая ту, которую вы запускаете как сетевой/хостинговый сервис) должна предоставлять свой полный соответствующий исходный код под той же лицензией. Сторонние корпуса джейлбрейков (L1B3RT4S, P4RS3LT0NGV3, ENI) загружаются во время выполнения, а не распространяются; см. NOTICE.