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/
以上做完,會建立出一目錄,此例為/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
成功
arrow
arrow
    全站熱搜

    adamschen9921 發表在 痞客邦 留言(0) 人氣()