ddclash
Проверенные
- Сообщения
- 93
- Реакции
- 68
- Баллы
- 5,515
Чтобы не трогать терминал, крутим вниз до комметариев.
Хай. Сегодня поговорим о bash.
Чтобы быстро понять суть проблемы, достаточно взглянуть на следующий код:
Код:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
Круглые скобки указывают, что определяется функция, которая затем будет вызвана. Ее содержимое должно располагаться между фигурными скобками. Ошибка заключается в том, что закрывающая фигурная скобка '}' игнорируется и при вызове функции выполняется код и за скобками.
На языке простых юзеров: выполняете этот самый код, если выводится vulnerable, то вы уязвимы.
Критический уровень опасности для всей системы возникает из-за того, что Bash часто комбинируют с другими программами, в том числе и сетевыми. Злоумышленник дистанционно может передать специально сформированную строку, которая приведет к выполнению вредоносного кода на удaленном компьютере. Например, уязвимости подвержены такие широко используемые программы, как:
- Apache;
- SSH;
- CPanel;
- Git и Subversion;
- DHCP-клиенты;
- CUPS;
- и масса других.
1.
Код:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.
Код:
brew update
Код:
brew install bash
Код:
sudo sh -c 'echo "/usr/local/bin/bash" >> /etc/shells'
Код:
chsh -s /usr/local/bin/bash
Код:
sudo mv /bin/bash /bin/bash-backup
Код:
sudo ln -s /usr/local/bin/bash /bin/bash
После чего перезагружаем терминал, пишем bash --version и если результат будет как на скриншоте, то вы закрылись от дыры!

Последнее редактирование: