नेटवर्क फाइल सिस्टम के साथ कोरिया विश्वविद्यालय का दौरा कैसे करें


प्रस्तावना


2000 के दशक के प्रारंभ में एक बार, कई लोगों ने इस तथ्य का मनोरंजन किया था कि वे अपने प्रदाता के नेटवर्क को नियमित रूप से "स्कैन" करते हैं, और कभी-कभी इससे भी अधिक दूर के लक्ष्य, पढ़ने (लिखने) के लिए उपलब्ध उन (SMB) पर विंडोज मशीनों और संसाधनों का पता लगाने के लिए। खोज प्रक्रिया आदिम थी: आईपी पते या एक नेटवर्क मास्क की एक श्रृंखला निर्धारित की गई थी और विभिन्न उपकरणों के माध्यम से - LANguard नेटवर्क स्कैनर, xIntruder और इसी तरह के पते स्कैन किए गए थे और सर्वर स्थित थे। अक्सर पता चलने वाली मशीनों पर यह पढ़ने के लिए उपलब्ध होता है, लेखन के लिए कम, विभिन्न नेटवर्क संसाधन (डिस्क, प्रिंटर, निर्देशिका)। एक अज्ञात सत्र के माध्यम से, आईपीसी $ और उपयोगकर्ता "अतिथि" के माध्यम से, मशीन पर संसाधनों को स्थानांतरित करना संभव था, कभी-कभी पासवर्ड के बिना "प्रशासक" के सदस्य होते थे, और कभी-कभी, पता चला मशीनों पर अधिक "सक्रिय" प्रभाव के बाद, विंडोज एनटी 4.0 या विंडोज पर चलने वाले सर्वरों को ढूंढना संभव था। 2000 सर्वर। अगर भाग्य ने तत्कालीन व्यापक विंडोज 98 के साथ मशीनों को खोजने का काम किया, तो यह आसान हो गया - उन दिनों में निर्दिष्ट ओएस में कई अलग-अलग कमजोरियां थीं, जिसमें एसएमबी के साथ काम करने का कार्यान्वयन भी शामिल था, संसाधन तक पहुंचने के लिए ब्रूटफोर्स को डायल-अप पर भी मिनटों में किया गया था। कनेक्शन। जो लोग पुराने दिनों में डुबकी लगाना चाहते हैं, उनके लिए विंडोज 9x - हैकिंग एक्सपोज्ड: नेटवर्क सिक्योरिटी सीक्रेट्स एंड सॉल्यूशंस के बारे में विस्तार से लिखा गया है अध्याय 4: हैकिंग विंडोज 95/98 और मी । लेकिन बाकी लेख उस बारे में नहीं है।


मैंने कभी नहीं सोचा होगा कि 2019 में ऐसा "मनोरंजन" संभव है। समानता सभी उत्सुक लोगों के लिए अन्य लोगों के उपलब्ध संसाधनों को खोजने की आसानी में निहित है। इसके अलावा, हम पिछले 2 वर्षों में लोकप्रिय एक प्रवृत्ति पर ध्यान केंद्रित नहीं करेंगे - MongoDB या एलिटिक्सखोज डेटाबेस की खोज एक्सेस के लिए खुली है - लेकिन थोड़ी और डाउन-टू-अर्थ सेवा पर।


इसके अलावा, मैं पूरी प्रक्रिया, उनके नैतिक मानदंड का मूल्यांकन नहीं करने का प्रस्ताव करता हूं, मैं ध्यान देता हूं कि यह पोस्ट उन कार्यों के लिए कॉल नहीं है जिन्हें रूसी संघ के आपराधिक संहिता के कुछ लेखों या अन्य राज्यों के कानूनों से समान मानदंडों के लिए जिम्मेदार ठहराया जा सकता है।


नेटवर्क फाइल सिस्टम (NFS)


नेटवर्क फाइल सिस्टम (एनएफएस) - फाइल सिस्टम के लिए नेटवर्क एक्सेस के लिए एक प्रोटोकॉल, आपको नेटवर्क के माध्यम से दूरस्थ फ़ाइल सिस्टम को कनेक्ट करने (माउंट) करने की अनुमति देता है, उपयोगकर्ताओं को फाइलों तक पहुंच प्रदान करता है, आपको स्थानीय लोगों के साथ इन फाइलों को उसी तरह से काम करने की अनुमति देता है।


बाजार में उपलब्ध अधिकांश नेटवर्क-संलग्न भंडारण (एनएएस), निश्चित रूप से, एनएफएस का समर्थन करते हैं, और स्थानीय संसाधनों के साथ-साथ किसी भी ऑपरेटिंग सिस्टम के साथ सर्वर प्रदान करते हैं जिसमें एनएफएस सेवा को तैनात करना संभव है।


किसी भी उबंटू ओएस और आईपी पते 192.168.1.1 से सर्वर संसाधनों तक पहुँचने की सेटिंग्स / etc / निर्यात फ़ाइल में निहित हैं और फॉर्म की प्रविष्टियाँ हैं:


  • / data / place1 192.168.1.0/255.255.255.0(rw,no_subtree_check,nohide,async) 192.168.101.0/255.255.255.0 या(ww,no_subtree_check,nohide,async)
  • data / place2 192.168.1.0/255.255.255.0(rw,no_subtree_check,nohide,async) 192.168.101.0/255.255.255.0(rr.no_subtree_check,nohide,async)

इस स्थिति में, सर्वर और उसके संसाधन / डेटा / प्लेस 1 के लिए एनएफएस एक्सेस नेटवर्क 192.168.1.0/255.255.255.0, 192.168.101.0/255.255.25.0 नेटवर्क से आईपी पते वाले ग्राहकों के लिए संभव है।


किसी स्थानीय निर्देशिका में दूरस्थ संसाधन को माउंट करें, उदाहरण के लिए, / होम / उपयोगकर्ता / उदाहरण, यदि क्लाइंट एक अनुमत सबनेट पर है, और NFS के लिए क्लाइंट स्थापित है, तो यह (Ubuntu) कमांड के माध्यम से संभव है:
mount -t nfs 192.168.1.1:/data/place1 /home/user/example


यदि इसके बजाय आईपी-पते * या (सभी) को इंगित किया जाता है, तो अक्सर, कोई भी ग्राहक अपने सिस्टम में दूरस्थ संसाधन को माउंट कर सकता है।


उपयोगकर्ता (उदाहरण के लिए, उबंटू के तहत) को बस टर्मिनल में टाइप करने की जरूरत है: शो-एम-आईपी-लक्ष्य और सर्वर पर उपलब्ध संसाधनों (सर्वर की निर्यात सूची) के बारे में जानकारी प्राप्त करें।


उदाहरण के लिए:
showmount -e 81.24..
Export list for 81.24..:
/home/admin 192.168.52.1/24


इस प्रकार, निम्न परिदृश्य बनता है: NFS चलाने वाले सर्वर का पता लगाने के लिए, सर्वर पर उपलब्ध संसाधनों का निर्धारण करना, परिणाम को एकल आउटपुट रूप में समेकित करना और फिर स्थिति के अनुसार आगे बढ़ना।


संसाधनों पर क्या हो सकता है - जाहिर है, कुछ भी:


  • इंटरनेट उपयोगकर्ताओं की व्यक्तिगत फाइलें, उदाहरण के लिए, "ओपन" एनएएस उपकरणों के मामलों में;
  • संपूर्ण उद्यमों, डेटाबेस, डेटाबेस अभिलेखागार की फ़ाइलों के साथ निर्देशिकाएं;
  • अक्सर निर्देशिकाओं के साथ पते / घर / * (कभी-कभी चाबियाँ और। में कुंजी के साथ);
  • वीडियो निगरानी प्रणाली की फाइलों के साथ निर्देशिकाएं;
  • अन्य ...

आईपी ​​पते प्राप्त करना


वैश्विक इंटरनेट पर एनएफएस के साथ सर्वरों की खोज के संबंध में, 2 तरीके हैं: स्वतंत्र रूप से, विभिन्न उपकरणों का उपयोग करके, और तीसरे पक्ष के स्कैन परिणामों, डेटाबेस और सेवाओं के लिए तैयार। वास्तव में, यह सब आईपी पते की एक सूची प्राप्त करने के लिए नीचे आता है। स्थानीय नेटवर्क में, मुझे लगता है कि विकल्प स्पष्ट है - स्वतंत्र रूप से कार्य करें।


खुले टीसीपी पोर्ट 111, 2049 एनएफएस सेवा के कामकाज के सबूत के रूप में काम कर सकते हैं।
स्वतंत्र रूप से सर्वर आईपी पतों की एक सूची प्राप्त करने के लिए, यह संकेतित खुले बंदरगाहों की उपस्थिति के लिए पतों की सीमा या पूरे सबनेट को स्कैन करने के लिए पर्याप्त है। कोई भी उपकरण इसके लिए उपयुक्त है: नैम्प, मैस्कैन, और इसी तरह।


उदाहरण के लिए, कमांड masscan -p111,2049 200.26.1XX.0/24 —rate=10000 नेटवर्क 200.26.1XX.0 / 24 खुले बंदरगाहों 111, 2049 के लिए कई सेकंड के लिए स्कैन किया जाएगा:
Scanning 256 hosts [2 ports/host]
Discovered open port 2049/tcp on 200.26.1XX.28
Discovered open port 111/tcp on 200.26.1XX.15
Discovered open port 111/tcp on 200.26.1XX.20
Discovered open port 111/tcp on 200.26.1XX.28
आगे के प्रत्येक आईपी पते पर कमांड लागू करना संभव है:
showmount --no-headers -e 200.26.1XX.28
परिणाम:
/usr/common *
जाहिर है, इंटरनेट स्पेस के लाखों आईपी पते को स्वयं स्कैन करना संभव है, लेकिन यह सबसे तेज़ तरीका नहीं है, और फिर अद्भुत शोडान सेवा उप-कार्य का समाधान हो सकती है, निश्चित रूप से अन्य हैं, लेकिन यह सबसे आसान सिंटैक्स और एपीआई है । सेवा की क्षमताओं के विवरण में तल्लीन करना लेख का उद्देश्य नहीं है। संक्षेप में - सेवा इंटरनेट से जुड़े उपकरणों के लिए एक उन्नत खोज प्रदान करती है। खोज मानदंड नेटवर्क पहचानकर्ता और अन्य मेटाडेटा हो सकते हैं: प्रमाणपत्रों की क्रम संख्या और पसंद। Shodan में लक्षित खोज के लिए कई विशेषताएं हैं, लेकिन मुझे NFS पर एक अलग खोज नहीं मिली, उदाहरण के लिए, उत्पाद के नाम के साथ एक उत्पाद मानदंड है: मंगोलोड, लोचदार या अपाचे। इसलिए, वेब एनएफएस के माध्यम से निम्नलिखित प्रश्नों के लिए खोज करना संभव है: nfs, tcp 2049, tcp 111, Portmap: 2049 और इसी तरह, जैसे आप चाहते हैं।



या Shodan क्लाइंट (CLI) स्थापित करें, अपने KEY API को सेवा में आरंभ करें और कमांड लाइन से खोज को आमंत्रित करें, उदाहरण के लिए:


  1. shodan search --fields ip_str, port Portmap: 2049
  2. shodan search --fields ip_str, port --separator, nfs
    परिणाम:
    139.196.154.23,111,
    198.27.116.37,111,
    95.211.192.96,111,
    80.23.66.122,111,
    210.116.82.97,111,
    192.198.82.3,111,
    165.227.67.242,111,
    116.12.48.9,111,
    85.34.250.102,111,
    182.75.249.197,111,
    192.151.212.175,111,
    119.216.107.127,111,
    217.59.68.2,111,
    178.159.12.97,111,
    ...

तो, कैसे एक वैध एनएफएस सेवा के साथ उपकरणों की आईपी पते की सूची प्राप्त करने के लिए समझ में आता है।


विशिष्ट सर्वर पर उपलब्ध NFS संसाधनों के बारे में जानकारी प्राप्त करें।


इस समस्या को हल करने के कई तरीके हैं: बैश स्क्रिप्ट लिखें, कॉल करने के लिए कमांड की एक श्रृंखला से एक मुश्किल पाइपलाइन को व्यवस्थित करें, जिसे शो-कॉल के लिए कॉल किया जाए, और अन्य विकल्प - जो पसंद करते हैं।


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


मुझे लगता है कि एक सवाल उठ सकता है: यह इतना मुश्किल क्यों है, पायथन में क्यों?


क्योंकि, हैबर पर अपने पिछले लेख में, मैं लैम्पीयर टूल का उपयोग करूंगा, जिसके लिए 26 फरवरी को उन्होंने एक एपीआई प्रकाशित किया था जो आपको पायथन में प्लेटफॉर्म पर अपने मॉड्यूल लिखने की अनुमति देता है।


Lampyre

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


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


और यहाँ कोरिया


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


Shodan द्वारा, क्वेरी में खोज: nfs , देश में: कोरिया गणराज्य का कोड, kr



परिणाम आने में लंबा नहीं था (नीचे की छवि में, सामान्य योजना का केवल एक हिस्सा)।



होस्ट सूची:


  • psi.kaist.ac.kr
  • hulk.kaist.ac.kr
  • messi.kaist.ac.kr
  • marvel.kaist.ac.kr
  • kaist.ac.kr
  • ai1.kaist.ac.kr
  • jarvis3.kaist.ac.kr
  • baraddur.kaist.ac.kr
  • rho.kaist.ac.kr
  • jarvis.kaist.ac.kr

उन सभी को, जैसा कि ग्राफ़ और नामों दोनों में देखा जा सकता है, AS1781 के रूप में सूचीबद्ध हैं - कोरिया एडवांस्ड इंस्टीट्यूट ऑफ साइंस एंड टेक्नोलॉजी



कोरिया एडवांस्ड टेक्नोलॉजी इंस्टीट्यूट - दक्षिण कोरिया का प्रमुख शैक्षणिक और अनुसंधान विश्वविद्यालय, जो दक्षिण कोरिया में स्थित है, दक्षिण कोरिया में राष्ट्रीय रैंकिंग की दूसरी पंक्ति में है। विश्वविद्यालय दक्षिण कोरिया के शीर्ष शिक्षण संस्थानों में लगातार 5% शामिल है।


हम लिखित मॉड्यूल के लिए इनपुट तर्कों के रूप में निर्दिष्ट आईपी पते का उपयोग करते हैं "अन्वेषण: एनएफएस (एसएसएच)" और परिणामस्वरूप:



मैंने एक तालिका में परिणामों के प्रदर्शन के लिए (लेख में बाद में रेखांकन के निर्माण के लिए योजनाओं और सिद्धांतों के बारे में) ऐसी योजना तैयार की।



एक Shodan स्कीमा के साथ संयोजन का परिणाम है



ग्राफ़ के कोने और संबंधों का विश्लेषण करते समय, यह स्पष्ट हो जाता है कि कौन से पते / घर संसाधन उपलब्ध हैं, सभी के लिए सुलभ (*)।


बेहतर दृश्य धारणा के लिए, ग्राफ ऑब्जेक्ट्स और आरेख की अन्य सेटिंग्स के गुणों को बदलें:



बेशक, मैंने अपने एक सर्वर पर संसाधनों के बढ़ते हिस्से को लिया और अध्ययन करना शुरू किया। हर जगह यह लगभग एक ही बात थी - उपयोगकर्ता निर्देशिका: asm, हू, hyshin, jay, jiwon, jkhee110, jokangjin, kmh603, ksm782, lee, linus, खो + पाया, marvel_guest, पाई, qwe, स्कलौड, सोकमिन, सॉगम योज्ज, यशा, झिननिया 7।


फ़ाइलों के साथ लगभग सभी निर्देशिकाओं को पढ़ा और लिखा गया था। .Ssh में कुछ उपयोगकर्ताओं के पास अधिकृत_की फाइलें थीं, जिनके पास लिखने की पहुंच थी।


मैंने अपनी कुंजी उत्पन्न की, इसे उपयोगकर्ताओं में से एक के अधिकृत_कीप में कॉपी किया और 2222 पोर्ट पर ssh के माध्यम से सर्वर से कनेक्ट किया, मुझे Shodan के डेटा से पोर्ट नंबर प्राप्त हुआ।


उपयोगकर्ता, नेटवर्क सेटिंग्स:



नेटवर्क पर होस्ट:



फ़ाइल / आदि / निर्यात और ड्राइव:



फ़ाइल / आदि / fstab और OS:



मेरा मानना ​​है कि यह स्नातक छात्रों या छात्रों के लिए कुछ विभाग का एक नेटवर्क है, और वे सर्वरों पर कुछ प्रकार की गणना करते हैं, क्योंकि कई अलग-अलग पायथन स्रोत हैं, GPU और एनाकोंडा वितरण से संबंधित कुछ, और इसी तरह। मैंने सब कुछ अध्ययन नहीं किया और सोचने लगा कि इस सब के साथ क्या करना है, ज़ाहिर है, मैं सबसे अधिक भाग के नोड्स के लिए "चल सकता हूं" (शायद मैं कुछ और अधिक विदेशी सोच सकता था ) , लेकिन इससे मुझे बहुत रुचि नहीं हुई। और मैंने निम्नलिखित सोचा: चूंकि संस्थान वैज्ञानिक और उन्नत है, इसलिए सूचना सुरक्षा के क्षेत्र होने चाहिए। वास्तव में, यहां तक ​​कि एक संपूर्ण लैब: सॉफ्टवेयर सुरक्षा लैब और इसका प्रमुख, सांग किल चा
मैंने उसे एक पत्र लिखने का फैसला किया, और इसलिए वे कहते हैं, इंटरनेट पर सभी को एनएफएस संसाधनों को पढ़ने और लिखने की अनुमति से जोड़ने की अनुमति देना बहुत खतरनाक है, जाहिर है आपको कुछ ठीक करने, स्क्रीनशॉट संलग्न करने और भेजने की आवश्यकता है।


पत्र १
प्रिय सांग किल चा,
मैं आपको लिख रहा हूं, जैसा कि kaist.ac.kr वेबसाइट पर आप KAIST में अग्रणी सॉफ्टसेक लैब के रूप में संदर्भित हैं, और मेरा मानना ​​है कि निम्नलिखित मामला आपकी चिंता का विषय है।
सूचनात्मक सुरक्षा के क्षेत्र में हमारे शोध के दौरान, अनायास ही और संयोग से निम्नलिखित सर्वरों का पता चला:
143.248.247.131 - psi.kaist.ac.kr
143.248.247.4 - jarvis3.kaist.ac.kr
143,248,247,169
143,248,247,223
143,248,247,235
143.248.247.251 - marvel.kaist.ac.kr
143.248.247.239 - jarvis.kaist.ac.kr
143.248.247.194 - hulk.kaist.ac.kr
143.248.2.23
इन सभी सर्वरों में एनएफएस (नेटवर्क फाइल सिस्टम) सेवा होती है और चलती है।
इन सर्वरों तक पहुंच का सुरक्षा स्तर अविश्वसनीय रूप से कम है।
अपनी सभी सामग्री के साथ इन सर्वरों की होम निर्देशिकाओं का उपयोग इंटरनेट द्वारा किसी को भी एक्सेस किया जा सकता है।
उदाहरण के लिए, सेटिंग्स nfs - / etc / निर्यात 143.248.247.251 -> / घर या 143.248.247.239 के लिए
शो-टाइम 143.248.247.239
143.248.247.239 के लिए निर्यात सूची:
/ डेटा
/ घर / तालियाँ
अधिकांश सर्वरों की उपयोगकर्ता निर्देशिकाएं पढ़ने और लिखने के लिए सुलभ हैं, जिनमें उनकी उप निर्देशिकाएं भी शामिल हैं, जिनमें सार्वजनिक और निजी ssh एक्सेस कुंजियाँ होती हैं।
फ़ाइलों को संपादित करने से नई एक्सेस कुंजियाँ जोड़ने और सर्वर के लिए दूरस्थ ssh एक्सेस प्राप्त करने की अनुमति मिलती है और फिर - कुछ आंतरिक KAIST सबनेट पर।
इस तरह के उथले पहुंच के परीक्षण के लिए, कोई संशोधन नहीं किया गया, कोई डेटा संपादित नहीं किया गया, कॉपी किया गया या हटा दिया गया, बुनियादी ढांचे को कोई नुकसान नहीं हुआ।
कृपया किसी प्रकार की पावती और प्रमाण के लिए संलग्न फाइलें देखें।
मेरी कोई आवश्यकता या दावा नहीं है, लेकिन मैं आपके नेटवर्क सुरक्षा स्तर को बढ़ाने की सलाह देता हूं।

जल्द ही उन्होंने मुझे जवाब दिया, मुफ्त अनुवाद: धन्यवाद, हम किसी को भी भेजेंगे।


उत्तर 1
मुझे बताने के लिए धन्यवाद! मैं इस ईमेल को हमारे नेटवर्क और सुरक्षा के प्रभारी किसी को भेज दूंगा। बेस्ट, सांग किला

इस लेख को प्रकाशित करने से पहले, मैंने जाँच करने का निर्णय लिया, देखें कि क्या बदल गया है:



दरअसल, आंतरिक नेटवर्क पर केवल मशीनों से संसाधनों तक पहुंच की अनुमति दी गई थी, लेकिन सर्वर के बारे में 143.248.247.251। तालिका में प्रविष्टियों के अनुसार, एनएफएस सेटिंग्स में मेजबान संसाधन * रहते हैं। मैंने तालिका के "मैपिंग" के एक और संस्करण को एक ग्राफ में स्केच किया:



"मैपिंग" के परिवर्तन क्या हैं: एनएफएस ऑब्जेक्ट अब 2 समान विशेषताओं - आईपी और एनएफएस पथ के साथ "सरेस से जोड़ा हुआ" हैं। स्टेटस ऑब्जेक्ट केवल तब बनाया जाता है जब मूल्य विशेषता, जिसमें कच्चे रिकॉर्ड कॉलम की सामग्री होती है, में मान " * " होता है
और टेबल पर ग्राफ एक नए रूप में दिखाई देता है:



अब, वैसे, आंतरिक नेटवर्क का पता स्पष्ट रूप से दिखाई देने लगा है, और 143.248.247.251 सर्वर पर उपयोगकर्ता निर्देशिकाओं, फ़ाइलों की सामग्री को संपादित करना भी संभव है; सिद्धांत रूप में, संभावनाएं पहले की तरह ही बनी रहीं।


और इसलिए मैं इसी तरह की पहली सामग्री के साथ मिस्टर सांग चा चा को एक दूसरा पत्र लिख रहा हूं, यह देखते हुए कि कुछ घटनाओं को लोकप्रिय habr.com संसाधन पर एक लेख में प्रस्तुत किया जाएगा:


पत्र २
प्रिय संग किल चा, आपका दिन शुभ हो।
मैंने निर्णय लिया कि अगर मेरे ई-मेल के बाद कुछ भी बदला और वास्तव में, एक्सेस सेटिंग्स बदल दी गई हैं। लेकिन स्पष्ट रूप से सुरक्षा इंजीनियरों ने 143.248.247.251 आईपी पते को छोड़ दिया और इसकी सेटिंग्स वही रहीं। कृपया इस आईपी को भी सुरक्षित रखें ताकि कोई भी अजनबी इसे एक्सेस न कर सके।
मैं सूचना सुरक्षा के विषय पर एक लेख लिख रहा हूं और मैं इसे https://habr.com पर पोस्ट करूंगा। यह रूस में एक बहुत लोकप्रिय वेबसाइट है। लेख में आपके सर्वर के साथ केस के कुछ उदाहरणों के साथ एनएफएस एक्सेस सेटिंग्स की कम गुणवत्ता के मामले पर कुछ मार्ग शामिल होंगे। पोस्ट होने पर मैं आपको अपने लेख का लिंक भेजूंगा।

लैम्पीयर एपीआई का उपयोग कैसे करें और अपना मॉड्यूल लिखें


मॉड्यूल को इनपुट के रूप में आईपी पते की सूची या 192.168.0 / 24 के रूप में सबनेट की एक सूची को स्वीकार करने की आवश्यकता होगी - इस स्तर पर, एक सबनेट के मामले में, कोड में स्वतंत्र रूप से आईपी पते में तार की भागीदारी पर इनपुट डेटा को मान्य करना आवश्यक होगा। IP सूची में कनवर्ट करें।


पायथन पैरामिको लाइब्रेरी के माध्यम से अगला कदम, व्यक्तिगत एसएस सर्वर और अनुक्रमिक तक पहुंच जाएगा (मॉड्यूल अवधारणा कोड में एसिंक्रोनस करने का प्रयास है) कमांड कहा जाता है:
timeout {timeouts} showmount --no-headers -e {ip}
परिणाम की आउटपुट पायथन कोड के माध्यम से आउटपुट संरचना में दर्ज की जाएगी, तालिका: पायथन में शब्दकोशों की एक सूची।
शब्दकोश में कुंजी:


  • current_day - उपयोगकर्ता अनुरोध तिथि
  • host_query - आईपी जिसके लिए जानकारी प्राप्त की जाती है
  • साझा_पाठ - एनएफएस संसाधन
  • status_ip - संसाधन तक पहुंच के बारे में जानकारी, अगर आईपी पते को "," के माध्यम से सूचीबद्ध किया गया है, तो सूची के भीतर शब्दकोश स्ट्रिंग को दोहराया गया है।

इसके अलावा, अवधारणा की अवधारणा के अनुसार, इस विषय में status_ip कुंजी के मूल्य को पार्स करने का एक आदिम प्रयास किया जाता है: आईपी एड्रेस, होस्ट रिकॉर्ड, मान "*" या "हर कोई"


एपीआई दस्तावेज़ और स्पष्टीकरण के समर्थन से Lampyre.io - प्रत्येक मॉड्यूल को तालिका में एक या अधिक डेटा वापस करना चाहिए, लेकिन तालिका को एपीआई (टास्क हेडर, टेबल हेडर) के हिस्से के रूप में वर्णित किया जाना चाहिए। वास्तव में, यह मॉड्यूल का मुख्य परिणाम है।
इस प्रकार, शब्दकोश कुंजी को ध्यान में रखते हुए अंतिम परिणाम, एक तालिका होगी:


 class NFSHeader(metaclass=Header): display_name = 'Search data from NFS services' current_day = Field('Date', ValueType.Datetime) host_query = Field('Search ip', ValueType.String) shared_path = Field('NFS path', ValueType.String) ip = Field('ip address', ValueType.String) network = Field('network address', ValueType.String) host = Field('host', ValueType.String) status = Field('raw record', ValueType.String) 

तालिका सर्वर पर showmount कमांड के परिणाम को पार्स करने से मान (कुछ संशोधित) दर्ज करेगी। वर्ग के क्षेत्रों के नाम स्वयं के लिए बोलते हैं, कच्चे रिकॉर्ड कॉलम में, संसाधन तक पहुंच के बारे में जानकारी संग्रहीत की जाएगी। एक अर्थ में, एनएफएस संसाधनों पर डेटा के इस विश्लेषण को भी एक OSINT माना जा सकता है, विभिन्न आईपी पते से संभावित पहुंच के बारे में जानकारी संसाधन के मालिकों या संसाधन नेटवर्क के भीतर संबोधित करने का कुछ विचार देती है। उदाहरण के लिए, NFS के साथ सर्वर का IP पता यूक्रेन में स्थित है, और पहुँच के लिए अनुमत IP पता जर्मनी में है:



और यदि आप इस उदाहरण के अध्ययन का विस्तार करते हैं, तो तुरंत सर्वरों के कनेक्शन की पुष्टि न केवल एनएफएस के माध्यम से होती है, बल्कि पते पर एक प्रमाण पत्र के माध्यम से भी होती है: 77.120.103.9, 138.201.202.135 और डोमेन * .aniart.ua।



मॉड्यूल में डेटा ट्रांसफर कैसे करें और टेबल पर लिखें:
टास्क क्लास से अपना खुद का SearchDataNFS क्लास बनाएं:


 class SearchDataNFS(Task) 

get_id पद्धति में, get_id एक अद्वितीय यादृच्छिक UUID लौटाते हैं:


 def get_id(self): return 'bf51fd57-3fec-4416-9d07-905935a484b4' 

get_display_name विधि में get_display_name निर्दिष्ट करें कि टास्क को कैसे कहा जाएगा, और get_description विधि में, नाम के अनुसार, कार्य का विवरण:


 def get_display_name(self): return 'Explore: NFS(SSH)' def get_description(self): return 'Explore NFS resourses' 

get_headers विधि में get_headers निर्दिष्ट करें कि हम किन तालिकाओं का उपयोग करेंगे:


 def get_headers(self): return NFSHeader 

Get_enter_params विधि इनपुट विंडो की उपस्थिति का निर्धारण करेगी। कोड से यह स्पष्ट है कि तार की एक सूची इनपुट को आपूर्ति की जाती है, जिसे बाद में स्वतंत्र रूप से आईपी पते में परिवर्तित किया जाएगा:


 def get_enter_params(self): ep_coll = EnterParamCollection() ep_coll.add_enter_param('ips', 'IP', ValueType.String, is_array=True, value_sources=[Attributes.System.IPAddress], description='IPs, networks') return ep_coll 

निष्पादन विधि में, मुख्य कार्य निष्पादन होता है:


 ips = [] for input_ip in set(map(lambda z: z.strip(), enter_params.ips)): ips.extend(reparse_ip_hosts(input_ip)) 

इनपुट पैरामीटर enter_params.ips के माध्यम से एक्सेस किए जाते हैं। reparse_ip_hosts विधि में, IP पते में स्ट्रिंग्स का एक स्व-कार्यान्वित सत्यापन होता है।


 targets = ((ip, port) for ip in ips for port in ports) lines = thread_async_nfs_one_client(targets) info = reparse_result_rows(lines) fields_table = NFSHeader.get_fields() for data_id in info: tmp = NFSHeader.create_empty() for field in fields_table: if field in data_id: tmp[fields_table[field]] = data_id[field] result_writer.write_line(tmp, header_class=NFSHeader) 

thread_async_nfs_one_client फ़ंक्शन ssh (IP पते, उपयोगकर्ता नाम और पासवर्ड हार्डकोड द्वारा सेट किया गया है) के साथ सर्वर से जुड़ता है और thread_async_nfs_one_client निष्पादित होता है, जैसा कि पहले संकेत दिया गया था, परिणाम पार्स हो गया है, फिर इसे reparse_result_rows फ़ंक्शन में फिर से संशोधित किया गया है। यह ध्यान रखना महत्वपूर्ण है कि जानकारी एक सूची है जिसमें शब्दकोशों से युक्त है, प्रत्येक शब्दकोश में कुंजियों को NFSHeader वर्ग के क्षेत्र के रूप में नामित किया गया है। यही है, शब्दकोश इस तरह दिखता है:


 { 'current_day': datetime.datetime(2019, 3, 6, 16, 48, 17), 'host_query': '192.168.1.1', 'shared_path': '/volume1/workspace', 'ip': '192.168.10.10', 'network': '', 'host': '', 'status': '192.168.10.10' } 

शब्दकोश में डेटा प्रकारों का निरीक्षण करना महत्वपूर्ण है, उन्हें तालिका के विवरण के समान होना चाहिए।
लूप में आगे, सूची तत्वों के माध्यम से पुनरावृत्ति और उन्हें एपीआई विधि ( result_writer.write_line ) के माध्यम से एक विशिष्ट NFSHeader तालिका में लिखना होता है।
अधिक विस्तृत विवरण के लिए, आपको दस्तावेज़ पढ़ना चाहिए।
मूल रूप से, मॉड्यूल को लैम्पीयर में जोड़ने के लिए तैयार है।


Lampyre में अपने मॉड्यूल का उपयोग करना


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


उपयोगकर्ता की मशीन पर मूल मॉड्यूल के साथ काम करने के लिए, Python 3.6 की आवश्यकता होती है, दुभाषिया का रास्ता सिस्टम चर में होना चाहिए, या इसके लिए रास्ता Lampyre\config\appSettings.config में निर्दिष्ट होना चाहिए। डिफ़ॉल्ट रूप से, सेटिंग में pythonPath कुंजी टिप्पणी की जाती है।


Lampyre में एक मॉड्यूल लोड करना निम्नलिखित चरणों में किया जाता है:


  1. लिपियों की खिड़की में, Lampyre \ user_tasks \ ontology.py फ़ाइल को लोड करें (आवेदन के साथ आता है)
  2. उसी विंडो में, अपना मॉड्यूल लोड करें, इस स्थिति में nfs_via_ssh.py। अगर कुछ गलत हुआ, तो विवरण बटन को मदद करनी चाहिए
  3. लोड करने के बाद, कार्य टैब पर अनुरोध विंडो की सूची में , स्थानीय कार्य अनुभाग दिखाई देगा (मॉड्यूल के कोड में आप इसे अलग तरीके से कॉल कर सकते हैं), इसका नाम है अन्वेषण: एनएफएस (एसएसएच) :


    अनुरोध विंडो की अद्यतन सूची:

  4. एनएफएस के साथ सर्वर के आईपी पते, जैसा कि मैंने पहले कहा था, पहले क्वेरी के साथ शोडान खोज क्वेरी को निष्पादित करके सबसे अच्छा प्राप्त किया जाता है : टीसीपी 2049 पैरामीटर (आप बस एनएफएस निर्दिष्ट कर सकते हैं)। पृष्ठ या श्रेणी पैरामीटर, जो डिफ़ॉल्ट रूप से 1 पर सेट किया गया है, का अर्थ है कि Shodan सेवा से उत्तर का 1 पृष्ठ वापस आ जाएगा, एक पृष्ठ पर आमतौर पर 100 परिणाम (पंक्तियाँ) होते हैं।
    Shodan के निष्पादन का परिणाम:

  5. IP पते को टेबल से या आरेख से क्लिपबोर्ड पर कॉपी करें और इसे IP एक्सप्लोर: NFS (SSH) मॉड्यूल विंडो में पेस्ट करें। भागो और परिणाम की उम्मीद:


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


परिणाम तालिका के रूप में प्राप्त किया जाता है, लेकिन आप शोडान खोज के निष्पादन से परिणामों के ग्राफ के साथ तालिका के परिणाम को जारी रख सकते हैं और जोड़ सकते हैं। यह पहली बार में महसूस करना थोड़ा मुश्किल होगा।


परिणाम के साथ तालिका का दृश्य


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


स्कीम 1 (सर्वश्रेष्ठ नहीं)
मॉड्यूल परिणाम से तालिका खुली होने के साथ, नीचे दाएं कोने में "निर्माण टेम्पलेट जोड़ें" इंटरफ़ेस तत्व है, जिस पर क्लिक करके "निर्माण टेम्पलेट" विंडो दिखाई देती है। इसमें, आप तालिका पंक्तियों की मैपिंग को ऑब्जेक्ट्स पर निर्दिष्ट कर सकते हैं, मैं लेख के भीतर विस्तार से प्रक्रिया का वर्णन नहीं करूंगा, Youtube में प्लेटफ़ॉर्म चैनल के लिंक से पता चलता है कि यह कैसे करना है, लेख के भीतर मैं अपने आप को छवियों के लिए सीमित कर दूंगा कि क्या होना चाहिए:



ग्राफ के लिए टेम्प्लेट:



यह ध्यान रखना महत्वपूर्ण है कि IP, डोमेन ऑब्जेक्ट्स Lampyre में हैं, और मैंने NFS और नेटवर्क ऑब्जेक्ट बनाए। , «» . , , — «» — , — - , . , NFS – 2 , NFS path Status, — NFS path. — . «» — Schema .
:



:



«» — i2 (IBM i2 Analyst's Notebook) :



«» , : IP- IP- , , NFS , IP. ( ).


2



. — , IP- :



, , (csv) . , «» . «» , .


Shodan NFS Shodan search, add to active tab — :



:



Lampyre , ssh.


— , NFS .

Source: https://habr.com/ru/post/hi444382/


All Articles