LINUX.ORG.RU
ФорумTalks

[секурность][а можно ли?]Подмена sudo


0

0

Интересует вот какой вопрос.
Допустим, на атакуемой машине есть программа, которая содержит уязвимость(допустим, тот же flash), которая позволяет выполнять произвольный код. Сея программа запускается с правами пользователя, который может повышать свои привилегии с помощью sudo\gksu\kdesu. Само по себе это не редкость - большинство сидит от юзеров и ковыряется в системе, получая рутовские права указанными sudo\gksu\kdesu. Подобные баги - тоже.
Собственно хитрость - через дырку в программе загружается експлойт, который скачивает\распаковывает fake_sudo, и пихает его куда-нибудь, права позволяют писать и исполнять(и подальше от глаз юзера). Да, есть noexec, но все монтировать в noexec... Ладно. допустим записалось. Затем експлойт пихает алиас в .bashrc вида alias sudo = /path/to/fake_sudo. Все - пользователь хочет сделать что-то от рута - пишет например, sudo apt-get update. А вместо настоящего sudo запускает fake_sudo, которое так же спрашивает пароль, и ничего не подозревающий пользователь его вводит. Все. Дальше можно делать все что угодно - запустить то, что хотел пользователь(настоящим sudo, скормив ему только что полученный пароль, чтоб не догадался, что случилась оказия), отослать пароль куда-нибудь, сделать rm -Rf /.
C gksu и kdesu ситуация аналогичная - правда, все решается не правкой алиаса, а правкой пользовательских менюшек. Вместо gksu synaptic выполняется fake_gksu. Делается дальше все так же, как и в fake_sudo.
Собственно вопрос - неужели так просто заполучить права рута? Зачем тогда все эти локальные повышения привилегий? Есть ли какая защита от такого несчастья?

1. боян же! сто лет назад еще использовали ~/bin для фейкового su/sudo.
2. локальные повышения удобны тем что можешь получить рута сразу. а с вышеописанной схемой возможно придется ждать хз сколько пока пользователь сподобится пароль ввести.

isden ★★★★★
()

Ты сейчас описал очень древний боян с подменой su на скрипт, крадущий пароль рута. Именно поэтому все умные люди всегда вместо 'su' набирают '/bin/su'. :)

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

Да знаю что баян. Гуглил на эту тему - ничего не нагуглилось. Думал от подобных приколов уже отгородили. Например, баш проверяет, чтоб sudo были именно из /usr/bin/sudo. Опять же, часто тот же синаптик из менюшки пускается. Как часто вы осматриваете содержимое менюшки?
А так да, получается что кроме паранои ничего и не остается.

Nightwing
() автор топика
Ответ на: комментарий от isden

>локальные повышения удобны тем что можешь получить рута сразу.
Если уязвимость не пропатчена. Патчи выходят гораздо быстрее, чем имелки(как правило). Единственно - повысить локальным повышением можно от любого пользователя, а не только от тех, кто упомянут в sudoers, хоть от того smbguest, если уязвимость в самбе будет какая.
Да, и еще вопрос. Sudo после ввода пароля при следующих вызовах его не спрашивает 5 минут. Причем даже если в терминале делать что-то sudo'й, а потом терминал закрыть и запустить снова sudo пароль спрашивать не будет(в убунте, по крайней мере, так). Можно ли как-то его перехватить?

Nightwing
() автор топика

>Зачем тогда все эти локальные повышения привилегий?

Затем, что на серверах только идиот будет держать Gnome + FF + Adobe Flash Player :D

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

>Опять же, часто тот же синаптик из менюшки пускается.
Из менюшки он пускается через gksudo.
А в X'ах можно перехватить ввод в чужое окно?
(Таким образом получить пароль)
Что насчет скормить потом перехваченый пароль sudo, возможно?

ls-h ★★★★★
()
Ответ на: комментарий от gh0stwizard

>Затем, что на серверах только идиот будет держать Gnome + FF + Adobe Flash Player :D
Уязвимости бывают не только только во флешах. Иногда и в серверах случаются.
>Из менюшки он пускается через gksudo.

Так про что и спич. в менюшке стоит "gksudo synaptic", лезем в
~/.config/menus/settings.menu и меняем на "/path/to/fake_gksudo". Все.
>А в X'ах можно перехватить ввод в чужое окно?

>(Таким образом получить пароль)

>Что насчет скормить потом перехваченый пароль sudo, возможно?

Маловероятно. Gksu ругается на такие вещи. http://sites.google.com/site/lankill20/help-

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

>Да, и еще вопрос. Sudo после ввода пароля при следующих вызовах его не спрашивает 5 минут. Причем даже если в терминале делать что-то sudo'й, а потом терминал закрыть и запустить снова sudo пароль спрашивать не будет(в убунте, по крайней мере, так). Можно ли как-то его перехватить?

man sudo на предмет '-k'.
man sudoers на предмет timestamp_timeout

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

>man sudo на предмет '-k'.
>man sudoers на предмет timestamp_timeout

Да в курсе про это. Можно вообще отрубить, я про теоретическую возможность.
>Что насчет скормить потом перехваченый пароль sudo, возможно?

The -S (stdin) option causes sudo to read the password from the standard input instead of the terminal device.

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