gns_ua: (Default)
[personal profile] gns_ua
Only the root user can perform a chroot. This is intended to prevent users from putting a setuid program inside a specially crafted chroot jail (for example, with a fake /etc/passwd and /etc/shadow file) that would fool it into a privilege escalation.

И каким же это образом юзер может создать setuid root program в своём уютненьком чрутике? Даже если не монтировать /home и /tmp с nosuid ?

2013-11-11 17:11 (UTC)
- Posted by [identity profile] olkash.livejournal.com
обожи
це хдє?

2013-11-11 17:15 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
Это педивикия так объясняет, почему Only a privileged process (Linux: one with the CAP_SYS_CHROOT capability) may call chroot(). Хотя this call changes an ingredient in the pathname resolution process and does nothing else.

Объяснение меня не удовлетворило.
Edited 2013-11-11 17:15 (UTC)

2013-11-11 17:27 (UTC)
- Posted by [identity profile] prividen.livejournal.com
а подмонтировать чо подготовленное через fuse?

2013-11-11 17:31 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
Если через fuse от юзера можно смонтировать нечто, без nosuid и без принудительного uid, то, очевидно, не надо ничего крафтить и фейкать - можно просто положить суидный /bin/bash!

Они КМК описывают другое - что вот у меня чрут, в котором есть су или судо. И я их могу наебать подложив /etc/passwd или /etc/sudoers. Но откуда в моём чруте возьмётся су или судо?
Edited 2013-11-11 17:32 (UTC)

2013-11-11 17:37 (UTC)
- Posted by [identity profile] prividen.livejournal.com
Может, хардлинками, если раздел один?
Хм, и проверить то негде...

2013-11-11 17:39 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
Нед.


[altlinux@eeelive a]$ ls -l /bin/testsuid
-rwsr-sr-x 1 root root 0 Ноя 11 18:58 /bin/testsuid

[altlinux@eeelive a]$ ln /bin/testsuid .
ln: не удалось создать жёсткую ссылку «./testsuid» => «/bin/testsuid»: Операция не позволена

[altlinux@eeelive a]$ cp /bin/testsuid .

[altlinux@eeelive a]$ ls -l testsuid
-rwxr-xr-x 1 altlinux altlinux 0 Ноя 11 19:42 testsuid
Edited 2013-11-11 17:39 (UTC)

2013-11-11 17:32 (UTC)
- Posted by [identity profile] lamed.livejournal.com
Например, скопировать себе /bin/su при помощи уязвимости в какой-нибудь чрутовой программе.

2013-11-11 17:37 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
Т.е., в чруте под непривилегированным пользователем работает программа настолько уязвимая, что она ИЗВНЕ чрута сумела стянуть /bin/su, сохранив при этом его владельца и setuid bit ?

Это означает, что программа сама суидная. Откуда она там взялась?
Edited 2013-11-11 17:38 (UTC)

2013-11-11 17:40 (UTC)
- Posted by [identity profile] lamed.livejournal.com
Блин, второй раз опечатываюсь.

Нет. В системе есть уязвимая чрутовая суидная программа, которую можно заставить скопировать любой файл со всеми атрибутами куда угодно. Злоумышленник копирует /bin/su к себе в хоум, затем добавляет фейковые /etc/passwd и /etc/shadow, делает chroot и в получившемся окружении делает su.
Edited 2013-11-11 17:41 (UTC)

2013-11-11 17:45 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
> Блин, второй раз опечатываюсь.

Да, на второй раз я понял :)

> которую можно заставить скопировать любой файл со всеми атрибутами

Это какое-то подозрительно _узкое_ условие. "Скопировать" - а может она и произвольное содержимое в /bin/su может записать, сохранив его аттрибуты.

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

Ну и, плюс, можно всё-таки включить nosuid на /tmp и /home :)
Edited 2013-11-11 17:48 (UTC)

2013-11-11 17:48 (UTC)
- Posted by [identity profile] lamed.livejournal.com
Бывают, например, уязвимости, когда прога не проверяет, что читаемый ей файл - симлинк.

2013-11-11 21:25 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
в моей системе восемь суидных бинарей. ни один из них похоже не умеет "копировать файлы".

далее, закрафтить судоерс НЕ ПРИНАДЛЕЖАЩИЙ руту бессмысленно. tcb аналогично, должен принадлежать тому юзеру чьи пароли.

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

аналогично с su и tcb.

ну, -o nosuid от копирования су/судо защитит, хорошо.

я бы вот что сделал - -o chroot/,позволяющий или запрещающий в каталоги вложенные под этой фс делать чрут. дефолтно, естественно,запрещено. А админ может включить если понадобится.

Profile

gns_ua: (Default)
gns_ua

April 2017

M T W T F S S
     12
3456789
10111213141516
17181920212223
24252627282930

Expand Cut Tags

No cut tags

Style Credit