2014年9月,爆發bash的漏洞shellshock (CVE-2014-6271),也不知此漏洞到底被偷偷應用多久了,趕快檢查看看。
唉!
幾乎所有舊LINUX Server全部中招,舊版的Linux做yum update bash自動更新又更新不到,只好手動更新bash囉。
本次更新了Fedora 7、Fedora 13、Redhat 4 Enterprise
測試
| env x='() { :;}; echo vulnerable' bash -c "echo this is a test" |
結果如出現
| vulnerable this is a test |
便需修補。
如出現
| this is a test |
則不需修補。
修補過程:
1.先看bash版本
| bash --version |
此例為3.1.7
2.看bash在哪?
| which -bash |
3.備份bash
| cp /bin/bash /bin/bash.old |
4.先到https://ftp.gnu.org/pub/gnu/bash/ ,再進入相對的bash版本目錄,此例為再進入bash-3.1-patches/ 目錄中。記錄最新的patch編號,此例為batch31-020。
5.下載bash到/root/的目錄,此例為下載bash-3.1.tar.gz
|
cd /root/
curl https://ftp.gnu.org/gnu/bash/bash-3.1.tar.gz | tar zxf -
|
以上做完,會建立出一目錄,此例為/root/bash-3.1/
| cd /root/bash-3.1 |
6.下載bash-multipatch.sh 到/root/bash-3.1目錄下,或自行編輯bash-multipatch.sh,修改bash-multipatch.sh。
| vi bash-multipatch.sh |
依bash版本(此例為3.1)及第四步驟查得的最新patch編號(此例為20),修改bash-multipatch.sh的version、nodotversion、lastpatch。修改此處目的是要自動從01開始到最新patch編號逐一進行patch動作。
儲存後,將bash-multipatch.sh設為執行檔
| chmod 755 /root/bash-3.1/bash-multipatch.sh |
7.進行bash-3.1的原始檔patch
| ./bash-multipatch.sh |
8.開始編譯
|
cd /root/bash-3.1/
./configure
make
make test
|
9.確認產生的bash
| ls -la bash |
10.複製bash
| sudo cp -f bash /bin/bash |
11.驗證
| bash -version |
| env x='() { :;}; echo vulnerable' bash -c "echo this is a test" |
結果出現
| this is a test |
成功
文章標籤
全站熱搜
