it: «пистон ubuntu» Ну что Ubuntu веды доигрались!

В утилите 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 веды доигрались!
Вас имели много лет через терминал.?,

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *