Masih Rentan terhadap Shellshock dengan Ubuntu 14.04.1 dan Bash 4.3-7ubuntu1.4 - Apa selanjutnya?

3

Judulnya mengatakan itu semua.

Saya masih rentan (CVE-2014-6271 dan mungkin CVE-2014-7169) dengan Ubuntu 14.04.1 dan Bash 4.3-7ubuntu1.4

  • apt-get update = tidak ada
  • upgrade apt-get = tidak ada
  • apt-get install bind = tidak ada

Memeriksa ini: https://launchpad.net/ubuntu/+source/bash/4.3-7ubuntu1.4 (tidak ada versi yang lebih baru)

Tes Ran:

env x='() { :;}; echo vulnerable' bash -c 'echo hello'

Mendapatkan:

vulnerable
hello

Sudah di sini selama seminggu sekarang!

[Memperbarui]

Saya awalnya menginstal bash_4.3.orig.tar.gz dari https://launchpad.net/ubuntu/+source/bash/4.3-7ubuntu1.4 yang mungkin merupakan kesalahan.

Saya melakukan ini sebelum melakukan sudo apt-get update && sudo apt-get install bashakan bekerja (saya pikir).

Di halaman ini, ada file lain, bash_4.3-7ubuntu1.4.debian.tar.gz dan bash_4.3-7ubuntu1.4.dsc. Saya tidak tahu harus berbuat apa dengan ini. Saya mengunduh bash_4.3-7ubuntu1.4.debian.tar.gz dan melihatnya, tetapi tidak tahu apa yang harus dilakukan dengannya.

Saya masih rentan menurut tes ini: env x='() { :;}; echo vulnerable' bash -c 'echo hello'

Saya mencoba sebanyak mungkin kombinasi apt-get, dpkg, dan menginstal dari bash_4.3.orig.tar.gz seperti yang dapat Anda bayangkan. Masih gagal tes.

Saya menemukan:

  • / usr / local / bin / bash - GNU bash, versi 4.3.0 (1) -release (i686-pc-linux-gnu)
  • / bin / bash - GNU bash, versi 4.3.11 (1) -release (i686-pc-linux-gnu)

Pagi ini, setelah berkeliling selama berhari-hari, saya akhirnya putus asa dan melemparkan Hail Mary dan mencoba skrip dari: Bagaimana cara menambal kerentanan shellshock pada sistem Ubuntu yang sudah usang yang tidak dapat saya tingkatkan?

Sekarang saya punya:

  • / bin / bash - GNU bash, versi 4.3.27 (1) -release (i686-pc-linux-gnu)

Masih gagal tes: env x='() { :;}; echo vulnerable' bash -c 'echo hello'ketika saya masuk. Jadi saya sudo /bin/bashdan mencoba lagi. Masih gagal.

Jadi saya mencoba:

sudo apt-get install --only-upgrade bash

dan dapatkan ...

Reading package lists... Done
Building dependency tree
Reading state information... Done
bash is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/549 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
dpkg: error processing package bash (--configure):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting configuration
Errors were encountered while processing:
 bash
E: Sub-process /usr/bin/dpkg returned an error code (1)

Jadi saya mencoba:

sudo apt-get install bash

dan dapatkan ...

Reading package lists... Done
Building dependency tree
Reading state information... Done
bash is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/549 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
dpkg: error processing package bash (--configure):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting configuration
Errors were encountered while processing:
 bash
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ini tentu saja tidak mengejutkan saya.

Tolong bantu.

Adakah yang bisa membantu saya memaksakan pemutakhiran / bin / bash dan / usr / local / bin / bash dengan versi yang berfungsi? Dapatkah saya menggunakan file yang ditemukan di halaman ini https://launchpad.net/ubuntu/+source/bash/4.3-7ubuntu1.4 atau dapatkah saya membersihkan instalasi GNU ?? Juga, dapatkah bash disalin dari / bin ke / usr / local / bin / (atau sebaliknya) jika saya bisa mendapatkan hanya satu yang diperbaiki?

Saya membutuhkan jawaban Linux yang kuat dan bukan hanya beo apt-get yang terlihat di mana-mana. Saya sudah membaca semuanya atau menggantung semua yang bisa saya temukan. Jika Anda memiliki sumber daya, beri tahu saya. Anda mungkin telah sukses, tetapi saya tidak punya masalah selain itu .

Masuk ke obrolan baik-baik saja.

closetnoc
sumber
Berhenti menggunakan cgi-bin, gunakan SELinux, gunakan firewall, gunakan distribusi dengan dukungan profesional.
Cyrus
2
@Cyrus Sangat membantu. Saya menggunakan firewall. Saya tidak menggunakan CGI-BIN, tetapi saya membutuhkan CGI karena alasan lain. Naskah tidak harus rentan. Faktanya, SSH dan layanan lainnya rentan. Dan tidak. Saya tidak akan menginstal ulang OS baru pada server web yang menghadap publik hanya karena Anda merasa SELinux lebih baik. Saya seorang profesional. Saya butuh jawaban yang masuk akal dan tidak masuk akal.
closetnoc
Ada lebih banyak bug bash baru untuk Anda perbaiki hari-hari berikutnya: CVE-2014-7186, CVE-2014-7187 dan CVE-2014-6277.
Cyrus
3
SELinux bukan distribusi Linuxis a Linux kernel security module that provides the mechanism for supporting access control security policies, including United States Department of Defense–style mandatory access controls (MAC).
Cyrus

Jawaban:

2

Debian menyediakan sumber hulu yang asli , kemudian file kontrol dan modifikasi lokal. Dalam .orignama file mengatakan itu tidak dimodifikasi. Itu .dschanya metadata. Di dalam .debian.tar.gzfile Anda akan menemukan semua tambalan, termasuk perbaikan keamanan. Proses build mengambil hulu yang asli, menerapkan tambalan dan membangun paket dari itu. Debian (dan Ubuntu) sangat menentang penarikan versi baru dari hulu, karena versi baru menambahkan bug dan regresi baru, bukan hanya memperbaiki masalah yang diketahui.

Menjalankan sudo apt-get install --reinstall bashharus memperbaiki masalah - output dari apt-get memberitahu Anda itu tidak melakukan instalasi, dan melanjutkan untuk mencoba memperbarui konfigurasi.

Jika, dan hanya jika, apt-get itu gagal, maka Anda ingin:

  1. Pastikan Anda telah menginstal shell lain, sehingga kesalahan saat melepas bash tidak mengunci Anda dari sistem; instal kshatau zshdan pertimbangkan untuk sementara mengatur shell-login ke salah satu dari mereka, sehingga Anda memiliki jalan masuk.
  2. sudo dpkg --remove --force-remove-reinstreq bash
  3. sudo apt-get install bash

Kemudian, Anda ingin mulai menjadi lebih akrab dengan sistem halaman manual yang digunakan oleh Unix; yang manperintah teman Anda di sini. man apt-getdan man dpkgakan memberi Anda banyak dari apa yang Anda butuhkan di sini.

Phil P
sumber
Tolong maafkan saya. Saya telah semi-pensiun dari IT selama lebih dari satu dekade (saya tinggal di negara ini sekarang [tidak ada pekerjaan TI]) dan menghabiskan lebih banyak waktu di windows daripada yang saya inginkan ketika saya bekerja di IT ... (bukan ide saya). Saya sudah terbiasa dengan bash. Apakah ksh atau zsh cukup mirip sehingga saya harus bertahan? Apakah identik atau hampir sama? Saya bukan pengguna Linux yang kuat, tetapi umumnya cukup baik.
closetnoc
Mencoba untuk menginstal KSH dan ZSH - keduanya gagal untuk menginstal karena ketidakkonsistenan dalam menginstal bash. Tapi saya membuat pengguna lain dengan / usr / local / bin / bash, bukan / bin / bash. Saya menggunakan $ BASH_VERSION untuk menentukan versi tetapi dilaporkan 4.3.27 (1) -release. Saya berasumsi bahwa $ BASH_VERSION mengambil versi / bin / bash. Jika saya sudo / usr / local / bin / bash --versi saya mendapatkan 4.3.0 (5) -release. Saya menduga bahwa yang disebut akun pengguna masuk cadangan saya aman.
closetnoc
Saya juga mencoba menginstal launchpad bash-4.3 dan tampaknya menginstal ke - / usr / bin / install -c -m 0755 bash / usr / local / bin / bash . Itu adalah petunjuk! Bagaimana cara mengubah lokasi pemasangan? Saya ingin menginstal lebih dari salinan GNU di / bin. Lalu saya membayangkan menerapkan .debian.tar.gz? Tapi aku tidak tahu bagaimana. BTW - Saya hanya timur di belokan.
closetnoc
gunakan install (1) pada prompt perintah untuk menginstal .usr / local / bin / bash ke / bin / bash menggunakan baris perintah seperti yang Anda kutip
Phil P
Saya tidak yakin saya mengerti apa yang Anda katakan. / usr / local / bin / bash adalah versi bash yang oke tapi lama sementara / bin / bash adalah yang rusak. The install dari atas adalah dari make install output. Apakah Anda memberi tahu saya bahwa ada cara untuk memindahkan / menyalin / menginstal usr / local / bin / bash over / bin / bash? Bingung.
closetnoc
2

Menurut saya masalahnya adalah Anda tidak sengaja menginstal versi buruk dari bash /usr/localdan Anda sudah memiliki versi yang lebih baik di /bin. Jadi saya tidak bisa melihat mengapa jawabannya tidak adilrm /usr/local/bin/bash

OK, itu tidak akan menghilangkan semua file dukungan yang menyertainya, tetapi itu akan memastikan bahwa versi buruk tidak dapat berjalan.

Jika Anda masih memiliki direktori tempat Anda melakukan make installversi yang buruk, Anda dapat pergi ke sana dan lakukan make uninstalluntuk membersihkan semuanya. Jika Anda masih belum memilikinya ... Anda mungkin dapat menguraikan dan membangunnya lagi (pastikan untuk mencocokkan ./configureargumen yang Anda gunakan pertama kali) dan jalankan make uninstall.

make uninstallharus bekerja dengan program GNU apa pun yang masih memiliki direktori build asli Anda. Ada dalam standar pengkodean yang harus diikuti oleh semua paket sumber GNU.


sumber
1

Saya menemukan bahwa bash install Apt-get bekerja untuk menghilangkan bug

pengguna373746
sumber
Inilah yang terjadi yang mencegah apt-get dari bekerja. Salinan / bin / bash telah diperbarui, tetapi tidak dengan tambalan. Salinan / usr / local / bin / bash belum diperbarui sama sekali. Apt-get melihat / bin / bash dan mengatakan ini mutakhir dan tidak akan menginstal apa pun yang saya lakukan. Ini karena saya menggunakan paket Launchpad untuk menginstal 4.3 dari sumber sebelum repositori diperbarui. Saya telah mencoba banyak hal termasuk menginstal menggunakan dpkg dan sumbernya lagi. Saya terjebak dan tidak ada bantuan nyata di luar sana untuk situasi saya. Ini bisa dipecahkan tentu saja, saya hanya bukan linux yang kuat.
closetnoc
1

Tolong jangan pilih-pilih jawaban ini sampai bayaran telah dibayarkan - jika Anda melakukannya.

Pertama-tama saya ingin memberikan Terima kasih (!) Kepada mereka yang telah membantu saya dan kemudian menjelaskan apa yang terjadi dan apa yang tidak boleh dilakukan dan apa yang memperbaiki masalah ini. Jadi tolong tinggalkan aku. Saya melakukan ini untuk pengguna di masa mendatang.

Bersyukur: Saya ingin dengan rendah hati berterima kasih (!) Paul P (di sini) dan Manfred Hampl (m-hampl) dari Answers.launchpad.net dan mohon maaf karena agak tumpul. Keduanya membantu saya untuk menyelesaikan masalah ini. Saya membutuhkan seorang pahlawan dan keduanya berdiri untuk menjadi pahlawan saya. Saya Terima kasih Anda berdua dengan semua yang saya miliki.

Bahkan, saya Berterima kasih (!) Pada semua orang yang ikut. Ada kebijaksanaan dalam semua itu. Terutama, unkilbeeg, yang memberi petunjuk yang sangat berharga. Tentu saja saya tidak bisa melupakan Cyrus yang langsung melompat dan juga sangat berharga.

Apa yang Terjadi: Dalam kabut hal-hal, dan dengan ketidaktahuan saya yang signifikan dalam semua hal instal / perbarui dan sebagainya, saya mengikuti halaman, pendapat, dan tautan dan berpikir saya melakukan hal yang benar. Pada awalnya dan pada saat itu, apt-get tidak memiliki paket yang tersedia dan jadi saya mengarahkan kursor ke launchpad.net karena di situlah Ubuntu menunjuk saya.

Apa yang tidak saya sadari adalah apa yang harus dilakukan dengan sumber daya launchpad.net. Saya menginstal basis menginstal file .gz mengharapkan pembaruan di suatu tempat. Singkatnya, yang tidak saya sadari adalah bahwa ada file .deb di halaman lain yang seharusnya menjadi fokus saya. Jika Anda mencoba memperbarui sesuatu di Ubuntu menggunakan launchpad.net, cari file .deb yang sesuai.

Antara apt-get dan launchpad.net, saya berakhir dengan dua versi bash yang benar-benar membingungkan masalah ini.

Lebih buruk lagi, ada perbaikan GNU yang diusulkan, yang mungkin baik untuk beberapa, tetapi bash rusak di / bin. Alhamdulillah (!) Ada dua versi. Paul P membantu saya untuk memperbaikinya dengan mengeluarkan perintah instalasi untuk menimpa instalasi GNU.

Pada akhirnya: Baik Paul P dan Manfred Hampl berada di jalur yang sama ketika saya terpental di antara dua situs. Sayangnya, saya terlalu bodoh untuk Paul P dan saya minta maaf untuk itu.

Yang perlu diketahui adalah, $ PATH penting seperti yang ditunjukkan oleh unkilbeeg. Satu-satunya versi bash yang harus ada (dari pemahaman saya dan ingat saya bodoh), adalah satu di / bin dan satu-satunya instalasi yang harus dimiliki adalah yang Anda dapatkan melalui apt-get dan secara opsional file deb apa pun dari launchpad. bersih. Baik Paul P dan Manfred Hampl menunjukkan bahwa versi bash / usr / local / bin harus dihapus. Jadi itulah yang saya lakukan. Ternyata, sementara saya pikir saya menggunakan / usr / bin, karena itulah yang ditugaskan untuk pengguna saya, saya sebenarnya menggunakan / local / usr / bin karena itu pertama di jalur saya. Tangkapan yang bagus!

Ingat ini adalah saran Ubuntu. Itu mungkin tidak berlaku untuk semua orang.

SELALU (!) Gunakan apt-get terlebih dahulu jika Anda bisa. Kedua, gunakan launchpad.net dan cari file .deb yang tepat. Jangan melakukan hal lain. Walaupun sumber daya GNU sangat berharga, yang terbaik adalah membiarkan Ubuntu membuat paket untuk Anda dan cukup menunggu. Jangan perbarui Ubuntu dari sumber lain kecuali Anda benar-benar tahu apa yang Anda lakukan.

Bounty: Saya berharap saya bisa memberi semua orang bagian dari hadiah atau setidaknya membaginya antara Paul P dan Manfred Hampl tetapi itu tidak mungkin. Saya menandai Paul P sebagai jawaban yang diterima dan memintanya untuk memperbarui jawabannya untuk pembaca masa depan. Jika dia membutuhkan informasi dari saya, saya dengan senang hati akan memberikannya.

Terima kasih sekali lagi: Sekali lagi, saya berterima kasih (!) Setiap orang yang ikut ceramah. Cukup ceramah bisa jauh lebih penting daripada yang pernah Anda tahu. Petunjuk sederhana benar-benar dapat membantu seseorang yang sedang dalam kesulitan. Dukungan dari komunitas yang sangat peduli. Terima kasih lagi

closetnoc
sumber