Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

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

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
smbcrawler — smbcrawler एक सीधा-सादा टूल है जो क्रेडेंशियल और होस्ट की सूची लेता है, और उन शेयर्स में 'क्रॉल' (या 'स्पाइडर') करता है। | Kitploit
उपकरण/GitHubGitHub/syss-research/smbcrawler
टोहीभेद्यता विश्लेषणडेटा निष्कासनजानकारी एकत्र करनानेटवर्क सुरक्षापेनिट्रेशन टेस्टिंग
GitHubsyss-research/smbcrawler

smbcrawler

smbcrawler एक सीधा-सादा टूल है जो क्रेडेंशियल और होस्ट की सूची लेता है, और उन शेयर्स में 'क्रॉल' (या 'स्पाइडर') करता है।

रिपॉजिटरी देखें
189269 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

SmbCrawler

SmbCrawler एक सीधा-सादा उपकरण है जो क्रेडेंशियल्स और होस्ट की सूची लेता है और उन शेयरों में 'क्रॉल' (या 'स्पाइडर') करता है। विशेषताएँ:

  • होस्ट नाम, IP पते, IP रेंज, या nmap xml फ़ाइल को इनपुट के रूप में लेता है
  • अनुमतियाँ जाँचता है ('लिखने' की अनुमति जाँच ऑप्ट-इन है, क्योंकि इसके लिए शेयर पर एक खाली निर्देशिका बनाने की आवश्यकता होती है)
  • क्रॉलिंग गहराई अनुकूलन योग्य है
  • परिणाम मशीन-पठनीय प्रारूपों में या एक इंटरैक्टिव HTML रिपोर्ट के रूप में आउटपुट करता है
  • पास-द-हैश समर्थन
  • दिलचस्प फ़ाइलें स्वचालित रूप से डाउनलोड करें
  • संभावित रहस्यों की रिपोर्ट करें
  • थ्रेडेड
  • रोकने योग्य (pausable)
  • इंटरैक्टिव रूप से एकल शेयर और होस्ट को छोड़ें

स्थापना

यदि आपको Python पैकेज स्थापित करने के निर्देशों की आवश्यकता है, तो मैं अनुशंसा करता हूँ कि आप सुनिश्चित करें कि आपके पास pipx स्थापित है और pipx install smbcrawler चलाएँ।

SmbCrawler कुछ बाइनरी फ़ाइलों जैसे PDF, XLSX, DOCX, ZIP आदि को MarkItDown का उपयोग करके स्वचालित रूप से सादे टेक्स्ट में बदल सकता है। क्योंकि यह पैकेज बहुत सारी निर्भरताएँ खींचता है, इसे एक अतिरिक्त के रूप में चिह्नित किया गया है। हालाँकि, सबसे अच्छे परिणाम प्राप्त करने के लिए इसकी अत्यधिक अनुशंसा की जाती है। यदि आप स्वचालित रूप से बाइनरी को परिवर्तित करना चाहते हैं, तो SmbCrawler को इस प्रकार स्थापित करें:

root@kitploit:~
pipx install 'smbcrawler[binary-conversion]'

शेल कम्प्लीशन जोड़ना अत्यधिक अनुशंसित है। click लाइब्रेरी का उपयोग करने वाले Python ऐप के रूप में, आप सामान्य तंत्र का उपयोग करके bash, zsh और fish में टैब कम्प्लीशन जोड़ सकते हैं।

उदाहरण

इसे इस प्रकार चलाएँ (10 थ्रेड, अधिकतम गहराई 5):

root@kitploit:~
$ smbcrawler crawl -i hosts.txt -u pen.tester -p iluvb0b -d contoso.local -t 10 -D 5

संस्करण 1.0 में प्रमुख परिवर्तन

SmbCrawler में एक बड़ा ओवरहाल हुआ है। सबसे महत्वपूर्ण परिवर्तन हैं:

  • हमने CLI को साफ किया और क्रॉलर के व्यवहार को नियंत्रित करने के लिए एक "प्रोफ़ाइल" तंत्र पेश किया
  • आउटपुट अब बिखरी हुई JSON फ़ाइलों के बजाय एक sqlite डेटाबेस है
  • अनुमतियाँ अब अधिक सूक्ष्मता से रिपोर्ट की जाती हैं

पुराने CLI तर्क "दिलचस्प फ़ाइलों", "उबाऊ शेयरों" आदि के संबंध में बोझिल और भ्रामक थे। इसके बजाय हम अब "प्रोफ़ाइल" का उपयोग करते हैं; विवरण के लिए नीचे देखें।

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

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

यदि आप पुराने संस्करण को पसंद करते हैं, तो यह अभी भी PyPI पर उपलब्ध है और उदाहरण के लिए pipx install smbcrawler==0.2.0 से स्थापित किया जा सकता है।

उपयोग

रन टाइम के दौरान, आप निम्नलिखित कुंजियों का उपयोग कर सकते हैं:

  • p: क्रॉलर को रोकें और एकल होस्ट या शेयर छोड़ें
  • <space>: वर्तमान प्रगति प्रिंट करें
  • s: अधिक विस्तृत स्थिति अपडेट प्रिंट करें

अधिक जानकारी के लिए, smbcrawler -h चलाएँ।

नोट्स

मध्यम आकार के नेटवर्क में भी, SmbCrawler बहुत सारा डेटा ढूँढ़ेगा। चुनौती झूठी सकारात्मकताओं को कम करना है।

अनुमतियों पर नोट्स

यह समझना महत्वपूर्ण है कि अनुमतियाँ सेवा स्तर और फ़ाइल सिस्टम स्तर पर लागू हो सकती हैं। रिमोट SMB सेवा आपको प्रमाणित करने की अनुमति दे सकती है और आपके उपयोगकर्ता खाते के पास सिद्धांत रूप में पढ़ने की अनुमतियाँ हो सकती हैं, लेकिन फ़ाइल सिस्टम पर ये अनुमतियाँ नहीं हो सकती हैं।

SmbCrawler रिपोर्ट करेगा कि क्या आपके पास अनुमतियाँ हैं:

  • किसी लक्ष्य के विरुद्ध अतिथि के रूप में प्रमाणित करने और शेयरों को सूचीबद्ध करने की
  • उपयोगकर्ता क्रेडेंशियल्स के साथ किसी लक्ष्य के विरुद्ध प्रमाणित करने की
  • अतिथि के रूप में किसी शेयर तक पहुँचने की
  • उपयोगकर्ता क्रेडेंशियल्स के साथ किसी शेयर तक पहुँचने की
  • शेयर की रूट निर्देशिका में एक निर्देशिका बनाने की
  • शेयर के सबसे गहरे निर्देशिका स्तर तक पहुँचने की (जो --depth तर्क द्वारा सीमित है)

क्योंकि प्रश्न में कार्रवाई का प्रयास किए बिना SMB शेयरों की अनुमतियों की जाँच करना गैर-तुच्छ है, SmbCrawler प्रत्येक शेयर पर एक निर्देशिका बनाने का प्रयास करेगा। इसका नाम smbcrawler_DELETEME_<8 यादृच्छिक वर्ण> है और इसे तुरंत हटा दिया जाएगा, लेकिन फिर भी सावधान रहें।

[!WARNING] कभी-कभी आपके पास निर्देशिकाएँ बनाने की अनुमति होती है, लेकिन उन्हें हटाने की नहीं, इसलिए आप वहाँ एक खाली निर्देशिका छोड़ देंगे।

प्रोफ़ाइल

यह तय करने के लिए कि कुछ शेयरों, फ़ाइलों या निर्देशिकाओं के साथ क्या करना है, SmbCrawler में "प्रोफ़ाइल" नामक एक सुविधा है। डिफ़ॉल्ट प्रोफ़ाइल पर एक नज़र डालें।

प्रोफ़ाइल *.yml या *.yaml एक्सटेंशन वाली फ़ाइलों से इन स्थानों से लोड की जाती हैं:

  • अंतर्निहित डिफ़ॉल्ट प्रोफ़ाइल
  • $XDG_DATA_HOME/smbcrawler/ (डिफ़ॉल्ट रूप से ~/.local/share/smbcrawler)
  • --extra-profile-directory द्वारा परिभाषित अतिरिक्त निर्देशिका
  • --extra-profile-file द्वारा परिभाषित अतिरिक्त फ़ाइलें

प्रत्येक स्थान की प्रोफ़ाइल पिछली परिभाषाओं को ओवरराइड करती हैं।

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

चूँकि यह भ्रामक हो सकता है कि विभिन्न स्रोतों की प्रोफ़ाइल एक साथ कैसे काम करती हैं, --dry-run पैरामीटर का उपयोग करना सुनिश्चित करें। यह आपको प्रभावी कॉन्फ़िगरेशन दिखाता है और इसके अलावा कुछ नहीं करता।

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

फ़ाइलें

  • comment: इस प्रोफ़ाइल का वर्णन करने वाली एक सहायक स्ट्रिंग
  • regex: एक रेगुलर एक्सप्रेशन जो परिभाषित करता है कि यह प्रोफ़ाइल किन फ़ाइलों पर लागू होती है। अंतिम मेल खाने वाला रेगुलर एक्सप्रेशन मायने रखता है।
  • regex_flags: ध्वजों की एक सरणी जो रेगुलर एक्सप्रेशन match फ़ंक्शन को पास की जाएगी
  • high_value (डिफ़ॉल्ट: false): यदि कोई फ़ाइल "उच्च मूल्य" है, तो इसकी उपस्थिति रिपोर्ट की जाएगी, लेकिन यह आवश्यक रूप से डाउनलोड नहीं की जाएगी (वर्चुअल हार्ड ड्राइव के बारे में सोचें - महत्वपूर्ण, लेकिन स्वचालित रूप से डाउनलोड करने के लिए बहुत बड़ी)
  • download (डिफ़ॉल्ट: true): यदि true, तो पहले 200 KiB डाउनलोड किए जाएंगे (या यदि high_value=true है तो पूरी फ़ाइल) और रहस्यों के लिए पार्स की जाएगी

शेयर और निर्देशिकाएँ

  • comment, regex, regex_flags: ऊपर जैसा ही
  • high_value: इसकी उपस्थिति रिपोर्ट की जाएगी और क्रॉल गहराई अनंत में बदल दी जाएगी
  • crawl_depth: इस शेयर या निर्देशिका को --depth तर्क द्वारा परिभाषित गहराई से भिन्न गहराई तक क्रॉल करें

रहस्य

  • comment, regex_flags: ऊपर जैसा ही
  • regex: रहस्य से मेल खाने वाला एक रेगुलर एक्सप्रेशन। रहस्य स्वयं secret नाम वाला एक नामित समूह हो सकता है।

विशिष्ट वर्कफ़्लो

पहले SmbCrawler को क्रॉलिंग गहराई 1 के साथ चलाना समझ में आता है ताकि यह अंदाजा लग सके कि आप किससे निपट रहे हैं। इस पहली रन में, आप -w के साथ लिखने की जाँच सक्षम कर सकते हैं:

root@kitploit:~
$ smbcrawler -C permissions_check.crwl crawl -D1 -t10 -w \
    -i <इनपुट फ़ाइल> -u <उपयोगकर्ता> -d <डोमेन> -p <पासवर्ड>

ध्यान दें कि यह केवल प्रत्येक शेयर की रूट निर्देशिका में लिखने और पढ़ने की अनुमतियों की जाँच करता है। केवल एक पूर्ण रन ही आपको बताएगा कि पढ़ने की अनुमतियाँ कितनी गहराई तक जाती हैं।

प्रारंभिक अनुमति जाँच के बाद, आप अपनी अगली रन या कई रनों के लिए दिलचस्प और उबाऊ शेयरों की पहचान कर सकते हैं। कुछ शेयर जैसे SYSVOL और NETLOGON कई बार दिखाई देते हैं, इसलिए आपको अगली रन पर क्रॉल गहराई शून्य पर सेट करनी चाहिए और तीसरी रन में इन डुप्लिकेट शेयरों को स्कैन करने के लिए एक होस्ट चुनना चाहिए। यहाँ एक उदाहरण है:

root@kitploit:~
$ smbcrawler -C dc_only.crwl crawl -D -1 <DC IP> \
    -u <उपयोगकर्ता> -d <डोमेन> -p <पासवर्ड>
$ smbcrawler -C full.crwl crawl -D5 -t10 -i <नई इनपुट फ़ाइल> \
    -u <उपयोगकर्ता> -d <डोमेन> -p <पासवर्ड> \
    --extra-profile-file skip_sysvol.yml

यहाँ, skip_sysvol.yml होगा:

root@kitploit:~
shares:
  sysvol:
    comment: "SYSVOL और NETLOGON शेयर छोड़ें"
    regex: 'SYSVOL|NETLOGON'
    crawl_depth: 0

यहाँ अन्य शेयर शामिल करने के लिए स्वतंत्र महसूस करें जिन्हें आप क्रॉल करने योग्य नहीं समझते।

आउटपुट

कच्चा डेटा एक SQLite डेटाबेस और एक निर्देशिका (डिफ़ॉल्ट रूप से output.crwl और output.crwl.d) में समाहित है। निर्देशिका में दो और निर्देशिकाएँ हैं: एक हैश सामग्री द्वारा अद्वितीयीकृत डाउनलोड की गई फ़ाइलों वाली और एक निर्देशिका जो सभी शेयरों को सिमलिंक के साथ दर्पणित करती है जो सामग्री फ़ाइलों की ओर इशारा करते हैं। बाद वाली सभी डाउनलोड की गई फ़ाइलों में grep करने के लिए अच्छी है।

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

यदि आप उदाहरण के लिए LaTeX तालिका में उन सभी शेयरों को प्रदर्शित करना चाहते हैं जिन्हें आप रूट निर्देशिका से परे पढ़ने में सक्षम थे, तो इस क्वेरी का उपयोग करें:

root@kitploit:~
SELECT target_id || " & " || name || " & " || remark || " \\"
FROM share
WHERE read_level > 0
ORDER BY target_id, name

एक प्रायोगिक HTML आउटपुट सुविधा भी है। यह बड़ी मात्रा में डेटा के लिए अभी तक पूरी तरह से उपयोगी नहीं हो सकती है।

सहायता करें

यदि आप रिपोर्ट किए गए रहस्यों में बहुत सारी झूठी सकारात्मकताएँ या झूठी नकारात्मकताएँ देखते हैं, तो कृपया सहायता करें और मुझे बताएं। स्वचालित पहचान में सुधार करने का प्रयास करते समय सामुदायिक इनपुट महत्वपूर्ण है। सबसे अच्छा परिदृश्य: डिफ़ॉल्ट प्रोफ़ाइल फ़ाइल में परिवर्तन के साथ एक पुल रिक्वेस्ट प्रदान करें।

क्रेडिट

Adrian Vollmer, SySS GmbH

लाइसेंस

MIT लाइसेंस; विवरण के लिए LICENSE देखें।

टूल डाउनलोड करें