Як я можу переконатися, що моя інсталяція 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
Якщо він показує рядок "РЕЧЕНИЙ", відповідь очевидна. Інакше вам не потрібно хвилюватися, і ваша виправлена версія Bash в порядку.
Зверніть увагу, що основні дистрибутиви Linux були випущені декількома виправленнями, а іноді вони не повністю виправляють вразливість. Продовжуйте перевіряти рекомендації щодо безпеки та записи CVE щодо цієї помилки.
export
):env testbug='() { :;}; echo VULNERABLE' bash -c "echo Hello"
ShellShock - це практично поєднання декількох вразливих версій bash , і в цей момент також існує програмне забезпечення, яке використовує цю вразливість , тому ShellShock може бути проблемою, яка досі відкрита, є тема з оновленнями RedHat щодо цих питань .
Виконати команду:
$ 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
EDIT: ця утиліта знята, вибачте: '(
Ви можете надіслати свою URL-адресу CGI до цього онлайн-тесту: