
पेंटेस्टर्स के लिए एक उपकरण जो स्वादिष्ट कैंडी ढूंढने में मदद करता है, @l0ss और @Sh3r4 द्वारा ( ट्विटर: @/mikeloss और @/sh3r4_hax )

Snaffler पेंटेस्टर्स और रेड टीमर्स के लिए एक उपकरण है, जो एक बड़े, उबाऊ घास के ढेर (एक विशाल Windows/AD वातावरण) में स्वादिष्ट कैंडी सुइयाँ (मुख्यतः क्रेडेंशियल्स, लेकिन यह लचीला है) खोजने में मदद करता है।
यह अन्य काम करने वाले लोगों के लिए भी उपयोगी हो सकता है, लेकिन यह स्पष्ट रूप से एक "ऑडिट" उपकरण होने के लिए नहीं बनाया गया है।
उफ़, ठीक है। लेकिन हम परिणामों के लिए जिम्मेदार नहीं हैं। हमने आपके लिए यह सब लिखा है, लेकिन कोई बात नहीं। हम नाराज़ नहीं हैं, बस निराश हैं।
snaffler.exe -s -o snaffler.log
मोटे तौर पर - यह Active Directory से विंडोज कंप्यूटरों की एक सूची प्राप्त करता है, फिर उन सभी तक अपने स्नैफली उपांग फैलाता है ताकि पता चल सके कि किनमें फ़ाइल शेयर हैं, और क्या आप उन्हें पढ़ सकते हैं।
फिर और भी अधिक स्नैफली उपांग उन शेयरों में सभी फ़ाइलों की गणना करते हैं और मशीनों के लिए सीखी गई कृत्रिम बुद्धिमत्ता (L.A.I.M.) का उपयोग करके यह पता लगाते हैं कि आप जैसे गंदे छोटे हैकर को कौन सी फ़ाइलें चाहिए।
वास्तव में यह कोई ML काम नहीं करता, क्योंकि इसे सही ढंग से करने के लिए प्रशिक्षण डेटा की आवश्यकता होगी, और उसके लिए भारी समय लगेगा जो हमारे पास नहीं है। इसके बजाय, सभी अच्छे "ML" प्रोजेक्ट्स की तरह, यह ढेर सारे if स्टेटमेंट्स और रेगेक्सेन का उपयोग करता है।
इस तरह!
यदि आप "सचमुच EXE को डोमेन से जुड़ी मशीन पर डोमेन उपयोगकर्ता के संदर्भ में चलाते हैं" (जैसा कि लोगों को Grouper2 के साथ करने के लिए कहा गया था, इससे पहले कि वे इसे सभी वर्बोज़/डीबग स्विच के साथ चलाते ताकि यह कई सौ मेगाबाइट स्टैक ट्रेस चिल्लाए), तो यह मूलतः कुछ नहीं करेगा। यह उन लोगों के लिए हमारा प्रैंकTM है जो README फ़ाइलें नहीं पढ़ते, क्योंकि हम राक्षस हैं।
हालाँकि... यदि आप सही मंत्र जोड़ते हैं, तो यह पूर्वोक्त L.A.I.M. को सक्षम करेगा और वे फ़ाइल पथ जहाँ कैंडी मिल सकती है, प्रकट हो जाएँगे।
मुख्य मंत्र हैं:
-o परिणामों को फ़ाइल में आउटपुट करना सक्षम करता है। यदि आप -s का उपयोग नहीं कर रहे हैं तो संभवतः आप यह चाहेंगे। उदा. -o C:\users\thing\snaffler.log
-s परिणामों को जैसे ही मिलें, stdout पर आउटपुट करना सक्षम करता है। यदि आप -o का उपयोग नहीं कर रहे हैं तो संभवतः आप यह चाहेंगे।
-v वर्बोसिटी स्तर को नियंत्रित करता है, विकल्प हैं Trace (सबसे अधिक वर्बोज़), Degub (कम वर्बोज़, कम गब्स), Info (कम वर्बोज़, डिफ़ॉल्ट), और Data (केवल परिणाम)। उदा. -v debug
-m Snaffler के लिए एक आउटपुट निर्देशिका को सक्षम और असाइन करता है ताकि वह स्वचालित रूप से अपनी पसंद की किसी भी मिली फ़ाइल की प्रतिलिपि (या Snaffle... यदि आप चाहें) ले सके।
-l Snaffle करने के लिए फ़ाइलों का अधिकतम आकार (बाइट्स में)। डिफ़ॉल्ट 10000000 है, जो लगभग 10MB के बराबर है।
-i कंप्यूटर और शेयर खोज को अक्षम करता है, फ़ाइल खोज करने के लिए एक निर्देशिका के पथ की आवश्यकता होती है।
-n कंप्यूटर खोज को अक्षम करता है, होस्ट या इनपुट फ़ाइल की अल्पविराम से अलग की गई सूची लेता है ताकि शेयर और फ़ाइल खोज कर सके। ध्यान दें कि यदि कोई फ़ाइल प्रदान कर रहे हैं, तो इनपुट एक पथ होना चाहिए, उदाहरण के लिए C:\targets.txt या .\targets.txt।
-y आउटपुट को TSV-प्रारूपित करता है।
-b उन LAIM नियमों को छोड़ देता है जो कम दिलचस्प चीज़ें ढूँढेंगे, इसे 0 और 3 के बीच एक संख्या के साथ ट्यून करें।
-f Snaffler को DFS (वितरित फ़ाइल सिस्टम) के माध्यम से फ़ाइल शेयर खोजने तक सीमित करता है - यह डिफ़ॉल्ट की तुलना में काफी चालाक होना चाहिए, जबकि कई संगठनों में सबसे बड़े फ़ाइल शेयरों को कवर करता है।
-a फ़ाइल गणना को छोड़ देता है, आपको केवल लक्ष्य होस्ट पर सूचीबद्ध शेयरों की एक सूची देता है।
-u Snaffler को AD से खाता नामों की एक सूची खींचने, सबसे दिलचस्प दिखने वाले चुनने और फिर उन्हें एक खोज नियम में उपयोग करने के लिए बनाता है।
-d कंप्यूटर खोजने के लिए डोमेन ताकि शेयरों की खोज की जा सके ताकि फ़ाइलों की खोज की जा सके। आसान है।
-c डोमेन कंप्यूटरों की सूची क्वेरी करने के लिए डोमेन कंट्रोलर।
-r फ़ाइलों के अंदर दिलचस्प स्ट्रिंग्स खोजने के लिए अधिकतम फ़ाइल आकार (बाइट्स में)। डिफ़ॉल्ट 500k है।
-j फ़ाइलों में पाए गए स्ट्रिंग्स के दोनों ओर कितने बाइट्स संदर्भ दिखाना है, उदा. -j 200
-z एक कॉन्फ़िग फ़ाइल का पथ जो उपरोक्त सभी को परिभाषित करता है, और भी बहुत कुछ! अधिक विवरण के लिए नीचे देखें। -z generate दें तो एक नमूना कॉन्फ़िग फ़ाइल उत्पन्न होगी जिसे .\default.toml कहा जाता है।
-t आप जिस प्रकार का लॉग आउटपुट करना चाहते हैं। वर्तमान में समर्थित विकल्प plain और JSON हैं। डिफ़ॉल्ट plain है।
-x उपयोग करने के लिए थ्रेड्स की अधिकतम संख्या। इसे 4 से नीचे न सेट करें अन्यथा चीज़ें खराब हो जाएँगी।
-p .toml प्रारूपित नियमों से भरी एक निर्देशिका का पथ। Snaffler इन सभी को डिफ़ॉल्ट नियमसेट के स्थान पर लोड करेगा।
उम्मीद है कि यह एनोटेटेड उदाहरण मदद करेगा:
इस लॉग प्रविष्टि को मोटे तौर पर बाएँ से दाएँ पढ़ा जाना चाहिए:
... और शेष पंक्ति (ग्रे में) फ़ाइल से संदर्भ का एक छोटा सा अंश है जहाँ मिलान हुआ।
इस मामले में हमें ASP.NET validationKey और decryptionKey मान मिले हैं, जो हमें कुछ डीसीरियलाइज़ेशन हैकरी के माध्यम से वेब ऐप पर RCE करने दे सकते हैं। वाह!
नोट: यह स्क्रीनशॉट बनाने के बाद, Sh3r4 ने प्रत्येक पंक्ति में वर्तमान उपयोगकर्ता और होस्टनेम जोड़ने के लिए एक चीज़ जोड़ी। मैं स्क्रीनशॉट फिर से नहीं बनाना चाहता।
प्रत्येक L.A.I.M. जादू फ़ाइल खोजने की विधि ऐसी चीज़ें करती है:
सटीक फ़ाइल एक्सटेंशन मिलान द्वारा खोज, जिसका अर्थ है कि कोई भी फ़ाइल जिसका एक्सटेंशन प्रासंगिक शब्द सूची से मेल खाता है, वापस कर दी जाएगी। यह फ़ाइल एक्सटेंशन के लिए है जो लगभग हमेशा कैंडी रखते हैं, जैसे .kdbx, .vmdk, .ppk, आदि।
(केस-असंवेदनशील) सटीक फ़ाइल नाम मिलान द्वारा खोज। यह फ़ाइल नामों के लिए है जो लगभग हमेशा कैंडी रखते हैं, जैसे id_rsa, shadow, NTDS.DIT, आदि।
सटीक फ़ाइल एक्सटेंशन मिलान (एक और शब्द सूची) के बाद मिलान करने वाली फ़ाइलों की सामग्री को कुछ कीवर्ड्स (एक और शब्द सूची) के लिए 'ग्रेप' करना। यह उन फ़ाइल एक्सटेंशन के लिए है जो कभी-कभी कैंडी रखते हैं लेकिन जहाँ आप जानते हैं कि छानने के लिए बहुत सारा भूसा हो सकता है। उदाहरण के लिए, web.config में कभी-कभी डेटाबेस क्रेडेंशियल्स होते हैं, लेकिन अक्सर उबाऊ IIS कॉन्फ़िग बकवास और कोई पासवर्ड नहीं होता। यह (उदाहरण के लिए) .config में समाप्त होने वाली किसी भी चीज़ को ढूँढ़ेगा, फिर इसे उन स्ट्रिंग्स के लिए ग्रेप करेगा जिनमें शामिल हैं लेकिन इन्हीं तक सीमित नहीं हैं: connectionString, password, PRIVATE KEY, आदि।
आंशिक फ़ाइल नाम मिलान द्वारा खोज (और भी शब्द सूचियाँ)। यह मुख्य रूप से Jeff's Password File 2019 (Copy).docx या Privileged Access Management System Design - As-Built.docx या कुछ भी खोजने के लिए है, फ़ाइल नाम में उपस्ट्रिंग्स passw, handover, secret, secure, as-built, आदि से मिलान करके।
कुछ एक्सटेंशन वाली सभी फ़ाइलों या किसी भी फ़ाइल को छोड़ने के लिए स्किप-लिस्ट भी हैं जिनके पथ में दी गई स्ट्रिंग है।