LINUX.ORG.RU

Ldd


1

0

Всего сообщений: 3

Релиз LeoCAD 21.06

Релиз LeoCAD 21.06
Группа Open Source

LeoCAD — 3D-САПР для конструирования виртуальных моделей LEGO с использованием блоков из LDraw’s Parts Library. Программа написана на C++ с Qt5 и Qt4.

( читать дальше... )

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

 , , , ,

DjSpike
()

lddsafe — безопасный аналог ldd

Группа Безопасность

Узнав о уязвимости ldd, опубликованной несколько дней назад тут (новость на ЛОРе, в толксах), линуксоид rg3 написал небольшой скрипт lddsafe, выводящий ту же информацию, что и ldd. Скрипт использует objdump и безопасен, так как не запускает на исполнение проверяемую программу.

Два важных предостережения:

  • для работы необходим bash версии 4.0 или поздней (для быстрого выполнения в скрипте используются ассоциативные массивы, доступные только в bash 4);
  • скрипт проверен только в Slackware Linux (однако багрепорты и патчи принимаются, если он не работает должным образом в других дистрибутивах).

В будущем планируется переписать скрипт на Perl, чтобы он не зависел от версии bash 4.0.

Пример выполнения скрипта:

$ lddsafe /usr/bin/xcalc
        libXaw.so.7 => /usr/lib/libXaw.so.7
        libXmu.so.6 => /usr/lib/libXmu.so.6
        libXt.so.6 => /usr/lib/libXt.so.6
        libSM.so.6 => /usr/lib/libSM.so.6
        libICE.so.6 => /usr/lib/libICE.so.6
        libc.so.6 => /lib/libc.so.6
        ld-linux.so.2 => /lib/ld-linux.so.2
        libuuid.so.1 => /lib/libuuid.so.1
        libX11.so.6 => /usr/lib/libX11.so.6
        libxcb.so.1 => /usr/lib/libxcb.so.1
        libXau.so.6 => /usr/lib/libXau.so.6
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6
        libdl.so.2 => /lib/libdl.so.2
        libXext.so.6 => /usr/lib/libXext.so.6
        libXpm.so.4 => /usr/lib/libXpm.so.4
        libm.so.6 => /lib/libm.so.6

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

 , lddsafe,

aydar
()

Интересная уязвимость в ldd

Группа Безопасность

Вчера Peteris Krumins в своем блоге продемонстрировал наличие в утилите ldd уязвимости, позволяющей выполнить произвольный код при просмотре списка подгружаемых библиотек для специально подготовленной программы.

Принцип работы ldd состоит в следующем: она устанавливает переменную окружения LD_TRACE_LOADED_OBJECTS, а затем запускает программу на исполнение. Входящий в libc загрузчик динамических библиотек (для GNU glibc это ld-linux.so) проверяет наличие этой переменной. Если она установлена, то вместо нормального запуска программы он выводит список используемых ею динамически подгружаемых библиотек и завершает работу.

Однако, в том случае, если программа собрана с использованием специальным образом модифицированной версии libc, появляется возможность обойти эту проверку. Таким образом, выполнение ldd для программы приводит к исполнению этой программы с правами пользователя, от которого запущена ldd.

Также в статье приводится пример использования этой возможности совместно с методами социальной инженерии: пользователь хостинга или злоумышленник от его имени создает специальный исполняемый файл, звонит администратору и жалуется, что программа не работает. Администратор (допустим, он работает с привилегиями root) первым делом запускает ldd и сообщает пользователю, что не хватает такой-то библиотеки (программа злоумышленника имитирует нормальный вывод ldd), пользователь говорит «спасибо», и администратор даже не подозревает, что только что запустил со своими правами код злоумышленника.

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

 , ,

nnz
()