Как я могу убедиться, что моя установка Bash больше не уязвима для ошибки ShellShock после обновлений?
Как я могу убедиться, что моя установка Bash больше не уязвима для ошибки ShellShock после обновлений?
Ответы:
Чтобы проверить уязвимость CVE-2014-6271
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
это не должно отражать слово уязвимым.
/tmp/echo
который вы можете удалить после, и необходимо удалить перед повторным тестированием)
cd /tmp; env X='() { (a)=>\' bash -c "echo date"; cat echo
он должен сказать слово дата, а затем пожаловаться с сообщением, как cat: echo: No such file or directory
. Если вместо этого он говорит вам, что текущее время и дата, то ваша система уязвима.
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
.
(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
.
env HTTP_COOKIE="() { x() { _; }; x() { _; } <<`perl -e '{print "A"x1000}'`; }" bash -c "echo testing CVE-2014-6277"
Результат прохождения - ТОЛЬКО эхо-ответ testing CVE-2014-6277
. Если он запускает Perl или жалуется, что Perl не установлен, это определенно ошибка. Я не уверен ни в каких других характеристиках сбоев, поскольку у меня больше нет исправленных систем.
env HTTP_COOKIE='() { _; } >_[$($())] { echo hi mom; id; }' bash -c "echo testing CVE-2014-6278"
Проход для этого теста состоит в том, что он должен ТОЛЬКО отражать текст testing CVE-2014-6278
. Если ваш ответ эхом возвращается в hi mom
любом месте, это определенно провал.
foo='() { echo not patched; }' bash -c foo
к этому? Пока экспорт функций не будет помещен в отдельное пространство имен, мы не перестанем работать с одной ошибкой синтаксического анализатора на следующую.
Экспортируйте специально созданную переменную среды, которая будет автоматически оцениваться уязвимыми версиями Bash:
$ export testbug='() { :;}; echo VULNERABLE'
Теперь выполните простое эхо, чтобы увидеть, будет ли Bash оценивать код в $ testbug, даже если вы не использовали эту переменную самостоятельно:
$ bash -c "echo Hello"
VULNERABLE
Hello
Если он показывает строку «VULNERABLE», ответ очевиден. В противном случае вам не нужно беспокоиться, и ваша исправленная версия Bash в порядке.
Обратите внимание, что в основных дистрибутивах Linux выпущено несколько исправлений, и иногда они не полностью устраняют уязвимость. Продолжайте проверять рекомендации по безопасности и запись CVE для этой ошибки.
export
):env testbug='() { :;}; echo VULNERABLE' bash -c "echo Hello"
ShellShock - это практически совокупность более чем одной уязвимости bash , и на данный момент существует также вредоносное ПО, использующее эту уязвимость , поэтому ShellShock может быть проблемой, которая все еще остается открытой, существует ветка с обновлениями от RedHat по этой проблеме .
Команда Run:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
Если вывод:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
vulnerable
bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)'
bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable'
bash: error importing function definition for `BASH_FUNC_x'
test
у тебя нет никакого решения.
Если вывод:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
bash: error importing function definition for `BASH_FUNC_x()'
test
у тебя есть CVE-2014-6271
починка
Если ваш вывод:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `BASH_FUNC_x'
test
ты не уязвим.
Другая часть проверки ShellShock - это проверка уязвимости CVE-2014-7169, которая обеспечивает защиту системы от проблемы создания файла. Чтобы проверить, уязвима ли ваша версия Bash к CVE-2014-7169, выполните следующую команду:
$ cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
bash: x: line 1: syntax error near unexpected token `='
bash: x: line 1: `'
bash: error importing function definition for `x'
Fri Sep 26 11:49:58 GMT 2014
Если ваша система уязвима, отобразятся время и дата и будет создан файл / tmp / echo.
Если ваша система не уязвима, вы увидите вывод, похожий на:
$ cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
date
cat: /tmp/echo: No such file or directory
Я написал утилиту CLI под названием ShellShocker для проверки вашего веб-сервера на наличие уязвимостей в CGI-скриптах. Чтобы проверить свой сайт, вы должны запустить:
python shellshocker.py <your-server-address>/<cgi-script-path>
т.е.
python shellshocker.py http://example.com/cgi-bin/possibly-vulnerable-script.cgi
РЕДАКТИРОВАТЬ: эта утилита была снята, извините: '(
Вы можете отправить свой CGI-URL в этот онлайн-тест: