CentOS + интересная задача + /tmp (noexec)

123 4
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
3442

День добрый,

Интересная штука.


# mount|grep tmp
/dev/md1 on /tmp type ext3 (rw,noexec,nosuid)
tmpfs on /dev/shm type tmpfs (rw,noexec,nosuid)
/tmp on /var/tmp type none (rw,noexec,nosuid,bind)

Как видим, noexec есть.

Если сделать:


cd /tmp ; ./a.out

То получим отлуп.....

Но если же сделать нечто в роде


cd /tmp ; perl a.pl

То все будет работать и в общем-то класть получается на noexec ....

Суть в принципе понимаю, хотелось бы понять, кто как справляется ?

С Уважением,

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
AU
На сайте с 03.09.2009
Offline
88
#1

Использовать SELinux и запретить файлам из /bin /usr/bin /sbin и прочим доступ к директории с noexec

Unix в вопросах и ответах https://unixhow.com (https://unixhow.com)
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#2

А еще варианты :D ?

V
На сайте с 25.07.2006
Offline
128
#3

Гм... Если злоумышленник имеет возможность запустить perl, то какая хрен разница, может ли он читать из tmp или откуда-то еще?

В этом случае он и без /tmp может сделать что угодно. В том числе и получить какой-то исполняемый код извне.

Приватный linux-администратор
AU
На сайте с 03.09.2009
Offline
88
#4

А какая версия ядра? Может какой то баг?

---------- Добавлено 21.09.2013 в 01:39 ----------

vapetrov:
Гм... Если злоумышленник имеет возможность запустить perl, то какая хрен разница, может ли он читать из tmp или откуда-то еще?
В этом случае он и без /tmp может сделать что угодно. В том числе и получить какой-то исполняемый код извне.

Не согласен. Если стоит noexec, файл не должен исполняться. Может быть, в описанном случае, perl забирает файл в кеш и там исполняет?

Оптимизайка
На сайте с 11.03.2012
Offline
396
#5

chmod -r :-P

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
Himiko
На сайте с 28.08.2008
Offline
560
#6
Если стоит noexec, файл не должен исполняться.

На perl noexec не стоит. А файл ему нужно только прочитать, а на чтение файла запрета нет.

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
AU
На сайте с 03.09.2009
Offline
88
#7
Himiko:
На perl noexec не стоит. А файл ему нужно только прочитать, а на чтение файла запрета нет.

Пожалуй, вы правы. Соглашусь. Спасибо за минус к репутации :)

Кстати, в таком случае должен сработать и такой фокус: /lib/ld-linux.so _исполняемый_файл_. Не проверял, но по всей видимости он тоже выполнится.

Оптимизайка
На сайте с 11.03.2012
Offline
396
#8
adm.unix:
Кстати, в таком случае должен сработать и такой фокус: /lib/ld-linux.so _исполняемый_файл_

Раньше работало, но уже давно в glibc по крайней мере пофиксили.

ТС, еще варианты на выбор. grsecurity например.

AU
На сайте с 03.09.2009
Offline
88
#9
Оптимизайка:
Раньше работало, но уже давно в glibc по крайней мере пофиксили.

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

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#10
vapetrov:
Гм... Если злоумышленник имеет возможность запустить perl, то какая хрен разница, может ли он читать из tmp или откуда-то еще?
В этом случае он и без /tmp может сделать что угодно. В том числе и получить какой-то исполняемый код извне.

В принципе логично.... Выходит что noexec влияет только на +x в разделе куда он установлен... :(

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий