



Исследователь смог превратить «cat readme.txt» в выполнение произвольного кода в iTerm2
Исследователь показал, как он преобразовал команду "cat readme.txt" для выполнения произвольного кода в эмуляторе iTerm2. Он показал, как iTerm2 работает с легитимной функцией, как он использует псевдотерминал (PTY) и что происходит, когда вывод терминала может имитировать одну из сторон протокола этой функции.
Команда cat readme.txt в операционных системах Linux, macOS и других Unix-подобных используется для вывода содержимого текстового файла readme.txt на экран или в терминал.
iTerm2 — это популярный бесплатный эмулятор терминала с открытым исходным кодом для macOS, работающий на macOS 12.4 или новее. Он считается продвинутой заменой стандартному Terminal.app, предлагая разработчикам и системным администраторам улучшенный интерфейс, высокую производительность, разделение экрана, поиск и широкие возможности кастомизации (темы, прозрачность, горячие клавиши).
Исследователь отметил, что он сотрудничал с OpenAI в этом проекте.
По его словам, iTerm2 имеет функцию интеграции с SSH, которая позволяет лучше понимать удалённые сессии. Для этого он не просто «вслепую вводит команды» в удалённую оболочку, а запускает небольшой вспомогательный скрипт на удалённой стороне, называемый «дирижёром».
Примерная модель выглядит следующим образом:
iTerm2 запускает интеграцию SSH, обычно через it2ssh;
iTerm2 отправляет удалённый скрипт начальной загрузки, «кондуктор», через существующую сессию SSH;
скрипт становится одноранговым узлом протокола для iTerm2;
iTerm2 и удалённый скрипт обмениваются управляющими последовательностями терминала для координации таких действий, как обнаружение оболочки входа в систему, проверка наличия Python, смена каталогов, загрузка файлов и выполнение команд.
Исследователь отмечает, что отдельной сетевой службы нет.
Читать на habr.com