मैटासानो को कैसे हैक किया गया?


10

से: http://seclists.org/fulldisclos/2009/Jul/0388.html

अगर मैं इसे पदों से सबसे अच्छी तरह से समझता हूं: http://news.ycombinator.com/item?id=723798 मैटासानो लोगों ने sshd इंटरनेट को सुलभ छोड़ दिया है - इसके लिए कोई प्रस्तावित समाधान (प्रोग्रामिंग बिंदु से देखें)?


ठीक है, अगर लॉग सही हैं, तो यह उजागर सेवाओं का एक कॉन्फ़िगरेशन मुद्दा है और प्रोग्रामिंग के साथ कुछ भी नहीं करना है।
ब्लर्डार्ट

जवाबों:


34

मैटासानो को कैसे हैक किया गया?

पोस्ट में पूर्ण प्रकटीकरण की जानकारी से उत्तर देना असंभव है। हालांकि यह अनुमान लगाना हमेशा दिलचस्प होता है, क्योंकि वे थोड़ी जानकारी देते हैं -

# ./th3_f1n4l_s0lut10n www.matasano.com
[-] 69.61.87.163:22 से कनेक्ट
[/] वैध गैर-रूट उपयोक्ता की तलाश में .. adam
******** R3D4CT3D h4h4h4h4 ********

वे th3_f1n41_s01ut10nमाटासानो के सर्वर के खिलाफ अपना बाइनरी " " चलाते हैं , जो ssh पोर्ट से जुड़ता है। यह कुछ अज्ञात साधनों के माध्यम से एक वैध गैर-रूट उपयोगकर्ता पाता है, और बाकी आउटपुट को फिर से तैयार किया जाता है।

# ./3_f1n4l_s0lut10n -u adam -t 3 www.matasano.com
[*] 209.112.118.10:3338 पर कनेक्टबैक श्रोता ।।
[!] SSH2_MSG_SERVICE_ACCEPT [OpenSSH_4.5p1, OpenSSL 0.9.8g 19 अक्टूबर 2007] 

बाइनरी को फिर से पाया उपयोगकर्ता नाम का उपयोग करके चलाया जाता है, जो लॉग इन करता है और पोर्ट 3338 पर अपने सर्वर से जुड़ता है (आशा है कि यह उनके कंप्यूटर में पंजीकृत नहीं है ...)।

adam_at_www: ~ $ uname -a
लिनक्स www 2.6.20.1-1-686 # 1 एसएमपी सन मार्च 4 12:44:55 यूटीसी 2007 i686 जीएनयू / लिनक्स
**** h4h4h4hh4h4h4 l3tz us3 m0r3! 0D4Y! H4H4H4H4H4H4H4 ****

वे इस कर्नेल के खिलाफ 0-दिन लगा सकते हैं, जो इस कंपनी के स्टॉक-इन-ट्रेड पर विचार करने पर काफी पुराना है।

adam_at_www: ~ $ cd / tmp
*********** B0R1NG ***********
root_at_www: ~ # बिल्ली / आदि / छाया 

वूप्स - अचानक उपयोगकर्ता अब जड़ है। उनके पास / tmp में एक स्थानीय विशेषाधिकार वृद्धि का शोषण होता है, जिसे वे जिस दिन संदर्भित करते हैं, वह 0-दिन हो सकता है।

तो यहाँ पर कम से कम दो कारनामे चल रहे हैं - OpenSSH सिस्टम पर एक वैध नॉन-रूट उपयोगकर्ता प्राप्त करने के लिए शोषण करता है, और उस उपयोगकर्ता के रूप में लॉगिन करता है, और फिर स्थानीय विशेषाधिकार बढ़ जाता है।

यह मानते हुए कि OpenSSH में 4.5 संस्करण के बाद से कुछ ज्ञात सुरक्षा मुद्दे हैं:

से OpenSSH की सुरक्षा पेज :

  • संस्करण 5.2 से पहले OpenSSH CPNI-957037 "प्लेनटेक्स रिकवरी अटैक अगेंस्ट एसएसएच" में वर्णित प्रोटोकॉल कमजोरी के लिए कमजोर है। हालांकि, उपलब्ध सीमित जानकारी के आधार पर ऐसा प्रतीत होता है कि यह वर्णित हमला ज्यादातर परिस्थितियों में संभव नहीं है। अधिक जानकारी के लिए कृपया cbc.adv सलाहकार और OpenSSH 5.2 रिलीज़ नोट देखें।
  • OpenSSH 4.9 और नए ~/.ssh/rcसत्रों के लिए निष्पादित नहीं करते हैं जिनकी कमान sshd_config (5) ForceCommand निर्देश के साथ ओवरराइड की गई है। यह एक प्रलेखित, लेकिन असुरक्षित व्यवहार (ओपनएसएसएच 4.9 जारी नोट में वर्णित) था।
  • OpenSSH 4.7 और जारी नए विश्वसनीय X11 प्रमाणीकरण कुकीज़ बनाने के लिए वापस नहीं आते हैं जब अविश्वसनीय कुकी पीढ़ी विफल हो जाती है (उदाहरण के लिए जानबूझकर संसाधन थकावट के कारण), जैसा कि ओपनएसएसएच 4.7 रिलीज नोट में वर्णित है।

मुझे लगता है कि यह पुराने लिनक्स कर्नेल और पुराने SSH डेमॉन ने उनके लिए किया था। इसके अलावा, यह उनके www सर्वर पर चल रहा था, जो कि इंटरनेट के लिए उपलब्ध है, जो कि मेरी राय में करने के लिए काफी आश्वस्त करने वाली बात है। स्पष्ट रूप से टूट गए लोग उन्हें शर्मिंदा करना चाहते थे।

इन हमलों को कैसे रोका जाए?

यह सक्रिय प्रशासन द्वारा रोका जा सकता था - यह सुनिश्चित करता है कि किसी भी इंटरनेट-फेसिंग सेवाओं को पैच किया जाए, और उन लोगों की संख्या को सीमित किया जाए जो लोगों को कहीं से भी कनेक्ट करने की अनुमति देने के बजाय कनेक्ट कर सकते हैं। इस कड़ी में उस पाठ को समेटा गया है जो सिस्टम प्रशासन को सुरक्षित रखता है, और व्यवसाय से समर्पण की आवश्यकता होती है ताकि आईटी को चीजों को रखने के लिए समय प्रदान किया जा सके - वास्तविकता में, ऐसा कुछ नहीं जो आसानी से हो, कम से कम छोटी कंपनियों में।

बेल्ट-एंड-ब्रेसेस दृष्टिकोण का उपयोग करना सबसे अच्छा है - सार्वजनिक-कुंजी प्रमाणीकरण का उपयोग करना, शश डेमॉन पर श्वेत सूची बनाना, दो-कारक प्रमाणीकरण, आईपी प्रतिबंध और / या वीपीएन के पीछे सब कुछ डालकर इसे बंद करने के लिए संभव मार्ग हैं।

मुझे लगता है कि मैं जानता हूं कि मैं कल काम करूंगा। :)


2
OpenSSH के माध्यम से लॉग इन करने में सक्षम होने के लिए एक वैध सार्वजनिक कुंजी की आवश्यकता है। मूर्ख प्रमाण नहीं है, लेकिन मदद करता है। अच्छा पोस्ट btw।
एंड्रियॉइड

अच्छी बात है, जोड़ा :)
Cawflands

1
यह इंगित करने योग्य है कि ओपनएसएसएच संस्करण स्ट्रिंग एक विश्वसनीय मार्गदर्शिका से बहुत दूर है, चाहे विभिन्न लाइनक्स संस्करणों के बैकफ़िंग फिक्सिंग के कारण, वुनरएबिलिटीज़ को पैच किया गया हो। इसके अलावा, यहां कोई भी बग किसी उपयोगकर्ता को कुछ गंभीर अन्य ब्रीचर्स के बिना लॉगिन करने की अनुमति देने की संभावना नहीं है।
सियान जू

3

लोग उस पर FUD बनाना पसंद करते हैं, लेकिन ऐसा लगता है कि वे जानते थे कि उपयोगकर्ता एडाम पहले से ही था और अपना पासवर्ड भी जानता था (शायद जानवर बल या अन्य तरीकों के माध्यम से)। हालांकि, वे शांत दिखना चाहते हैं और इस उपद्रव को पैदा करते हैं।

एक और बात ध्यान देने योग्य है कि उपयोगकर्ता adam ने उस बॉक्स को एक वर्ष से अधिक समय तक लॉग इन नहीं किया है:

(पिछलेलॉग का उत्पादन)

 adam             pts/1    ool-4350ab48.dyn Sat Jul 26 20:45:18 -0400 2008

इसलिए उसने शायद उस पासवर्ड (शायद एक खराब) को थोड़ी देर के लिए रखा।

* यदि उनके पास वास्तव में SSH के माध्यम से उपयोगकर्ता नाम खोजने का एक उपकरण है, तो वे रिमोट एक्सेस हासिल करने के लिए अन्य सभी उपयोगकर्ताओं का उपयोग कर सकते थे, लेकिन उन्होंने उस बॉक्स में सबसे आम उपयोगकर्ता नाम का उपयोग किया (आसानी से अनुमान लगाने के लिए)।


2

आप प्रोग्रामिंग के दृष्टिकोण से इसे क्यों हल करेंगे?

आपको इसके बजाय इसे स्मार्ट-सर्वर-व्यवस्थापक दृष्टिकोण से हल करना चाहिए। आपके द्वारा पोस्ट किए गए लिंक की टिप्पणियों में कुछ शानदार सुझाव हैं, जैसे कि एक श्वेतसूची का उपयोग करना।

मैं यह भी जोड़ना चाहूंगा, क्योंकि आप यहां पूछ रहे हैं, आप सबसे अधिक संभावना है कि कोई सुरक्षा विशेषज्ञ नहीं है, और आप जो कुछ भी लिखने के लिए सोच सकते हैं वह केवल अधिक छेद जोड़ देगा। यह वास्तव में एक प्रोग्रामिंग सवाल नहीं है।


एक सुझाव एक सफेद सूची में था?

जो अभी भी एक प्रोग्रामिंग मुद्दा नहीं है, यह विन्यास मुद्दा है
बजे


@ मैं किसी भी तरह से एक सुरक्षा विशेषज्ञ नहीं हूँ - लेकिन इसे इंगित करने के लिए धन्यवाद - यही कारण है कि मैं ये प्रश्न पूछता हूं, इसलिए मैं सीख सकता हूं - और मुझे कुछ के बारे में लिखने से रोकने के लिए धन्यवाद, जिसके बारे में मैं सीखना चाहूंगा - चाहे यह एक प्रोग्रामिंग है या नहीं एक प्रचंड सवाल है - मैं इसका जवाब देने के लिए सुरक्षा विशेषज्ञों को छोड़ दूंगा - आपने शामिल किया (मैं मान रहा हूं कि आप अपनी शैक्षिक टिप्पणी के आधार पर एक हैं)
user14898

2

अपने सॉफ़्टवेयर को 0-दिन के हमलों से सुरक्षित रखें ... जो असंभव है।

हो सकता है कि एक अच्छा तरीका यह दावा करना हो कि आपका सॉफ्टवेयर अप्राप्य है, जिससे व्हाइटहेट्स को बाहर निकालने की कोशिश की जाएगी और कम छिद्रों को छोड़कर सबकुछ पूरा हो जाएगा। ओरेकल 10 का यह दावा था, फिर अगले दिन जैसे 9 नए छेद पाए गए। अब यह काफी सुरक्षित है।

सबसे शायद, हैकर ने पूरी तरह से अच्छे सॉफ़्टवेयर के कॉन्फ़िगरेशन का दुरुपयोग किया


हमें यकीन है कि यह एक शून्य दिन भी था?
जोश ब्राउनर

2

यह मेरे दिमाग को उड़ा देता है कि उनके पास उस मशीन पर गोले के साथ कई उपयोगकर्ता थे। यह सुनिश्चित करने के लिए कि वे कैसे स्वामित्व में हैं, बाकी सब कुछ विचलित करने के लिए लाल हेरिंग है। उनमें से एक को अपने ssh क्लाइंट को किसी अन्य शेल मशीन पर सबसे अधिक संभावना थी और फिर यह गेम खत्म हो गया। सभी को खोल के खाते देना और sshd दुनिया को सुलभ बनाना सिर्फ आलसी और मूर्खता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.