close
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 |
成功
全站熱搜