Bash kurulumumun güncellemelerden sonra ShellShock hatalarına karşı savunmasız olmadığından nasıl emin olabilirim ?
Bash kurulumumun güncellemelerden sonra ShellShock hatalarına karşı savunmasız olmadığından nasıl emin olabilirim ?
Yanıtlar:
CVE-2014-6271 güvenlik açığını denetlemek için
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
savunmasız kelimeyi geri YAKMAMALIDIR.
/tmp/echo
, sonradan silebileceğiniz ve yeniden test etmeden önce silmeniz gereken bir dosya oluşturacak veya üzerine yazacaktır )
cd /tmp; env X='() { (a)=>\' bash -c "echo date"; cat echo
tarih kelimesini söylemeli ve sonra bunun gibi bir mesajla şikayet etmelidir cat: echo: No such file or directory
. Bunun yerine o anki tarihin ne olduğunu size söylerse sisteminiz savunmasızdır.
bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo "CVE-2014-7186 vulnerable, redir_stack"
metni geri YANMAMALIDIR 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"
metni geri YANMAMALIDIR CVE-2014-7187 vulnerable, word_lineno
.
env HTTP_COOKIE="() { x() { _; }; x() { _; } <<`perl -e '{print "A"x1000}'`; }" bash -c "echo testing CVE-2014-6277"
Bu bir geçiş sonucu SADECE metni geri yankılanıyor testing CVE-2014-6277
. Perl çalışırsa veya perl kurulu değilse şikayet ederse bu kesinlikle bir başarısızlıktır. Artık ekli sistemlere sahip olmadığım için diğer arıza özelliklerinden emin değilim.
env HTTP_COOKIE='() { _; } >_[$($())] { echo hi mom; id; }' bash -c "echo testing CVE-2014-6278"
Bu test için bir geçiş, SADECE metni geri yansıtması gerektiğidir testing CVE-2014-6278
. Seninki hi mom
herhangi bir yerde yankılanıyorsa bu kesinlikle başarısız.
foo='() { echo not patched; }' bash -c foo
? İşlev ihracatı ayrı bir ad alanına konana kadar, bir ayrıştırıcı hatadan diğerine koşmayı bırakmayacağız.
Bash'in savunmasız sürümleri tarafından otomatik olarak değerlendirilecek olan özel hazırlanmış bir ortam değişkenini dışa aktarın:
$ export testbug='() { :;}; echo VULNERABLE'
Şimdi, bu değişkeni kendiniz kullanmamış olsanız bile, Bash'in $ testbug içindeki kodu değerlendirip değerlendirmeyeceğini görmek için basit bir yankı yürütün:
$ bash -c "echo Hello"
VULNERABLE
Hello
"VULNERABLE" dizesini gösterirse, cevap açıktır. Aksi takdirde, endişelenmenize gerek yoktur ve Bash'in yamalı sürümünüz tamamdır.
Önemli Linux dağıtımları tarafından birden fazla düzeltme eki yayınlandığını ve bazen güvenlik açığını tam olarak çözemediklerini lütfen unutmayın. Bu hata için güvenlik önerilerini ve CVE girişini kontrol etmeye devam edin .
export
) kullanıyorsanız' bile olsa bir env testbug='() { :;}; echo VULNERABLE' bash -c "echo Hello"
ShellShock, pratik olarak birden fazla bash güvenlik açığı birleşiminin bir birleşimidir ve şu anda bu güvenlik açığından yararlanan bir yazılım da vardır, bu nedenle ShellShock hala açık olan bir sorun olabilir , RedHat'tan bu konu hakkında güncellemeler içeren bir konu var .
Redhat aşağıdakileri tavsiye etti:
Çalıştır komutu:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
Eğer çıktı:
$ 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
hiçbir fikrin yok.
Eğer çıktı:
$ 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
tamir ettin
Çıktınız şuysa:
$ 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
savunmasız değilsin.
ShellShock kontrolünün diğer kısmı, CVE-2014-7169 güvenlik açığı kontrolünün sistemin dosya oluşturma sorununa karşı korunmasını sağlamasıdır. Bash sürümünüzün CVE-2014-7169'a açık olup olmadığını test etmek için aşağıdaki komutu çalıştırın:
$ 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
Sisteminiz savunmasızsa, saat ve tarih gösterilecek ve / tmp / echo oluşturulacaktır.
Sisteminiz savunmasız değilse, şuna benzer bir çıktı göreceksiniz:
$ 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
Web sunucunuzu CGI komut dosyalarındaki güvenlik açıklarına karşı sınamak için ShellShocker adlı bir CLI yardımcı programı yazdım . Sitenizi test etmek için şunları çalıştırırsınız:
python shellshocker.py <your-server-address>/<cgi-script-path>
yani
python shellshocker.py http://example.com/cgi-bin/possibly-vulnerable-script.cgi
EDIT: Bu yardımcı program kaldırıldı, üzgünüm: '(
CGI URL’nizi şu çevrimiçi teste gönderebilirsiniz: