Что такое #shellshock?

Автор: | 15.04.2015

Shellshock ( CVE-2014-6271 , CVE-2014-6277 , CVE-2014-6278 , CVE-2014-7169 , CVE-2014-7186 , CVE-2014-7187 ) является уязвимость в GNU BASH оболочке, которая дает злоумышленникам доступ к запуску удаленных команд на уязвимой системе. Если в вашей системе не обновляется Bash с 30 сентября 2014 года, ваша система скорее всего уязвима. Эта уязвимость безопасности влияет на версии с 1.14 (выпущенная в 1994 году) до самой последней версии 4.3 в соответствии с NVD .

Уязвимость Shellshock могут быть использованы в системах, работающих под управлением служб и приложений, которые позволяют удаленным пользователям назначить переменные среды Bash. Примеры эксплуатационных систем включают в себя следующее:

  • Apache HTTP серверы, использующие сценарии CGI (с помощью mod_cgi и mod_cgid ), написанные в Bash или запуск в Bash подоболочек
  • Некоторые клиенты DHCP
  • Серверы OpenSSH, которые используют ForceCommand возможность
  • Различные сетевые сервисы, которые используют Bash

Вы можете использовать инструкции, которые приведены ниже, чтобы проверить, уязвима ваша система или нет, а также узнать, как залатать уязвимости, так чтобы вы больше небыли подвержены риску атак.

 Сайт шокер

Для начало делаем скрипт на проверку уязвимости. И положим его в /usr/lib/cgi-bin/shockme.cgi

#!/bin/bash
echo «Content-type: text/html»
echo «»
echo «https://shellshocker.net/»

Проверяем

http://ваш-сайт/cgi-bin/shockme.cgi

Этот сайт тестер будет ждать ответа, если сервер отвечает 500, есть все основания предположить, что ваша система уязвима.

Тестируем систему

Чтобы проверить вашу систему, вы можете просто запустить это в командной строке следующую строку.

curl https://github.com/wreiske/shellshocker/blob/master/shellshock_test.sh | bash

Вы можете посмотреть исходный код shellshock_test.sh на GitHub

Если вы хотите, проверить каждую уязвимость по отдельности без запуска скрипта выше, надо сделать следующее! Действия перечислены ниже.

Exploit 1 ( CVE-2014-6271 )

Есть несколько способов, чтобы проверить, если ваша система уязвима для Shellshock. Попробуйте выполнить следующую команду в оболочке.

env x='() { :;}; echo vulnerable’ bash -c «echo this is a test»

Если вы видите «vulnerable» «уязвимы» необходимо обновить Баш . Если вы увидите echo this is a test, то все ок, продолжаем тестирование.

1

Exploit 1 ( CVE-2014-6271 )

 

 

 

 

 

 

Exploit 2 ( CVE-2014-7169 )

Даже после обновления Баш вы все равно может быть уязвимым для этой уязвимости. Попробуйте запустить следующий код.

env X='() { (shellshocker.net)=>\’ bash -c «echo date»; cat echo; rm ./echo

Если приведенная выше команда выводит текущую дату (она также может показать ошибки), вы по-прежнему уязвимы.

2

Exploit 2 ( CVE-2014-7169 )

 

 

 

 Exploit 3

Вот еще один вариант эксплоита. Пожалуйста, оставьте комментарий ниже, если вы знаете CVE этого подвида.

env X=’ () { }; echo hello’ bash -c ‘date’

Если вышеуказанная команда выведет «привет», вы уязвимы.

3

Exploit 3

 

 

 

Exploit 4 ( CVE-2014-7186 )

bash -c ‘true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF’ ||
echo «CVE-2014-7186 vulnerable, redir_stack»

Уязвимая система будет отображать текст «CVE-2014-7186 vulnerable, redir_stack».

4

Exploit 4 ( CVE-2014-7186 )

 

 

Exploit 5 ( CVE-2014-7187 )

 

(for x in {1..200} ; do echo «for x$x in ; do :»; done; for x in {1..200} ; do echo done ; done) | bash ||

echo «CVE-2014-7187 vulnerable, word_lineno»

Уязвимая система будет отображать текст «CVE-2014-7187 vulnerable, word_lineno».

5

Exploit 5 ( CVE-2014-7187 )

 

 

 

 Exploit 6 ( CVE-2014-6278 )

shellshocker='() { echo You are vulnerable; }’ bash -c shellshocker

Вы не должны видеть «You are vulnerable», если все исправлено, вы увидите «Bash: shellshocker: command not found»

6

Exploit 6 ( CVE-2014-6278 )

 

 

Exploit 7 ( CVE-2014-6277 )

bash -c «f() { x() { _;}; x() { _;} <<a; }» 2>/dev/null || echo vulnerable

Если команда выводит «vulnerable», вы уязвимы.

7

Exploit 7 ( CVE-2014-6277 )

 

 

How to fix ShellShock

CentOS, Ubuntu, Red Hat, Fedora

системы Linux

Shellshock является уязвимость в Bash . Для того, чтобы залатать свой ​​код на целевой системе, вы должны будете получить наиболее актуальную версию Bash доступной из GNU.org .

В зависимости от вашего менеджера пакетов (yum, APT-GET, и т.д.) вы сможете просто запустить обновление yum, и т.д.

Вот как это делается:

sudo yum update bash -y

sudo yum update

 

Для систем Ubuntu:

apt-get update; apt-get install —only-upgrade bash

spt-get upgrade

Для Arch Linux:

pacman -Syu

Если ваш менеджер пакетов не нашел обновлений, вам нужно будет указать bash от SRC.

Сборка из исходников

Вы можете исправить bash с помощью одной команды с помощью нашего bash patcher, просто запустите следующую команду, и вcе будет хорошо!

Убедитесь, что у вас есть patch installed, прежде чем запускать эту команду. sudo apt-get install patch (yum install patch) etc…

curl https://shellshocker.net/fixbash | sh

Если вы хотите сделать это самостоятельно, не стесняйтесь. Здесь все команды, которые нужны.

cd ~/
mkdir bash
cd bash
wget https://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
#download all patches
while [ true ]; do i=`expr $i + 1`; wget -N https://ftp.gnu.org/gnu/bash/bash-4.3-patches/ ‘%03g’ $i); if [ $? -ne 0 ]; then break; fi; done
tar zxvf bash-4.3.tar.gz
cd bash-4.3
for p in `ls ../bash43-[0-9][0-9][0-9]`; do patch -p0 < $p; done
./configure && make && make instal

OS X

Если вы работаете под OS X, Apple выпустила официальные патчи для Mavericks , Mountain Lion и Lion .

Вы также можете скачать и скомпилировать Bash самостоятельно, используя  brew или MacPorts .

Мы рекомендуем использовать brew — Перейти к http://brew.sh/ и установить brew в вашей системе.

После того, как вы установили brew, выполните следующие команды, чтобы обновить систему

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

Если вы используете MacPorts, выполните следующее:

sudo port selfupdate

sudo port upgrade bash

После того, как вы обновили, попробуйте еще раз проверить систему.

Оригинал статьи тут https://shellshocker.net/

https://github.com/hannob/bashcheck

PS

Универсальный скрипт для проверки на наличие уязвимостей github.com/hannob/bashcheck

В продолжение — обнаружены новые уязвимости в bash www.linux.org.ru/news/security/10892232