V'ger

V'ger — это интерактивное консольное приложение для пост-эксплуатации аутентифицированных экземпляров Jupyter с фокусом на безопасность AI/ML.
Истории пользователей
- Как Red Teamer, вы нашли учётные данные Jupyter, но не знаете, что с ними делать. V'ger организован в формате, интуитивно понятном для большинства специалистов по наступательной безопасности, чтобы помочь им понять функциональность целевого сервера Jupyter.
- Как Red Teamer, вы знаете, что некоторые действия в браузере будут видны легитимным пользователям Jupyter. Например, изменение вкладок отобразится в их рабочем пространстве, а команды, введённые в ячейках, будут записаны в историю. V'ger снижает вероятность обнаружения.
- Как AI Red Teamer, вы понимаете академические алгоритмические атаки, но вам нужен более практичный вектор исполнения. Например, вам может потребоваться изменить большой, фундаментальный набор данных интернет-масштаба в рамках операции по отравлению модели. Модификация такого набора данных в источнике может быть невозможна или создавать нежелательные аудируемые артефакты. С V'ger вы можете достичь тех же целей в памяти — значительное улучшение методов.
- Как Blue Teamer, вы хотите понять логирование и видимость в живом развёртывании Jupyter. V'ger может помочь вам генерировать повторяемые артефакты для тестирования инструментария и проведения учений по реагированию на инциденты.
Использование

Первоначальная настройка
pip install vger
vger --help
В настоящее время vger interactive обладает максимальной функциональностью, сохраняя состояние обнаруженных артефактов и повторяющихся заданий. Однако большая часть функциональности также доступна по имени в неинтерактивном режиме с помощью vger <модуль>. Список доступных модулей — vger --help.

Команды
После установки соединения пользователи попадают в иерархическое меню.
Главное меню включает:
- Reset: Настроить другой хост.
- Enumerate: Утилиты для получения информации о хосте.
- Exploit: Утилиты для прямых действий и манипуляции хостом и артефактами.
- Persist: Утилиты для установки механизмов персистентности.
- Export: Сохранить вывод в текстовый файл.
- Quit: Никто не любит тех, кто сдаётся.
Эти меню содержат следующие функции:
- List modules: Определить импортированные модули в целевых блокнотах, чтобы понять, какие библиотеки доступны для инжектированного кода.
- Inject: Выполнить код в контексте выбранного блокнота. Код можно ввести в текстовом редакторе или указав локальный
.py файл. Любой ввод обрабатывается как строка и выполняется во время выполнения блокнота.
- Backdoor: Запустить новый экземпляр JupyterLab, открытый на
0.0.0.0, с allow-root на указанном пользователем port и с указанным пользователем password.
- Check History: Просмотреть команды ipython, недавно выполненные в целевом блокноте.
- Run shell command: Запустить терминал, выполнить команду, вернуть вывод и удалить терминал.
- List dir or get file: Вывести содержимое каталогов относительно директории Jupyter. Если не знаете, начните с
/.
- Upload file: Загрузить файл с локального хоста на целевой. Укажите пути в том же формате, что и List dir (относительно директории Jupyter). Укажите полный путь, включая имя файла и расширение.
- Delete file: Удалить файл. Укажите пути в том же формате, что и List dir (относительно директории Jupyter).
- Find models: Найти модели по распространённым форматам файлов.
- Download models: Скачать обнаруженные модели.
- Snoop: Отслеживать выполнение блокнота и результаты до таймаута.
- Recurring jobs: Запускать/останавливать повторяющиеся фрагменты кода, которые молча выполняются в целевой среде.
Экспериментальное
С помощью pip install vger[ai] вы получите сгенерированные LLM сводки блокнотов в целевой среде. Они предназначены для грубого перевода для людей, не связанных с DS/AI, чтобы быстро определить, какие блокноты стоит исследовать дальше.

Существовал неизбежный компромисс между размером модели и её способностями, и я продолжу с этим экспериментировать, но надеюсь, что это будет полезно для некоторых более традиционных пользователей безопасности. Я был бы рад увидеть, как люди начнут инжектировать подсказки в свои блокноты ("это не те дроиды, которых вы ищете").
Примеры