По-видимому, эксплойт Bash Shellhock Bash CVE-2014-6271 можно использовать по сети через SSH. Я могу представить, как эксплойт будет работать через Apache / CGI, но я не могу представить, как это будет работать через SSH?
Может кто-нибудь привести пример использования SSH и какой вред может быть нанесен системе?
ПОЯСНЕНИЯ
AFAIU, только аутентифицированный пользователь может использовать эту уязвимость через SSH. Какая польза от этого эксплойта для кого-то, кто имеет законный доступ к системе? Я имею в виду, что у этого эксплойта нет повышения привилегий (он не может стать пользователем root), поэтому он может сделать не больше, чем мог бы сделать, просто войдя в систему с помощью SSH.
bash
ssh
shellshock
Мартин Вегтер
источник
источник
Ответы:
Один из примеров, где это можно использовать, - на серверах с
authorized_keys
принудительной командой. При добавлении записи в~/.ssh/authorized_keys
, вы можете предварить линию ,command="foo"
чтобы заставитьfoo
быть запущен в любое время , что SSH используется открытый ключ. С помощью этого эксплойта, если установлена оболочка целевого пользователяbash
, они могут использовать этот эксплойт для запуска вещей, отличных от команды, которой они вынуждены.Это, вероятно, имеет больше смысла в примере, поэтому вот пример:
Здесь мы настраиваем пользователя
testuser
, который принудительно запускает любые соединения ssh, используя ваш ключ sshecho starting sleep; sleep 1
.Мы можем проверить это с:
Обратите внимание, что наша команда не запускается
echo something else
, ноstarting sleep
показывает, что принудительная команда действительно выполнялась.Теперь давайте покажем, как можно использовать этот эксплойт:
Это работает, потому что
sshd
устанавливаетSSH_ORIGINAL_COMMAND
переменную среды для переданной команды. Так что даже еслиsshd
побежалsleep
, а не команда , которую я рассказал это, из - за подвиг, мой код до сих пор получает бежать.источник
ssh testuser@localhost echo something else '`whoami`'
чтобы доказать, где выполняется командаРасширяя пример из Ramesh - если вы используете двухфакторную аутентификацию, можно обойти второй фактор, используя этот эксплойт, в зависимости от того, как он реализован.
- Нормальный логин -
- Запуск кода без 2FA -
Вы заметите, что он запускает код без запроса 2FA.
- После исправления Bash -
источник
read
функцию. В противном случае - пользователь в безопасности.Shellshock - это уязвимость в bash, а не в SSH. Чтобы использовать его, злоумышленнику необходимо заставить уязвимую систему запустить bash и контролировать значение переменной среды, которая будет передана bash.
Чтобы достичь процесса bash через SSH, злоумышленнику необходимо пройти этапы аутентификации. (Возможны векторы атак через другие сетевые сервисы, но они выходят за рамки этого потока.) Если учетной записи разрешено выполнять произвольные команды оболочки, атаки не происходит. Уязвимость вступает в игру, если учетная запись ограничена для выполнения определенных команд: например, учетной записи только SFTP или учетной записи только git и т. Д.
Есть несколько способов ограничить учетную запись для запуска определенной команды с SSH: с
ForceCommand
параметром вsshd_config
или сcommand=
. ограничение вauthorized_keys
файле. Если оболочкой пользователя является bash, то уязвимость Shellshock позволяет пользователю, который обычно имеет доступ только к ограниченной учетной записи, обойти ограничение и выполнить произвольные команды.источник
zsh
.