Выполнение setuid двоичный файл временно без setuid?

Нет Вы не можете

Когда Личинка загружает ядро, она в конечном счете передает управление ему, это не остается в состоянии покоя или чем-то.

Думайте о Личинке как о крошечной ОС. При начальной загрузке ядра или chainload в устройство GRUB не стало. Единственная подобная вещь достигнуть, использовал бы что-то как EFI, но это на самом деле запускается, когда ОС передает управление во что. На VAXstations было возможно остановить систему и ворваться в подсказку, названную двойной угловой скобкой (">>>"). Вы могли осуществить проверки базового оборудования, и т.д. там, но также и жесткие диски формата. Впоследствии, ОС могла быть освобождена от своего замороженного состояния снова и работала от ранее остановленной точки, как будто ничего не произошло.

7
02.09.2012, 14:57
2 ответа

Если X динамично связан, Вы могли вызвать динамического компоновщика как:

/lib/ld.so /path/to/X

(адаптируйтесь ld.so к Вашей системе (как /lib/ld-linux.so.2).

Пример:

$ /lib64/ld-linux-x86-64.so.2 /bin/ping localhost
ping: icmp open socket: Operation not permitted
3
27.01.2020, 20:19

Если у вас строка , а это - это - не setuid к корню, то

strace -e '!all' program_name [argument(s)]

должно сработать.  strace(1) говорит (в разделе BUGS):

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

потому что это было бы проблемой безопасности. если непривилегированный пользователь может отследить программу setuid. (потому что трассировка позволяет изучать и изменять память процесса).  Но также, в специальном разделе под названием УСТАНОВКА НАСТРОЙКИ, он немного хеджирует вышеперечисленное:

Если установлена программа setuidstrace с корнем, то ... программы setuid и setgid будет выполнено и отслежено с правильными действующими привилегиями.  ... только пользователи, которым доверяют с полными привилегиями root. должно быть позволено делать такие вещи, ...

Итак, если strace установлен setuid to root, то вышеописанный трюк не сработает.  Но, как правило, так не должно быть.  И, даже если это так, вы можете обойти его, сделав частную несайдерскую копию строки .  (Я думаю, что даже если /bin/strace будет автоматически обновлена, вам не следует нуждаться в для обновления вашей личной копии.)

Что касается команды, -e сообщает strace, что -e-выходит на трассировку.  -e all будет означать "отслеживать все события" (что является значением по умолчанию), так что -e '!all' означает "следов нет". 1  Это должно привести к тому, что Strace фактически не будет ничего делать, кроме как стоять в стороне и смотреть. как работает ваша программа (программа Х).  Если она все равно выдает ненужный вывод, перенаправьте вывод на /dev/null .  (Это предполагает, что вам не нужно видеть вывод на консоль. с Х-сервера.)
________________
1 Вам, наверное, придется процитировать !все . чтобы предотвратить обработку панциря ! в качестве исторической справки.

2
27.01.2020, 20:19

Теги

Похожие вопросы