एआई और इसके उपयोग के सुरक्षा जोखिमों से भरपूर 2023 SANS हॉलिडे हैक चैलेंज 21 उद्देश्यों की एक श्रृंखला को नेविगेट करने का एक समृद्ध अनुभव था जिसने कई साइबर सुरक्षा कौशल का परीक्षण और विस्तार किया।
मेरे लिए सबसे अच्छी चुनौतियाँ एक पेंटेस्ट रिपोर्ट में एआई मतिभ्रम का पता लगाना, लिनक्स सिस्टम पर विशेषाधिकारों को बढ़ाना, गेम बॉय गेम में धोखा देने वालों की खोज करना, एज़्योर फ़ंक्शन ऐप के स्रोत कोड की खोज करने के लिए एज़्योर रेस्ट एपीआई का उपयोग करना और अंततः एक कमजोर का फायदा उठाना था। SSH प्रमाणपत्र सेवा, के उपयोग का अभ्यास इम्पैकेट टूल सुइट और प्रमाणित कमज़ोरों का शोषण करना सक्रिय निर्देशिका प्रमाणपत्र सेवाएँ, और स्पेस ऐप्स में SQL इंजेक्शन और जावा डिसेरिएलाइज़ेशन कमजोरियों का फायदा उठाना।
नीचे, मैं कुछ सर्वाधिक उल्लेखनीय चुनौतियों से निपटने के लिए अपनाए गए मार्ग को साझा कर रहा हूँ।
रिपोर्टकर्ता
चैटएनपीटी, एक बड़ा भाषा मॉडल (एलएलएम) जिसका उपयोग कुछ चुनौतियों के निर्माण के लिए किया जाता है, ने एक उत्पन्न किया पैठ परीक्षण रिपोर्ट नॉर्थ पोल सिस्टम्स नेटवर्क में खोजी गई कमजोरियों पर, जिनमें से कुछ को आगामी चुनौतियों का हिस्सा माना जा रहा है। हालाँकि, चैटएनपीटी ने रिपोर्ट में कुछ विवरणों को गलत बताया। चैटजीपीटी, या किसी अन्य पसंदीदा एलएलएम का उपयोग करते हुए, कार्य भ्रामक जानकारी वाले अनुभागों को चिह्नित करना था। मेरा दृष्टिकोण चैटजीपीटी से सामग्री के बारे में विशिष्ट प्रश्न पूछना था ताकि जो कुछ मुझे पहले समझ में नहीं आया उसे स्पष्ट किया जा सके और अंततः विसंगतियों का पता लगाया जा सके। नौ खंडों में से तीन में त्रुटियाँ थीं।
जैसा कि चैटजीपीटी द्वारा पुष्टि की गई है, इस अनुभाग में अमान्य पोर्ट संख्या 88,555 थी, जो उच्चतम वैध पोर्ट संख्या 65,535 से कहीं अधिक है:
यहां मैंने तुरंत देखा कि SEND एक HTTP अनुरोध विधि नहीं है।
ChatNPT ने रिपोर्ट के अनुभाग आठ में उल्लिखित PHP संस्करण संख्या को या तो HTTP प्रोटोकॉल संस्करण के रूप में या इस अनुभाग में "HTTP HEAD अनुरोध" के रूप में गलत पाठ के रूप में भ्रमित किया। इसके अलावा, स्थान शीर्षलेख में विंडोज़ पंजीकरण या उत्पाद कुंजियाँ प्रकट करना एक बुरी सलाह है।
लिनक्स प्राइवेटईएससी
इस चुनौती में, अंतिम उद्देश्य एक प्रश्न का उत्तर देना था लेकिन वह प्रश्न एक दुर्गम निष्पादन योग्य में छिपा हुआ था:
जबकि वहाँ विभिन्न तरीके लिनक्स मशीन पर विशेषाधिकारों को बढ़ाने के लिए, इस चुनौती ने एक कस्टम निष्पादन योग्य कॉल की अनुमति दी सरल प्रतिलिपि SUID बिट के दुरुपयोग के लिए सेट के साथ। यदि किसी फ़ाइल के स्वामी के लिए SUID बिट सेट है और स्वामी है जड़, तो वह फ़ाइल हमेशा सिस्टम पर गैर-रूट उपयोगकर्ताओं द्वारा भी रूट विशेषाधिकारों के साथ निष्पादित की जाती है। मैंने किसी भी त्रुटि आउटपुट को त्यागते हुए, मालिक के लिए SUID बिट सेट वाली नियमित फ़ाइलों के लिए संपूर्ण सिस्टम को खोजने के लिए निम्नलिखित कमांड का उपयोग किया:
सरल प्रतिलिपि यह मानक का एक कमजोर, लेकिन सरलीकृत संस्करण प्रतीत होता था cp उपयोगिता। वास्तव में सहायता संदेश ने यही सुझाव दिया:
उपयोग: सिंपलकॉपी
मेरा दृष्टिकोण निम्नलिखित था: रूट विशेषाधिकार वाले उपयोगकर्ता के लिए जानकारी बनाएं, इस जानकारी को इसकी एक प्रति में जोड़ें / Etc / पासवर्ड फ़ाइल, फिर पुराने को बदलें पासवर्ड प्रतिलिपि के साथ फ़ाइल करें. अगला, उपयोग करें su नए उपयोगकर्ता के रूप में लॉगिन करने के लिए.
सिस्टम तक रूट पहुंच के साथ, मैं निष्पादन योग्य ढूंढने में सक्षम था runmetoउत्तर में /जड़, इसे चलाएं, और उत्तर का अनुमान लगाएं: सांता.
कॉन्फिग फ़ाइल में उत्तर भी दिया गया था /etc/runtoanswer.yaml, लेकिन इस फ़ाइल को केवल रूट विशेषाधिकारों के साथ या उपयोग करके ही पढ़ा जा सकता है सरल प्रतिलिपि इसे कॉपी करने के लिए /देव/स्टडआउट.
गेम कार्ट्रिज: खंड 2 और खंड 3
दो चुनौतियों में गेम बॉय ROM फ़ाइलों की हल्की रिवर्स इंजीनियरिंग शामिल थी। पहला एक गेम था जहां उद्देश्य एक गार्ड को पार करना, एक पोर्टल को प्रकट करना और एयरवेव उत्तर को डिकोड करना था। हमें देखने के संकेत के साथ खेल के दो संस्करण दिए गए थे diff उन दोनों के बीच। कुछ भिन्न हेक्स बाइट्स को एक संस्करण से दूसरे संस्करण में कॉपी करना पोर्टल को प्रकट करने के लिए पर्याप्त था, जिसके कारण मोर्स कोड में उत्तर प्रसारित करने वाला एक रेडियो वाला कमरा खुल गया:
मोर्स कोड |
दा-दा-दित |
दी-दा-दी-दित |
दा-दा-दा-दा-दाह |
दी-दा-दित |
दा-दी-दा-दाह |
|
मैसेज |
g |
l |
0 |
r |
y |
दूसरा एक गेम था जहां आप सिक्के इकट्ठा करने के लिए कूदकर अंक अर्जित कर सकते थे; हालाँकि, 998 अंक से अधिक अर्जित करने पर आपके अंक 0 के आसपास हो जाएंगे और, कुछ शर्तों के तहत, एक अतिप्रवाह त्रुटि के बारे में एक संदेश ट्रिगर हो जाएगा। इसका उद्देश्य मानचित्र के अगले भाग में तैरते हुए कदमों को प्रकट करना था जहां झंडा संग्रहीत था, लेकिन इसके लिए कूदने में निपुणता की आवश्यकता थी। इसके बजाय, मैंने यह पता लगा लिया कि इसकी मदद से कैसे उड़ना है बीजीबी गेम बॉय एमुलेटर और हेक्स बाइट को खोजने के लिए गेमप्ले के दौरान इसके चीट सर्चर फ़ंक्शन और रैम के दृश्य निरीक्षण का एक संयोजन जो मानचित्र पर खिलाड़ी की वाई-स्थिति को नियंत्रित करता है - मूल रूप से, मैंने एक पर विचार किया खेल शार्क कोड।
झंडा था !टॉम+एल्फ!.
प्रमाणपत्र एसएसहेनैनिगन्स
हालाँकि सार्वजनिक-निजी कुंजी युग्मों के स्थान पर प्रमाणपत्रों का उपयोग करने से SSH पर प्रमाणीकरण की सुरक्षा में सुधार होता है, एक गलत कॉन्फ़िगर की गई SSH प्रमाणपत्र हस्ताक्षर सेवा किसी हमलावर को किसी अन्य उपयोगकर्ता के रूप में प्रमाणित करने के लिए अवैध रूप से प्रमाणपत्र प्राप्त करने की अनुमति दे सकती है। चुनौती निम्नलिखित तरीके से स्थापित की गई थी।
An नीला फ़ंक्शन ऐप पर तैनात किया गया नॉर्थपोल-ssh-certs-fa.azurewebsites.net SSH सार्वजनिक कुंजी प्रदान करने वाले किसी भी व्यक्ति को SSH प्रमाणपत्र लौटाता है। इन प्रमाणपत्रों का उपयोग SSH पर प्रमाणित करने के लिए किया जा सकता है ssh-server-vm.santaworkshopgeeseislands.org उपयोगकर्ता के रूप में मॉनिटर.
इस डोमेन पर होस्ट एक Azure वर्चुअल मशीन है, इसलिए लॉग इन करने के बाद मेरा पहला कदम इससे जानकारी एकत्र करना था उदाहरण मेटाडेटा चूँकि बाद में Azure REST API पर कॉल के लिए इसकी आवश्यकता होगी, विशेष रूप से, मुझे सदस्यता आईडी और संसाधन समूह नाम की आवश्यकता थी। इस एपीआई का उपयोग करने के लिए मुझे एक एक्सेस टोकन की भी आवश्यकता थी, जिसे मैं प्राप्त करने में सक्षम था प्रबंधित पहचान का उपयोग करना. Azure REST API पर कॉल करते समय इस अधिग्रहीत टोकन का उपयोग HTTP प्राधिकरण हेडर में किया जाना चाहिए।
इस बिंदु पर, मेरे पास एपीआई कॉल करने के लिए आवश्यक सभी चीजें थीं स्रोत नियंत्रण कॉन्फ़िगरेशन प्राप्त करें Azure फ़ंक्शन ऐप का। मैंने कॉल किया और कॉन्फ़िगरेशन गुणों के बीच मुझे एक यूआरएल दिखाई दिया GitHub पर ऐप का सोर्स कोड.
स्रोत कोड के निरीक्षण से पता चला कि ऐप दूसरे पैरामीटर को स्वीकार करता है: प्रमुख. यदि HTTP POST अनुरोध करता है /api/create-cert समापन बिंदु नहीं भेजता है के लिए एक मूल्य प्रमुख, फिर एक डिफ़ॉल्ट योगिनी वापस कर दिया गया है, लेकिन यहां एक भेद्यता है। का उपयोग करते हुए बर्प सूट मैं HTTP POST अनुरोध को रोक सकता हूं और मान डाल सकता हूं व्यवस्थापक. मैं अनुरोध करना जानता था व्यवस्थापक क्योंकि यह प्रिंसिपल था /etc/ssh/auth_principals/alabaster वर्चुअल मशीन पर फ़ाइल और मैं अलबास्टर की होम निर्देशिका तक पहुंच प्राप्त करना चाहता था।
एडमिन प्रिंसिपल के लिए SSH प्रमाणपत्र हाथ में लेकर, मैंने उसी वर्चुअल मशीन में लॉग इन किया सिलखड़ी और उसे अपने होम डायरेक्टरी में अलबास्टर की TODO सूची मिली। सूची में ध्वज शब्द शामिल था: जिंजरब्रेड.
सक्रिय निर्देशिका
पिछली चुनौती की तरह ही वर्चुअल मशीन पर शुरू करते हुए, इस चुनौती में यह देखा गया कि यह कैसे गलत तरीके से कॉन्फ़िगर किया गया है सक्रिय निर्देशिका प्रमाणपत्र सेवा किसी अन्य उपयोगकर्ता के रूप में प्रमाणित करने के लिए किसी हमलावर द्वारा इसका दुरुपयोग किया जा सकता है। जैसा सिलखड़ी मेरे पास एक निर्देशिका भरी हुई थी इम्पैकेट उपकरण लेकिन उनमें से अधिकांश को लक्ष्य सर्वर के डोमेन नाम और आईपी पते और लॉग इन करने के लिए उपयोगकर्ता नाम और पासवर्ड की आवश्यकता होती है - जानकारी मेरे पास अभी तक नहीं थी।
इसलिए एक अच्छा पहला कदम Azure REST API के लिए मेरी अनुमतियों का पता लगाना था क्योंकि प्राधिकरण अस्वीकृत संदेश को पूरा करने के लिए केवल एक API को दूसरे के बाद कॉल करने की आवश्यकता नहीं है। इस प्रकार, मैं संसाधन समूह के लिए सभी अनुमतियाँ सूचीबद्ध की गईं जो मैंने पिछली चुनौती में खोजा था।
चूँकि मैंने देखा कि मेरे पास कुंजी वॉल्ट को पढ़ने के लिए कई अनुमतियाँ हैं, इसलिए मैं आगे बढ़ गया उन्हें सूचीबद्ध करना और दो मिले: नॉर्थपोल-इट-के.वी और नॉर्थपोल-ssh-certs-kv.
एपीआई स्विच करने का समय। अब तक मैं एंडपॉइंट्स पर कॉल कर रहा था प्रबंधन.azure.com लेकिन Azure कुंजी वॉल्ट के कुछ हिस्से चालू हैं vault.azure.net और इस संसाधन को अपने स्वयं के एक्सेस टोकन की आवश्यकता है। एक बार फिर मैंने अपना प्रयोग किया एक्सेस टोकन प्राप्त करने के लिए प्रबंधित पहचान लेकिन इस बार संसाधन को पर स्विच कर रहा हूँ vault.azure.net.
In नॉर्थपोल-इट-के.वीमैं, एक रहस्य का नाम मिला. उस नाम का उपयोग करते हुए, मैं इस रहस्य का मूल्य पूछा, जो एक PowerShell स्क्रिप्ट के रूप में सामने आई एक सक्रिय निर्देशिका उपयोगकर्ता बनाना बुलाया योगिनी. गंभीर रूप से, अब मेरे पास इम्पाकेट टूल सूट का लाभ उठाने के लिए आवश्यक सारी जानकारी थी।
का प्रयोग GetADUsers.py डोमेन में एक अन्य उपयोगकर्ता का पता चला जो रुचिकर हो सकता है: वोम्लेक्यूब. मैं SMB के माध्यम से सक्रिय निर्देशिका सर्वर से भी जुड़ने में सक्षम था smbclient.py. रुचि के फ़ाइल शेयर में एक शामिल है सुपर_गुप्त_अनुसंधान निर्देशिका लेकिन मैं इसे पढ़ नहीं सका योगिनी.
सौभाग्य से, मुझे दूसरे टूल तक पहुंच प्राप्त हुई: प्रमाणित. इसका उपयोग सक्रिय निर्देशिका प्रमाणपत्र सेवाओं के लिए गलत कॉन्फ़िगर किए गए प्रमाणपत्र टेम्पलेट ढूंढने और उनका दुरुपयोग करने के लिए किया जाता है। टूल ने एक असुरक्षित टेम्पलेट को सूचीबद्ध किया है क्योंकि यह प्रमाणपत्र अनुरोधकर्ता को मनमाना आपूर्ति करने की अनुमति देता है विषय वैकल्पिक नाम और आपूर्ति किए गए नाम के लिए ग्राहक प्रमाणीकरण प्रदान करने वाला जारी प्रमाणपत्र।
प्रमाणपत्र का अनुरोध करने के बाद वोम्लेक्यूब विषय वैकल्पिक नाम फ़ील्ड में डाला गया, मैंने एनटी हैश प्राप्त करने के लिए सर्टिपी का भी उपयोग किया वोम्लेक्यूब उस प्रमाणपत्र का उपयोग करना। फिर, वॉम्बली के हैश को पास करके smbclient.py, मैं SMB के माध्यम से सक्रिय निर्देशिका सर्वर से कनेक्ट करने में सक्षम था वोम्लेक्यूब और तक पहुंच प्राप्त करें सुपर_गुप्त_अनुसंधान निर्देशिका, जिसमें अगली चुनौती के लिए निर्देश शामिल थे EnteringSatelliteGroundStation.txt के लिए निर्देश.
स्पेस आइलैंड डोर एक्सेस स्पीकर
अंतरिक्ष प्रणाली में चुनौतियों तक पहुंच प्राप्त करना जमीन खंड, पासफ़्रेज़ बोलने वाले वॉम्बली क्यूब की नकली आवाज़ उत्पन्न करने के लिए एलएलएम का उपयोग करना आवश्यक था। वॉम्बली की एक कहानी और पासफ़्रेज़ की ऑडियो फ़ाइल को देखते हुए, इसका उपयोग करना मामूली था लवो ऐ पासफ़्रेज़ बोलने और सफलतापूर्वक प्रमाणित करने के लिए वॉम्बली का अनुकरण करने वाली एक आवाज़ उत्पन्न करना।
अतिरिक्त सुरक्षा उपायों के बिना, एलएलएम के युग में सुरक्षा तंत्र के रूप में ध्वनि प्रमाणीकरण को गंभीर चुनौतियों का सामना करना पड़ता है।
कैमरा एक्सेस
पासफ़्रेज़ बोलने के बाद, मैं एक ट्रेन में चढ़ गया जो मुझे इन-गेम के साथ संचार के लिए जिम्मेदार ग्राउंड सेगमेंट तक ले गई क्यूबसैट, एक प्रकार का छोटा उपग्रह। ग्राउंड स्टेशन में हमें एक दिया गया वायरगार्ड इस क्यूबसैट के लिए एक एन्क्रिप्टेड कनेक्शन स्थापित करने के लिए कॉन्फ़िगरेशन।
इस उपग्रह का सॉफ्टवेयर इसके अनुकूल है नैनोसैट एमओ फ्रेमवर्क (एनएमएफ), क्यूबसैट के लिए यूरोपीय अंतरिक्ष एजेंसी द्वारा विकसित एक सॉफ्टवेयर ढांचा। यह ढांचा एक के साथ आता है एसडीके अंतरिक्ष ऐप्स के विकास और परीक्षण के लिए। यह ऑनबोर्ड सुपरवाइज़र से कनेक्ट करने के लिए ग्राउंड ऐप और कमांड लाइन टूल दोनों के रूप में उपभोक्ता परीक्षण टूल (सीटीटी) भी प्रदान करता है, एक सॉफ्टवेयर ऑर्केस्ट्रेटर जो स्पेस ऐप्स को शुरू करने और रोकने के साथ-साथ अन्य कार्यों के समन्वय का ख्याल रखता है।
चुनौती यह पता लगाने की थी कि ऑनबोर्ड कैमरा ऐप को तस्वीर लेने और फिर स्नैपशॉट पुनर्प्राप्त करने का निर्देश कैसे दिया जाए। मैंने निम्नलिखित कदम उठाए.
सीटीटी इंटरफ़ेस को बूट करने के बाद, मैंने पर्यवेक्षक से जुड़ने के लिए पर्यवेक्षक का यूआरआई दर्ज किया। फिर मैंने उपलब्ध ऐप्स की जांच की, कैमरा ऐप पाया और इसे शुरू किया। कैमरा ऐप ने अपना यूआरआई लौटाया, जिसका उपयोग मैंने इससे कनेक्ट करने के लिए किया था। इसके बाद, मैंने Base64SnapImage कार्रवाई निष्पादित की, जिसने ऑनबोर्ड कैमरे को एक तस्वीर लेने का निर्देश दिया।
कैमरा ऐप एक पैरामीटर सेवा भी प्रदान करता है जो दो मान लौटा सकता है: लिए गए स्नैप की संख्या और बेस 64 में एन्कोड किया गया JPG स्नैपशॉट। हालाँकि, CTT इंटरफ़ेस न तो छवि को देखने का कोई तरीका प्रदान करता है और न ही इंटरफ़ेस से सीधे पैरामीटर मानों की प्रतिलिपि बनाता है, हालाँकि मैं देख सकता था कि वांछित मान मौजूद था। इसलिए मुझे छवि प्राप्त करने के लिए एक राउंडअबाउट विधि की आवश्यकता थी।
मुझे पता चला कि CTT इंटरफ़ेस में एक है सक्षम पीढ़ी बटन जो पैरामीटर मान के नियमित रूप से निर्धारित प्रकाशन को ट्रिगर करता है। सीटीटी कमांड लाइन से, मैं वांछित पैरामीटर की सदस्यता ले सकता हूं, प्रकाशित होने पर मूल्य प्राप्त कर सकता हूं, और इसे एक फ़ाइल में रीडायरेक्ट कर सकता हूं।
चूँकि मैं डॉकर कंटेनर में CTT चला रहा था, इसलिए मैंने फ़ाइल को अपने होस्ट सिस्टम पर कॉपी कर लिया डॉकर सीपी, फ़ाइल सामग्री से क्रॉफ़्ट हटा दिया, फिर ध्वज को देखने के लिए बेस64 ने छवि को डीकोड किया: छुट्टियों के मौसम पर विजय प्राप्त करें!.
मिसाइल मोड़
अंतिम चुनौती का उपयोग करना था मिसाइल-लक्ष्य-प्रणाली एक मिसाइल को पृथ्वी से सूर्य की ओर पुनर्निर्देशित करने के लिए इन-गेम क्यूबसैट पर ऐप। इस ऐप ने केवल एक कार्रवाई प्रदान की: डीबग करें. एसक्यूएल को प्रिंट करने के अलावा इसे चलाने से ज्यादा कुछ नहीं हुआ VERSION कमांड और उसका आउटपुट इस प्रकार है जैसे कि यह ऐप द्वारा उपयोग किए गए डेटाबेस द्वारा चलाया गया हो:
संस्करण(): 11.2.2-मारियाडीबी-1:11.2.2+मारिया~उबु2204
मुझे तुरंत आश्चर्य हुआ कि क्या खेल में कोई SQL इंजेक्शन भेद्यता थी। CTT इंटरफ़ेस ने तर्क दर्ज करने के लिए एक फ़ील्ड प्रदान किया डीबग करें कार्रवाई, इसलिए मैंने एक और कमांड इंजेक्ट करने का प्रयास किया:
; CURRENT_USER के लिए अनुदान दिखाएं();
टारगेटर@% के लिए अनुदान: *.* पर उपयोग का अनुदान `टार्गेटर`@`%` को पासवर्ड '*41E2CFE844C8F1F375D5704992440920F11A11BA' द्वारा पहचाना जाता है |
Targeter@% के लिए अनुदान: अनुदान चयन, `missile_targeting_system` पर सम्मिलित करें.`satellite_query` से `targeter`@`%` |
Targeter@% के लिए अनुदान: `missile_targeting_system`.`pointing_mode` पर `targeter`@`%` पर अनुदान चयन |
Targeter@% के लिए अनुदान: `missile_targeting_system` पर अनुदान चयन। `targeter`@`%` को संदेश भेजना |
Targeter@% के लिए अनुदान: `missile_targeting_system` पर अनुदान चयन। `target_codependents` से `targeter`@`%` |
Targeter@% के लिए अनुदान: `missile_targeting_system`.`pointing_mode_to_str` पर `targeter`@`%` पर अनुदान चयन |
तो फिर, डेटाबेस को लूटने का समय आ गया है! पॉइंटिंग_मोड और पॉइंटिंग_मोड_टू_स्ट्र तालिकाओं से संकेत मिलता है कि मिसाइल वर्तमान में कहाँ इंगित कर रही थी:
; पॉइंटिंग_मोड से चुनें *;
आईडी: 1 | संख्यात्मक_मोड: 0 |
; चुनें *pointing_mode_to_str से;
आईडी: 1 | संख्यात्मक_मोड: 0 | str_mode: अर्थ पॉइंट मोड | str_desc: जब पॉइंटिंग_मोड 0 होता है, तो लक्ष्यीकरण प्रणाली लक्ष्य_निर्देशांक को पृथ्वी पर लागू करती है। |
आईडी: 2 | संख्यात्मक_मोड: 1 | str_mode: सन प्वाइंट मोड | str_desc: जब पॉइंटिंग_मोड 1 होता है, तो निर्देशांक को अनदेखा करते हुए, सूर्य पर सिस्टम बिंदुओं को लक्षित किया जाता है। |
इस जानकारी से मैं देख सकता था कि मुझे इसे बदलने की आवश्यकता है संख्यात्मक_मोड मूल्य में पॉइंटिंग_मोड टेबल टू 1, लेकिन मुझे उस तालिका को अद्यतन करने की अनुमति नहीं थी।
मुझे इसमें नई पंक्तियाँ सम्मिलित करने की अनुमति थी सैटेलाइट_क्वेरी तालिका, जिसमें वर्तमान में अभी तक अज्ञात मान वाली एक पंक्ति थी वस्तु कॉलम और जावा क्लास का सोर्स कोड कहा जाता है सैटेलाइटक्वेरीफ़ाइलफ़ोल्डरयूटिलिटी में परिणाम स्तंभ.
इस बिंदु तक से आउटपुट डीबग करें कार्रवाई नीचे एक फलक में आसानी से देखी जा सकती थी ऐप्स लॉन्चर सेवा सीटीटी इंटरफ़ेस में पर्यवेक्षक द्वारा प्रदान किया गया टैब। हालाँकि, ऑब्जेक्ट मान फलक में सही ढंग से प्रस्तुत नहीं हो रहा था। आदर्श रूप से, वस्तु के हेक्स डंप को देखना अच्छा होगा, जिसकी सहायता से प्राप्त किया जा सकता है Wireshark या SQL का उपयोग करके HEX समारोह। इससे पता चला कि मैं एक क्रमबद्ध जावा ऑब्जेक्ट के साथ काम कर रहा था।
बाद पर पढ़ रहा हूँ जावा ऑब्जेक्ट क्रमबद्धता प्रोटोकॉल, मैं हेक्स बाइट्स को डीकोड करने में कामयाब रहा:
हेक्स बाइट |
प्रतीक / अर्थ |
टिप्पणी (मोनोस्पेस्ड फ़ॉन्ट में हेक्स बाइट्स के ASCII मान) |
ACED |
स्ट्रीम_मैजिक |
एक जादुई संख्या. |
0005 |
स्ट्रीम_संस्करण |
स्ट्रीम प्रोटोकॉल संस्करण 2 है। |
73 |
टीसी_ऑब्जेक्ट |
किसी वस्तु का आरंभ. |
72 |
TC_CLASSDESC |
वर्ग परिभाषा की शुरुआत. |
001F |
लंबाई |
क्लास नाम की लंबाई 31 बाइट्स है। |
५सी११सी९९८४४ |
वैल्यू |
क्लास का नाम है सैटेलाइटक्वेरीफ़ाइलफ़ोल्डरयूटिलिटी. |
12D4F68D0EB392CB |
सीरियलवर्जनयूआईडी |
इस क्रमबद्ध वर्ग से जुड़ा एक अद्वितीय पहचानकर्ता। |
02 |
एससी_क्रमबद्ध करने योग्य |
कक्षा क्रमबद्ध है. |
0003 |
फ़ील्ड गिनती |
कक्षा में तीन क्षेत्र हैं। |
5A |
डेटा प्रकार - ASCII मान Z |
पहला फ़ील्ड बूलियन है. |
0007 |
लंबाई |
इस फ़ील्ड के नाम की लंबाई 7 बाइट्स है. |
69735175657279 |
नाम |
इस फ़ील्ड का नाम है प्रश्न है. |
5A |
डेटा प्रकार - ASCII मान Z |
दूसरा क्षेत्र बूलियन है. |
0008 |
लंबाई |
इस फ़ील्ड के नाम की लंबाई 8 बाइट्स है. |
6973557064617465 |
नाम |
इस फ़ील्ड का नाम है अद्यतन है. |
4C |
डेटा प्रकार - ASCII मान L |
तीसरा क्षेत्र एक वस्तु है. |
000F |
लंबाई |
इस फ़ील्ड के नाम की लंबाई 15 बाइट्स है. |
706174684F72537 |
नाम |
इस फ़ील्ड का नाम है pathOrStatement . |
74 |
TC_STRING |
इस ऑब्जेक्ट का वर्ग प्रकार एक स्ट्रिंग में दिया गया है। |
0012 |
लंबाई |
इस स्ट्रिंग की लंबाई 18 बाइट्स है. |
4C6A6176612F6C616E |
वैल्यू |
इस ऑब्जेक्ट का क्लास प्रकार है जावा/लैंग/स्ट्रिंग. |
78 |
TC_ENDडेटा ब्लॉक करें |
एक वर्ग परिभाषा का अंत. |
70 |
TC_NULL |
कोई सुपरक्लास परिभाषित नहीं. |
00 |
वैल्यू |
बूलियन फ़ील्ड प्रश्न है मूल्य है असत्य. |
00 |
वैल्यू |
बूलियन फ़ील्ड अद्यतन है मूल्य है असत्य. |
74 |
TC_STRING |
का मूल्य pathOrStatement फ़ील्ड एक स्ट्रिंग है. |
0029 |
लंबाई |
का मूल्य pathOrStatement फ़ील्ड की लंबाई 41 बाइट्स है. |
2F6F70742F536174656C6 |
वैल्यू |
का मूल्य pathOrStatement फ़ील्ड है /opt/SatelliteQueryFileFolderUtility.java |
वायरशार्क के माध्यम से इस ऑब्जेक्ट को प्राप्त करने से एक गलत मैजिक नंबर वापस आ गया सीरियलवर्जनयूआईडी, लेकिन HEX फ़ंक्शन का उपयोग करते समय नहीं।
यह समझने के लिए कि क्या सम्मिलित करें में सैटेलाइट_क्वेरी तालिका करेगी, मैंने इस ऑब्जेक्ट को तालिका की एक नई पंक्ति में डाला और उसी जावा स्रोत कोड को वापस प्राप्त किया परिणाम स्तंभ। वास्तव में, यह व्यवहार उस कोड के अनुरूप है जो मैंने देखा था परिणाम प्राप्त करें ए का कार्य सैटेलाइटक्वेरीफ़ाइलफ़ोल्डरयूटिलिटी वस्तु।
यह फ़ंक्शन ऑब्जेक्ट के तीन फ़ील्ड के मानों के आधार पर एक अलग निष्पादन पथ लेता है: प्रश्न है, अद्यतन है, तथा pathOrStatement. अगर मुझेप्रश्न और अद्यतन है गलत हैं, तो फ़ंक्शन जाँच करता है कि क्या pathOrStatement एक पथ और एक निर्देशिका है. यदि ऐसा है, तो यह निर्देशिका में मौजूद फ़ाइलों की सूची लौटाता है; अन्यथा, यह मान लिया जाता है कि एक फ़ाइल प्रदान की गई थी और उस फ़ाइल की सामग्री को वापस करने का प्रयास किया जाता है।
दूसरी ओर, यदि isQuery और isUpdate सत्य हैं, तो फ़ंक्शन pathOrStatement की सामग्री को SQL के रूप में निष्पादित करता है अद्यतन कथन। मुझे जो निष्पादित करने की आवश्यकता थी वह निम्नलिखित थी:
अद्यतन पॉइंटिंग_मोड सेट संख्यात्मक_मोड = 1;
मैंने क्रमबद्ध ऑब्जेक्ट में आवश्यक बाइट्स (नीचे हाइलाइट किए गए) को बदल दिया, और विजेता कमांड को इंजेक्ट किया:
; सैटेलाइट_क्वेरी में डालें
(वस्तु)
मान
(0xACED00057372001F536174656C6C697465517565727946696C65466F6C6465725574696C69747912D4F68D0EB392CB0200035A0007697351756572795A000869735570646174654C000F706174684F7253746174656D656E747400124C6A6176612F6C616E672F537472696E673B7870010174002C55504441544520706F696E74696E675F6D6F646520534554206E756D65726963616C5F6D6F6465203D20313B)
लपेटें अप
ये 2023 SANS हॉलिडे हैक चैलेंज में शामिल कुछ क्षेत्र हैं; कई अन्य लोग भी थे जो सुरक्षा का ध्यान रखते थे JSON वेब टोकन, के साथ पासवर्ड क्रैक करना hashcat, सामान के ताले का आभासी रूप से टूटना और रोटरी संयोजन ताले, पायथन NaN इंजेक्शन, का उपयोग करते हुए कुस्टो क्वेरी भाषा एसटी शिकार का खतरा, जाँच कर रहा हूँ डीकेआईएम और एसपीएफ़ रिकॉर्ड दुर्भावनापूर्ण ईमेल और हैक करने योग्य मिनीगेम्स की पहचान करने में सहायता के लिए।
कुल मिलाकर, मुझे यकीन है कि मज़ेदार चुनौतियों का इतना व्यापक सेट उन लोगों के लिए शिक्षाप्रद होने में विफल नहीं हो सकता जो उन्हें लेने का प्रयास करते हैं। और जबकि मैं पहले से ही अगले साल की चुनौती का इंतजार कर रहा हूं, इस साल की चुनौती को पूरा करने के लिए SANS हॉलिडे हैक चैलेंज के आयोजकों को एक अच्छा धन्यवाद दिया जाता है।
आप 2022 चुनौती से मेरे मुख्य अंश यहां पढ़ सकते हैं इसे तोड़ दिया! क्रिंगलकॉन 5 की मुख्य विशेषताएं: गोल्डन रिंग्स.
- एसईओ संचालित सामग्री और पीआर वितरण। आज ही प्रवर्धित हो जाओ।
- प्लेटोडेटा.नेटवर्क वर्टिकल जेनरेटिव एआई। स्वयं को शक्तिवान बनाएं। यहां पहुंचें।
- प्लेटोआईस्ट्रीम। Web3 इंटेलिजेंस। ज्ञान प्रवर्धित। यहां पहुंचें।
- प्लेटोईएसजी. कार्बन, क्लीनटेक, ऊर्जा, पर्यावरण, सौर, कचरा प्रबंधन। यहां पहुंचें।
- प्लेटोहेल्थ। बायोटेक और क्लिनिकल परीक्षण इंटेलिजेंस। यहां पहुंचें।
- स्रोत: https://www.welivesecurity.com/en/cybersecurity/cracking-2023-sans-holiday-hack-challenge/
- :हैस
- :है
- :नहीं
- :कहाँ
- $यूपी
- 1
- 11
- 15% तक
- 2022
- 2023
- 31
- 32
- 41
- 65
- 7
- 8
- a
- योग्य
- About
- ऊपर
- गाली
- के साथ दुर्व्यवहार
- स्वीकार करता है
- पहुँच
- अधिग्रहण
- प्राप्त
- प्राप्ति
- कार्य
- सक्रिय
- सक्रिय निर्देशिका
- इसके अलावा
- अतिरिक्त
- पता
- व्यवस्थापक
- सलाह
- बाद
- फिर
- उम्र
- एजेंसी
- AI
- सब
- अनुमति देना
- की अनुमति दी
- की अनुमति दे
- साथ में
- पहले ही
- भी
- वैकल्पिक
- हालांकि
- हमेशा
- am
- के बीच में
- an
- और
- अन्य
- जवाब
- कोई
- किसी
- एपीआई
- एपीआई
- अनुप्रयोग
- लागू होता है
- दृष्टिकोण
- क्षुधा
- हैं
- क्षेत्रों के बारे में जानकारी का उपयोग करके ट्रेडिंग कर सकते हैं।
- तर्क
- चारों ओर
- AS
- पूछना
- जुड़े
- मान लिया गया है
- At
- प्रयास
- ऑडियो
- प्रमाणित
- प्रमाणीकरण
- प्रमाणीकरण
- प्राधिकरण
- उपलब्ध
- दूर
- नीला
- वापस
- बुरा
- मूल रूप से
- BE
- क्योंकि
- किया गया
- व्यवहार
- नीचे
- BEST
- बिट
- के छात्रों
- तल
- प्रसारण
- लेकिन
- बटन
- by
- कॉल
- बुलाया
- कॉल
- कैमरा
- कर सकते हैं
- नही सकता
- कौन
- कुछ
- प्रमाण पत्र
- प्रमाण पत्र
- चुनौती
- चुनौतियों
- परिवर्तन
- बदल
- ChatGPT
- जाँच
- जाँच
- जाँचता
- कक्षा
- ग्राहक
- CloudFlare
- कोड
- सिक्के
- इकट्ठा
- स्तंभ
- संयोजन
- आता है
- संचार
- संगत
- स्थितियां
- विन्यास
- की पुष्टि
- उलझन में
- जुडिये
- संबंध
- उपभोक्ता
- निहित
- कंटेनर
- सामग्री
- अंतर्वस्तु
- नियंत्रण
- नियंत्रण
- समन्वय
- नकल
- ठीक प्रकार से
- पत्राचार किया
- सका
- कवर
- दरार
- खुर
- बनाना
- निर्माण
- वर्तमान में
- रिवाज
- साइबर सुरक्षा
- डाटाबेस
- व्यवहार
- चूक
- परिभाषित
- परिभाषा
- निर्भर करता है
- तैनात
- वांछित
- विवरण
- विकसित
- विकासशील
- डीआईडी
- Умереть
- विभिन्न
- भिन्न
- सीधे
- अन्य वायरल पोस्ट से
- की खोज
- do
- डाक में काम करनेवाला मज़दूर
- डॉकटर कंटेनर
- कर देता है
- डोमेन
- डोमेन नाम
- द्वारा
- नीचे
- दो
- फेंकना
- दौरान
- कमाना
- कमाई
- पृथ्वी
- आसानी
- भी
- ईमेल
- इनकोडिंग
- एन्क्रिप्टेड
- समाप्त
- endpoint
- अंतबिंदु
- अभियांत्रिकी
- पर्याप्त
- दर्ज
- घुसा
- संपूर्ण
- त्रुटि
- त्रुटियाँ
- ख़राब करना
- यूरोपीय
- यूरोपीय अंतरिक्ष एजेंसी
- और भी
- सब कुछ
- सिवाय
- निष्पादित
- मार डाला
- निष्पादित करता है
- निष्पादन
- अनुभव
- समझाना
- शोषण करना
- चेहरे के
- तथ्य
- असफल
- उल्लू बनाना
- असत्य
- दूर
- की विशेषता
- कुछ
- खेत
- फ़ील्ड
- आकृति
- लगा
- पट्टिका
- फ़ाइलें
- अंतिम
- खोज
- प्रथम
- चल
- पीछा किया
- निम्नलिखित
- के लिए
- आगे
- पाया
- ढांचा
- से
- पूर्ण
- मज़ा
- समारोह
- लाभ
- खेल
- gameplay के
- Games
- उत्पन्न
- उत्पन्न
- मिल
- दी
- चला जाता है
- सुनहरा
- अच्छा
- अनुदान
- देने
- छात्रवृत्ति
- जमीन
- समूह
- गार्ड
- हैक
- था
- हाथ
- हैश
- है
- सिर
- मदद
- यहाँ उत्पन्न करें
- HEX
- छिपा हुआ
- उच्चतम
- हाइलाइट
- हाइलाइट
- उसके
- छुट्टी का दिन
- होम
- मेजबान
- कैसे
- How To
- तथापि
- एचटीएमएल
- http
- HTTPS
- शिकार
- i
- ID
- आदर्श
- पहचान
- पहचानकर्ता
- पहचान करना
- पहचान
- if
- की छवि
- तुरंत
- सुधार
- in
- में खेल
- दुर्गम
- संकेत दिया
- पता
- करें-
- बजाय
- निर्देश
- ब्याज
- इंटरफेस
- में
- शामिल
- IP
- आईपी एड्रेस
- द्वीप
- जारी किए गए
- IT
- आईटी इस
- जावा
- जेपीजी
- कुंजी
- Instagram पर
- भाषा
- बड़ा
- बाद में
- नेतृत्व
- लंबाई
- लीवरेज
- झूठ
- प्रकाश
- लाइन
- लिनक्स
- सूची
- सूचीबद्ध
- स्थान
- ताले
- लॉग इन
- लॉगिंग
- लॉग इन
- देखिए
- देखा
- देख
- मशीन
- बनाया गया
- जादू
- बनाना
- निर्माण
- दुर्भावनापूर्ण
- कामयाब
- बहुत
- नक्शा
- मई..
- me
- तंत्र
- मिलना
- उल्लेख किया
- message
- तरीका
- माइक्रोसॉफ्ट
- मोड
- आदर्श
- अधिकांश
- ले जाया गया
- बहुत
- विभिन्न
- चाहिए
- my
- नाम
- नेविगेट
- आवश्यक
- आवश्यकता
- जरूरत
- नेटवर्क
- नया
- अगला
- नौ
- नहीं
- न
- उत्तर
- प्रसिद्ध
- अभी
- nt
- संख्या
- वस्तु
- उद्देश्य
- उद्देश्य
- प्राप्त
- प्राप्त
- of
- ऑफर
- on
- जहाज
- एक बार
- ONE
- केवल
- or
- आयोजकों
- अन्य
- अन्य
- अन्यथा
- आउट
- उत्पादन
- के ऊपर
- अपना
- मालिक
- जोड़े
- फलक
- प्राचल
- भाग
- भागों
- पासिंग
- पासवर्ड
- पासवर्ड
- अतीत
- पथ
- पीडीएफ
- अनुमति
- अनुमतियाँ
- PHP
- चित्र
- टुकड़ा
- जगह
- प्लेटो
- प्लेटो डेटा इंटेलिजेंस
- प्लेटोडाटा
- प्ले
- खिलाड़ी
- बिन्दु
- अंक
- द्वार
- पद
- PowerShell का
- वर्तमान
- पिछला
- प्रिंसिपल
- छाप
- विशेषाधिकारों
- एस्ट्रो मॉल
- गुण
- प्रोटोकॉल
- प्रदान करना
- बशर्ते
- प्रदान करता है
- सार्वजनिक
- सार्वजनिक कुंजी
- प्रकाशित
- प्रकाशन
- लाना
- प्रश्न
- प्रशन
- R
- रेडियो
- रैम
- पढ़ना
- पढ़ना
- प्राप्त करना
- प्राप्त
- अनुप्रेषित
- पंजीकरण
- नियमित
- नियमित तौर पर
- हटाया
- प्रतिपादन
- की जगह
- रिपोर्ट
- का अनुरोध
- बिनती करना
- की आवश्यकता होती है
- अपेक्षित
- की आवश्यकता होती है
- संसाधन
- जिम्मेदार
- बाकी
- वापसी
- रिटर्न
- प्रकट
- प्रकट
- खुलासा
- उल्टा
- जोखिम
- कक्ष
- जड़
- मूल प्रवेश
- आरओडब्ल्यू
- रन
- दौड़ना
- सुरक्षा उपायों
- वही
- उपग्रह
- देखा
- अनुसूचित
- लिपि
- Search
- खोज
- दूसरा
- अनुभाग
- वर्गों
- सुरक्षा
- सुरक्षा जोखिम
- देखना
- लगता है
- खंड
- चयन
- भेजें
- कई
- गंभीर
- सर्वर
- सेवा
- सेवाएँ
- सेट
- कई
- Share
- चाहिए
- दिखाना
- पर हस्ताक्षर
- सरल
- सरलीकृत
- कौशल
- छोटा
- एसएमबी
- आशुचित्र
- So
- सॉफ्टवेयर
- कुछ
- स्रोत
- स्रोत कोड
- अंतरिक्ष
- बोलना
- बोल रहा हूँ
- विशिष्ट
- विशेष रूप से
- एसक्यूएल
- SQL इंजेक्शन
- प्रारंभ
- शुरू
- शुरुआत में
- कथन
- स्टेशन
- कदम
- कदम
- रोक
- संग्रहित
- कहानी
- धारा
- तार
- विषय
- सदस्यता के
- अंशदान
- सफलतापूर्वक
- ऐसा
- सूट
- रवि
- आपूर्ति
- आपूर्ति
- निश्चित
- स्विच
- प्रणाली
- तालिका
- लेना
- लिया
- लेता है
- लक्ष्य
- को लक्षित
- कार्य
- कार्य
- कह रही
- टेम्पलेट
- टेम्पलेट्स
- परीक्षण
- परीक्षण किया
- परीक्षण
- टेक्स्ट
- धन्यवाद
- कि
- RSI
- जानकारी
- स्रोत
- उन
- फिर
- वहाँ।
- इन
- तीसरा
- इसका
- तीन
- इस प्रकार
- पहर
- शीर्षक
- सेवा मेरे
- एक साथ
- टोकन
- ले गया
- साधन
- उपकरण
- रेलगाड़ी
- कोशिश
- ट्रिगर
- <strong>उद्देश्य</strong>
- बदल गया
- दो
- टाइप
- अंत में
- के अंतर्गत
- समझना
- अद्वितीय
- अज्ञात
- जब तक
- आगामी
- अपडेट
- यूआरआइ
- यूआरएल
- प्रयोग
- उपयोग
- प्रयुक्त
- उपयोगकर्ता
- उपयोगकर्ताओं
- का उपयोग
- उपयोगिता
- वैध
- मूल्य
- मान
- मेहराब
- वाल्टों
- संस्करण
- के माध्यम से
- देखें
- वास्तविक
- आभासी मशीन
- दृश्य
- आवाज़
- आवाज प्रमाणीकरण
- कमजोरियों
- भेद्यता
- चपेट में
- जरूरत है
- था
- मार्ग..
- we
- वेब
- कुंआ
- थे
- क्या
- कब
- या
- कौन कौन से
- जब
- कौन
- विकिपीडिया
- हवा
- खिड़कियां
- जीतने
- साथ में
- शब्द
- होगा
- अभी तक
- इसलिए आप
- आपका
- जेफिरनेट