Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Способ обхода rbash  (Прочитано 2455 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн hon

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1044
  • Ubuntu 12.04 LTS
    • Просмотр профиля
Способ обхода rbash
« : 30 Марта 2014, 11:06:21 »
bash можно запустить в ограниченном режиме командой rbash или bash --restricted
В таком режиме ограничивается выполнение некоторых действий, что безопаснее для запуска опасных скриптов.

Но если в PATH есть /bin/, то можно написать в скрипте:
cd /
if [[ $? -ne 0 ]]; then bash -c "./$0"; exit; fi

И смысл в ограниченной оболочке потерян. Это баг или фича?

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Способ обхода rbash
« Ответ #1 : 30 Марта 2014, 17:11:24 »
Насколько я понимаю man bash <RESTRICTED SHELL>, то
Цитировать
    that the following are disallowed or not performed:
    • changing directories with cdcd / не должно работать
    • specifying command names containing / — ./$0 не должно работать
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн hon

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1044
  • Ubuntu 12.04 LTS
    • Просмотр профиля
Re: Способ обхода rbash
« Ответ #2 : 30 Марта 2014, 18:43:37 »
Готовый скрипт:
#!/bin/rbash

cd /
if [[ $? -ne 0 ]]
   then
   echo 'Мы в rbash. Перезапуск в bash.'
   bash $0
   exit;
fi
echo 'Мы в bash.'
ls
Запустите в каталоге, отличном от корневого (для чистоты эксперимента).

Оффлайн Artif

  • Участник
  • *
  • Сообщений: 207
    • Просмотр профиля
Re: Способ обхода rbash
« Ответ #3 : 30 Марта 2014, 18:59:33 »
Да, но только это уже дочерний процесс. Он под полным контролем у родительского rbash. В bash-то мы оказываемся. А вот покажите, что мы в нём можем что-то нарушить.

Оффлайн hon

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1044
  • Ubuntu 12.04 LTS
    • Просмотр профиля
Re: Способ обхода rbash
« Ответ #4 : 31 Марта 2014, 07:45:58 »
Перед запуском скрипт находился не в корневом каталоге.
Запустите в каталоге, отличном от корневого (для чистоты эксперимента).
Во время запуска скрипт, перезапустившись в bash, поменял каталог на корневой и выполнил ls.
Смена каталога не позволена в rbash.

 

Страница сгенерирована за 0.03 секунд. Запросов: 26.