Bagaimana saya bisa memastikan instalasi Bash saya tidak rentan terhadap bug ShellShock lagi setelah pembaruan?
Bagaimana saya bisa memastikan instalasi Bash saya tidak rentan terhadap bug ShellShock lagi setelah pembaruan?
Jawaban:
Untuk memeriksa kerentanan CVE-2014-6271
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
seharusnya TIDAK menggemakan kembali kata rentan.
/tmp/echo
yang dapat Anda hapus setelahnya, dan perlu dihapus sebelum pengujian lagi)
cd /tmp; env X='() { (a)=>\' bash -c "echo date"; cat echo
itu harus mengatakan tanggal kata lalu mengeluh dengan pesan seperti cat: echo: No such file or directory
. Jika sebaliknya ia memberi tahu Anda apa itu datetime saat ini maka sistem Anda rentan.
bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo "CVE-2014-7186 vulnerable, redir_stack"
seharusnya TIDAK menggemakan kembali teks 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"
seharusnya TIDAK menggemakan kembali teks CVE-2014-7187 vulnerable, word_lineno
.
env HTTP_COOKIE="() { x() { _; }; x() { _; } <<`perl -e '{print "A"x1000}'`; }" bash -c "echo testing CVE-2014-6277"
Hasil lulus yang ini adalah HANYA menggemakan kembali teks testing CVE-2014-6277
. Jika menjalankan perl atau jika perl bahwa perl tidak diinstal itu pasti gagal. Saya tidak yakin tentang karakteristik kegagalan lainnya karena saya tidak lagi memiliki sistem yang belum ditambal.
env HTTP_COOKIE='() { _; } >_[$($())] { echo hi mom; id; }' bash -c "echo testing CVE-2014-6278"
Lulus untuk tes ini adalah bahwa itu HANYA harus mengulangi teks testing CVE-2014-6278
. Jika gema Anda kembali ke hi mom
mana saja itu pasti gagal.
foo='() { echo not patched; }' bash -c foo
untuk ini? Sampai ekspor fungsi dimasukkan ke dalam namespace yang terpisah, kami tidak akan berhenti menjalankan dari satu bug parser ke yang berikutnya.
Ekspor variabel lingkungan buatan khusus yang akan dievaluasi secara otomatis oleh versi rentan Bash:
$ export testbug='() { :;}; echo VULNERABLE'
Sekarang jalankan gema sederhana untuk melihat apakah Bash akan mengevaluasi kode dalam $ testbug meskipun Anda sendiri belum pernah menggunakan variabel itu:
$ bash -c "echo Hello"
VULNERABLE
Hello
Jika menunjukkan string "VULNERABLE", jawabannya jelas. Jika tidak, Anda tidak perlu khawatir dan versi Bash yang Anda tempel OK.
Harap dicatat beberapa tambalan telah dirilis oleh distribusi Linux utama dan terkadang mereka tidak memperbaiki kerentanan sepenuhnya. Terus periksa saran keamanan dan entri CVE untuk bug ini.
export
):env testbug='() { :;}; echo VULNERABLE' bash -c "echo Hello"
ShellShock secara praktis merupakan gabungan dari lebih dari satu kerentanan bash , dan saat ini ada juga malaware yang mengeksploitasi kerentanan ini , sehingga ShellShock dapat menjadi masalah yang masih terbuka, ada utas dengan pembaruan dari RedHat tentang masalah ini .
Redhat merekomendasikan yang berikut:
Jalankan perintah:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
Jika output:
$ 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
Anda tidak memiliki perbaikan apa pun.
Jika output:
$ 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
Anda telah CVE-2014-6271
memperbaikinya
Jika output Anda adalah:
$ 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
Anda tidak rentan.
Bagian lain dari pemeriksaan ShellShock adalah pemeriksaan kerentanan CVE-2014-7169 memastikan bahwa sistem dilindungi dari masalah pembuatan file. Untuk menguji apakah versi Bash Anda rentan terhadap CVE-2014-7169, jalankan perintah berikut:
$ 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
Jika sistem Anda rentan, waktu dan tanggal akan ditampilkan dan / tmp / echo akan dibuat.
Jika sistem Anda tidak rentan, Anda akan melihat output yang mirip dengan:
$ 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
Saya menulis sebuah utilitas CLI bernama ShellShocker untuk menguji server web Anda untuk kerentanan pada skrip CGI. Untuk menguji situs Anda, Anda akan menjalankan:
python shellshocker.py <your-server-address>/<cgi-script-path>
yaitu
python shellshocker.py http://example.com/cgi-bin/possibly-vulnerable-script.cgi
EDIT: utilitas ini sudah dihapus, maaf: '(
Anda dapat mengirimkan URL CGI Anda ke tes online ini: