Как легко заразить вирусами Ubuntu 22.04 LTS изначально не имея root прав
С чего бы начать...
реклама
Как же заразить "эталон" линукса в Desktop сегменте под названием Ubuntu 22.04 LTS, при этом изначально не имея root прав? На самом деле легко и просто, не скажу что Ubuntu проще поддаётся заражению, чем другие дистрибутивы Linux, но я не могу назвать этот метод сложным.
Суть метода в подмене ярлыков, тех самых, что предоставлены XDG системой, на основе которой построены практически все дистрибутивы Linux.
Находим в дистрибутиве системное приложение, которое либо изначально запускается требуя root пароль, либо подразумевает работу с правами суперпользователя, найти такое не проблема во многих дистрибутивах, например редакторы разделов диска, а в ряде дистрибутивов даже настройки даты/времени и клавиатуры требуют root пароль...
реклама
Но в случае Ubuntu 22.04 LTS сходу не нашлось приложений, которые бы требовали при запуске пароль, может плохо искал конечно, но не суть, ибо нацелимся мы сейчас на утилиту Disks (gnome-disks).
Что нам нужно? В моём случае два скрипта для наглядности, правда в первом скрипте строка "read pause" не нужна, это просто мусор который никак не мешает:
Первый скрипт будет инициализирующим, на него будет ссылаться ярлык, и он же запускает через "pkexec" второй скрипт, уже "вирусный", что делает зловредные действия и для отвода глаз запускает нужную пользователю программу, ярлык которой будет подменён.
реклама
Вообще запуск подменённой программы можно делать и в первом скрипте после "pkexec", если для её запуска изначально не подразумевается ввод root пароля, так даже было бы правильнее в текущем случае, ведь gnome-disks изначально запускается без запроса пароля, если кто не знал, но опустим этот момент.
Далее делаем подмену системного ярлыка вирусным, просто заранее берём оригинальный ярлык из "/usr/share/applications", копируем в "~/.local/share/applications", прописываем параметр Hidden, и клонируем ярлык под другим именем уже без Hidden параметра, прописывая в него путь к "вирусу":
![]() |
![]() |
Вот тут и начинается XDG магия, система видит файл в папке пользователя "org.gnome.DiskUtility.desktop" и читает его параметры, на самом деле его содержимое не особо важно, главное чтобы был параметр Hidden, который говорит XDG скрыть этот элемент с глаз долой.
А так как каталог пользователя имеет приоритет над системным, то оригинальный ярлык от Ubuntu само собой покорно скрывается, и вот тут система видит ещё один ярлык под названием "DiskUtility2.desktop", именно его пользователь видит вместо скрытого и запускает впоследствии.
реклама
Да, я немного экспериментировал и удалил из "клона" значение X-Ubuntu-Gettext-Domain, а так же сменил иконку на другую, чисто для визуального отличия от оригинала, но это сути не меняет, главный параметр для нас это "Exec", исполняющий вирусный скрипт.
И ещё момент, так как "дряхлый пингвин" порой не всегда сразу обновляет меню "Пуск" при изменениях, ярлык может подменяться не сразу, а например при следующем входе в систему, что только усложняет идентификацию источника "заразы" в будущем.
Так вот, ярлык подменён, пользователю вдруг понадобилось запустить системное приложение какое-нибудь, и тут внезапно появляется запрос root пароля, окей, зная что это вирус каждый скажет - это вирус! Не запускай! Но когда у пользователя стоит проблема, и её нужно решить системными утилитам, далеко не каждый обратит внимание на запрос root пароля при запуске системного приложения, которое и так и сяк может потребовать пароль при выполнении своих задач, а в ряде дистрибутивов пароль изначально спрашивают при запуске:
![]() |
![]() |
![]() |
![]() |
Всё, система заражена, вирусный скрипт теперь может делать что угодно в тайне от пользователя, так как пользователь сам дал root права вирусу не подозревая об этом.
Кто-то скажет, у меня ярлык с другим значком! Как такое не заметить? Только вот настоящий вирус не будет специально менять значки, он просто заранее подготовленный ярлык внедрит отключив системный, и никто ничего не заметит.
Собственно удаляем "заражённые" ярлыки, выходим и заново входим в систему так как "дряхлый пингвин" не смог обновить полноценно Меню сразу, и имеем оригинальный Disks:
![]() |
![]() |
![]() |
![]() |
Как можно было заметить, подмена происходит совершенно без каких либо root прав, так как всё происходит в папке пользователя, а значит это сделать можно незаметно для пользователя...
Окей, как пользователь заразится, если для заражения нужно запустить скрипт, который собственно произведёт подмену? Тут на самом деле вариантов целая масса, например прилетит заражённый пакет из какого-нибудь репозитория:
Или пользователь скачает какую-нибудь заражённую игру/приложение:
Так, стоп, а разве пользователь не увидит запрос root пароля, запустив "пиратскую" Terraria или любую иную игру/приложение? Не увидит, ведь для подмены ярлыков не нужны root права, а там остается только ждать, пока пользователь запустит что-нибудь системное введя root пароль, например центр обновлений, который как всем известно, очень даже спрашивает root пароль при обновлениях.
Ещё софт компилируемый из исходного кода может нагадить вирусами, да и заражение при помощи стороннего софта исключать нельзя, но это уже не совсем простые способы зачастую.
Кто-то возникнет, мол, качайте всё из центра приложений дистрибутива! Только вот проблема, если бы центры приложений были так хороши, как их пытаются выставить, Linux не сидел бы на протяжении более двух десятков лет на уровне плинтуса, наблюдая за тотальным доминированием Microsoft Windows, а потом и Mac OS:
А знаете что самое печальное в этой ситуации с Ubuntu? Обычный пользователь, при всём желании никак не сможет определить подмену, даже если у него будут на это какие-либо подозрения, ведь вечно недоразвитый GNOME даже формат отображения времени не способен изменить без сторонних костылей, например на ISO8601, куда уж там редактировать ярлыки в меню, только запустить в новом окне и добавить в "избранные"...
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила