मैं यह सुनिश्चित कर सकता हूं कि अपडेट के बाद मेरा बैश इंस्टॉलेशन शेलशॉक बग के लिए असुरक्षित नहीं है ?
मैं यह सुनिश्चित कर सकता हूं कि अपडेट के बाद मेरा बैश इंस्टॉलेशन शेलशॉक बग के लिए असुरक्षित नहीं है ?
जवाबों:
CVE-2014-6271 भेद्यता के लिए जाँच करने के लिए
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
यह असुरक्षित शब्द को वापस नहीं करना चाहिए।
/tmp/echo
आप बाद में हटा सकते हैं, और दोबारा परीक्षण करने से पहले हटाने की आवश्यकता है)
cd /tmp; env X='() { (a)=>\' bash -c "echo date"; cat echo
यह शब्द की तारीख कहनी चाहिए, फिर जैसे संदेश के साथ शिकायत करनी चाहिए cat: echo: No such file or directory
। यदि इसके बजाय यह बताता है कि वर्तमान डेटाटाइम क्या है तो आपका सिस्टम असुरक्षित है।
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
।
(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
।
env HTTP_COOKIE="() { x() { _; }; x() { _; } <<`perl -e '{print "A"x1000}'`; }" bash -c "echo testing CVE-2014-6277"
इस पर एक पास परिणाम यह केवल पाठ वापस गूँज रहा है testing CVE-2014-6277
। यदि यह पर्ल चलता है या यदि यह शिकायत करता है कि पर्ल स्थापित नहीं है जो निश्चित रूप से विफल है। मुझे किसी अन्य विफलता विशेषताओं पर यकीन नहीं है क्योंकि मेरे पास अब कोई अप्रकाशित प्रणाली नहीं है।
env HTTP_COOKIE='() { _; } >_[$($())] { echo hi mom; id; }' bash -c "echo testing CVE-2014-6278"
इस परीक्षण के लिए एक पास यह है कि यह केवल पाठ को वापस प्रतिध्वनित करना चाहिए testing CVE-2014-6278
। अगर तुम्हारा hi mom
कहीं भी वापस जाना है जो निश्चित रूप से विफल है।
foo='() { echo not patched; }' bash -c foo
? जब तक फ़ंक्शन निर्यात को अलग नामस्थान में नहीं रखा जाता है, तब तक हम एक पार्सर बग से अगले तक चलना बंद नहीं करेंगे।
विशेष रूप से तैयार किए गए पर्यावरण चर का निर्यात करें, जिसका मूल्यांकन स्वतः बैश के कमजोर संस्करणों द्वारा किया जाएगा:
$ export testbug='() { :;}; echo VULNERABLE'
अब यह देखने के लिए एक साधारण प्रतिध्वनि निष्पादित करें कि क्या बैश $ टेस्टबग में कोड का मूल्यांकन करेगा, भले ही आपने उस चर का स्वयं उपयोग न किया हो:
$ bash -c "echo Hello"
VULNERABLE
Hello
यदि यह "VULNERABLE" स्ट्रिंग दिखाता है, तो उत्तर स्पष्ट है। अन्यथा, आपको चिंता करने की आवश्यकता नहीं है और बैश के आपके पैच किए गए संस्करण ठीक हैं।
कृपया ध्यान दें कि कई पैच प्रमुख लिनक्स वितरणों द्वारा जारी किए गए हैं और कभी-कभी वे पूरी तरह से भेद्यता को ठीक नहीं करते हैं। इस बग के लिए सुरक्षा सलाह और सीवीई प्रविष्टि की जांच करते रहें ।
export
) का उपयोग करके काम करना हो सकता है :env testbug='() { :;}; echo VULNERABLE' bash -c "echo Hello"
शेलशॉक व्यावहारिक रूप से बैश की एक से अधिक भेद्यताओं का एक संयोजन है , और इस समय इस बात की भी जानकारी नहीं है कि इस भेद्यता का शोषण करता है , इसलिए शेलशॉक एक ऐसा मुद्दा हो सकता है जो अभी भी खुला है, इस मुद्दे के बारे में रेडहैट के अपडेट के साथ एक धागा है ।
रेडहैट ने निम्नलिखित को पुनः शामिल किया:
चलाने के आदेश:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
यदि आउटपुट है:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
vulnerable
bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)'
bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable'
bash: error importing function definition for `BASH_FUNC_x'
test
आपके पास कोई फिक्स नहीं है।
यदि आउटपुट है:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
bash: error importing function definition for `BASH_FUNC_x()'
test
आपके पास CVE-2014-6271
ठीक है
यदि आपका आउटपुट है:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `BASH_FUNC_x'
test
आप कमजोर नहीं हैं।
शेलशॉक चेक का दूसरा हिस्सा CVE-2014-7169 भेद्यता जांच है यह सुनिश्चित करता है कि सिस्टम फ़ाइल डिज़ाइन समस्या से सुरक्षित है। यह जांचने के लिए कि क्या आपका बैश संस्करण CVE-2014-7169 के लिए असुरक्षित है, निम्नलिखित कमांड चलाएँ:
$ cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
bash: x: line 1: syntax error near unexpected token `='
bash: x: line 1: `'
bash: error importing function definition for `x'
Fri Sep 26 11:49:58 GMT 2014
यदि आपका सिस्टम असुरक्षित है, तो समय और तारीख प्रदर्शित होगी और / tmp / echo बनाया जाएगा।
यदि आपका सिस्टम असुरक्षित नहीं है, तो आपको आउटपुट समान दिखाई देगा:
$ cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
date
cat: /tmp/echo: No such file or directory
मैंने CGI लिपियों पर कमजोरियों के लिए अपने वेबसर्वर का परीक्षण करने के लिए ShellShocker नामक एक CLI उपयोगिता लिखी थी। अपनी साइट का परीक्षण करने के लिए, आप दौड़ेंगे:
python shellshocker.py <your-server-address>/<cgi-script-path>
अर्थात
python shellshocker.py http://example.com/cgi-bin/possibly-vulnerable-script.cgi
संपादित करें: इस उपयोगिता को नीचे ले जाया गया है, क्षमा करें: '(
आप इस ऑनलाइन परीक्षा में अपना CGI URL सबमिट कर सकते हैं: