The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Отключение LD_PRELOAD в Linux
Для блокирования работы переменной окружения LD_PRELOAD, позволяющей
принудительно загрузить разделяемую библиотеку со своими обработчиками для
функций используемых в программе библиотек, можно использовать следующий скрипт.

ldpreload-disable.sh:

   #!/bin/bash

   if [ $# -lt 1 ];then
	printf "./ldpreload-disable.sh [ld-linux.so] [64|32]\n"
	exit 0
   fi

   ld_linux="$1"
   [ "$2" == "64" ] && xor='\x48' || xor=''

   offset=$((16#$(readelf -s $ld_linux | awk '/do_preload/ {print $2}')))
   printf $xor'\x31\xc0\xc3' | dd conv=notrunc of=$ld_linux bs=1 seek=$offset



Пример использования для 64-разрядной системы:

   $ sudo bash ldpreload-disable.sh $HOME/fedora-chroot/lib64/ld-2.22.so 64

для 32-разрядной системы:

   $ sudo bash ldpreload-disable.sh $HOME/fedora-chroot/lib/ld-2.22.so 32
 
18.09.2016 , Источник: https://github.com/hc0d3r/ldpreload...
Ключи: linux, ld_preload, patch, elf, linker / Лицензия: CC-BY
Раздел:    Корень / Администратору / Система / Linux специфика / Увеличение безопасности Linux

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, cmp (ok), 05:23, 18/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Судя по версии glibc это делается для отключения недавнего руткита, и что там, что тут нет никакой инфы о том, имеет ли версия glibc значение, как и другой вспогательной инфы, нахрена такие топики писать?
     
  • 1.2, Нанобот (ok), 19:46, 20/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    автор применил древнюю чёрную магию для отключения LD_PRELOAD. детки, не пытайтесь повторить это дома.
    З.Ы. имхо, стоило бы упомянуть, что это всё будет работать до первого обновления libc
     
     
  • 2.7, mezoni (?), 17:02, 02/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ума-то нет вот и пишут всякую чушь.
     

  • 1.3, Василий (??), 10:40, 21/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отличный способ отстрелить себе голову
     
  • 1.4, Аноним (-), 00:26, 25/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Это что, предлагается хачить бинарник ld.so этим стремным скриптом? После чего как минимум будет обламываться проваерка контрольных сумм пакетником, а если не повезло то система сломается совсем. Виндовозненько.
     
  • 1.5, Аноним (-), 06:28, 27/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чего только люди не делают, лишь бы LFS не использовать.
     
  • 1.6, Аноним (-), 13:10, 27/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ubuntu Xenial (16.04):
    > readelf -s /lib/x86_64-linux-gnu/ld-2.23.so | grep do_preload

    пустой вывод

     
  • 1.8, нет (??), 10:45, 07/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    в этом совете хорошо всё: и содержимое и автор в ксакеповской транскрипции. Очень сочетаемо.
     
  • 1.9, Нониус (?), 14:27, 24/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    [ $# -lt 1 ] && \
    { echo "usage: 'basename $0' blablabla" ; exit 0 ; }

    дальше лень править тупизмы.

     
  • 1.10, pavlinux (ok), 01:26, 25/10/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    pavel@amd64:~$ readonly LD_PRELOAD
    pavel@amd64:~$ export LD_PRELOAD=/tmp/libfake.so
    bash: LD_PRELOAD: доступная только на чтение переменная

    ---
    ессесенно readonly LD_PRELOAD прописывать в /etc/profile

     
     
  • 2.11, freehck (ok), 15:06, 03/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ага, щас.

    1) можно запустить bash --noprofile, и /etc/profile не будет зачитан
    2) работа с readonly-переменными окружения зависит от shell. bash вот не позволяет снова сделать её доступной на запись, а вот в zsh можно спокойно написать "typeset +r LD_PRELOAD" и задать её любое новое значение.

     
     
  • 3.12, pavlinux (ok), 13:01, 08/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Ага, щас.
    > 1) можно запустить bash --noprofile, и /etc/profile не будет зачитан

    еще есть /etc/bash.bashrc, еще парсер написать.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру