В утилите wall, поставляемой в пакете util-linux и предназначенной для отправки сообщений в терминалы, выявлена уязвимость (CVE-2024-28085), позволяющая осуществить атаку на терминалы других пользователей через манипуляцию с escape-последовательностями. Проблема вызвана тем, что утилита wall блокирует использование escape-последовательности во входном потоке, но не выполняет эту операцию для аргументов в командной строке,
что позволяет атакующему выполнить escape-последовательности в терминале других пользователей.
Например, выполнив ‘wall $(printf «\033[33mHI»)’ можно вывести надпись «HI» жёлтым цветом.
При помощи escape-последовательностей, которые позволяют перемещать указатель, очищать и заменять содержимое на экране, можно симулировать показ приглашения о вводе пароля от утилиты sudo в терминале другого пользователя. Если пользователь не заметит подвоха и введёт свой пароль,
то пароль засветится в истории ввода как несуществующая команда (по сути пользователь вместо команды введёт свой пароль в командной строке).
«\033[3A» // перемещаем курсор вверх на 3 строк
«\033[K» // удаляем предыдущий вывод
«[sudo] password for a_user:» // выводим фиктивный запрос sudo
«\033[?25l» // выставляем фоновый цвет для скрытия ввода
«\033[38;2;48;10;36m»
Во время вывода предупреждения о том, что введённая команда не найдена, во многих дистрибутивах запускается обработчик /usr/lib/command-not-found, который пытается определить пакет, в котором присутствует отсутствующая команда, и выдать подсказку о возможности его установки.
Проблема в том, что при запуске обработчика command-not-found несуществующая команда передаётся в него в качестве параметра командной строки, который виден при просмотре процессов в системе (например, при попытке запуска неустановленной утилиты «xsnow» в списке процессов будет виден «/usr/lib/command-not-found — xsnow»).
Соответственно, атакующий может организовать мониторинг запускаемых процессов (например, анализируя появление «/proc/$pid/cmdline» для прогнозируемого номера PID) и определить пароль, введённый жертвой в командной строке.
Для того чтобы пользователь ввёл пароль в ответ на фиктивное приглашение sudo предложен трюк, суть которого в отслеживании в списке процессов реального запуска утилиты sudo, ожидания её завершения и осуществления атаки через «wall» сразу после этого. Через манипуляции c escape-последовательностями атакующий может заменить сообщение после реального выполнения sudo на фиктивное приглашение повторного ввода пароля. Жертва может подумать, что ошиблась при вводе и ввести пароль второй раз, засветив пароль в аргументах обработчика «command-not-found».
Для успешной атаки требуется установка режима «mesg» в значение «y», которое по умолчанию выставлено в Ubuntu, Debian и CentOS/RHEL. Возможность проведения атаки продемонстрирована в Ubuntu 22.04 в конфигурации по умолчанию при использовании gnome-terminal.
В Debian атака затруднена, так как в дистрибутиве по умолчанию не включён обработчик «command-not-found», а в CentOS/RHEL атака не сработает, так как утилита wall установлена без флага setgid и не имеет доступа к чужим терминалам. При использовании windows-terminal атака может быть модифицирована для изменения содержимого буфера обмена.
Уязвимость проявляется в пакете util-linux с 2013 года, после того как в выпуск 2.24 добавили возможность указания сообщения в командной строке wall, но забыли применить чистку escape-последовательностей.
Исправление уязвимости включено во вчерашний выпуск util-linux 2.40. Примечательно, что при попытке исправления уязвимости в выпуске util-linux 2.39 была выявлена ещё одна похожая уязвимость, позволяющая совершить подстановку управляющих символов через манипуляцию с локалями.
HELPSOC мнение: Я знал, я так и знал, нет конечно, не знал, но догадывался ubuntu не так просто рекламировали и продвигали среди linux.
Десятилетиями, десятки форков ОС для тех и этих, для детей и хакеров, на любой вкус, но с невнятно поставленным сетевым окружением. Как я ненавидел эту тварь!
Похожую невнятную дрянь , я видел и ненавидел nginx,
очаровательное начало с прописью вирт серверов, мне с начало понравилось, но далее, как чертенок, код усложнился, углубился и запутался, То есть был http и появился nginx, как бы тоже логичный и дружественный, почему бы не взять на заметку админам?
Ха, выходит обновление и все,никакой легкости в прочтении и грабли. Но зачем?
Вот случай с «пистон ubuntu» и показывает, зачем:
контроль за админом,получить доступ и к пользователям их паролям и данным соответственно.
А с приходом несуразности и сложности кода, легче внедрить «пистон» работающий на знающих хакеров и разведку.
тэги: HELPSOC мнение: it: Ubuntu terminal windows shell взлом терминала удаленно,
«пистон ubuntu» Ну что Ubuntu веды доигрались!
Вас имели много лет через терминал.?,tags: HELPSOC мнение: it: Ubuntu terminal windows shell взлом терминала удаленно,
«пистон ubuntu» Ну что Ubuntu веды доигрались!
Вас имели много лет через терминал.?,