Security

如何測試我的伺服器是否容易受到 ShellShock 漏洞的影響?

  • October 27, 2014

如何確保我的 Bash 安裝在更新後不再容易受到ShellShock錯誤的影響?

檢查 CVE-2014-6271 漏洞

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

它不應該回顯易受攻擊這個詞。


檢查 CVE-2014-7169 漏洞

(警告:如果您的漏洞失敗,它將創建或覆蓋一個名為的文件/tmp/echo,您可以在之後刪除該文件,並且需要在再次測試之前刪除)

cd /tmp; env X='() { (a)=>\' bash -c "echo date"; cat echo

它應該說日期這個詞,然後用類似的消息抱怨cat: echo: No such file or directory。相反,如果它告訴您目前的日期時間是什麼,那麼您的系統很容易受到攻擊。


檢查 CVE-2014-7186

bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo "CVE-2014-7186 vulnerable, redir_stack"

它不應該回顯文本CVE-2014-7186 vulnerable, redir_stack


檢查 CVE-2014-7187

(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"

它不應該回顯文本CVE-2014-7187 vulnerable, word_lineno


檢查 CVE-2014-6277。我不能 100% 確定這個,因為它似乎依賴於一個我不再可以訪問的部分修補的系統。

env HTTP_COOKIE="() { x() { _; }; x() { _; } <<`perl -e '{print "A"x1000}'`; }" bash -c "echo testing CVE-2014-6277"

這個的通過結果是它只回顯文本testing CVE-2014-6277。如果它執行 perl 或者它抱怨沒有安裝 perl,那肯定是失敗的。我不確定任何其他故障特徵,因為我不再有任何未打更新檔的系統。


檢查 CVE-2014-6278。同樣,我不能 100% 確定這個測試是否因為我不再有任何未打更新檔的系統。

env HTTP_COOKIE='() { _; } >_[$($())] { echo hi mom; id; }' bash -c "echo testing CVE-2014-6278"

此測試的通過是它應該只回顯文本testing CVE-2014-6278。如果你的迴聲hi mom在任何地方都肯定是失敗的。

引用自:https://serverfault.com/questions/631257