AWS Pentesting
मौलिक जानकारी
AWS माहौल की पेंटेस्टिंग शुरू करने से पहले कुछ मौलिक बातें जाननी चाहिए जैसे कि AWS कैसे काम करता है ताकि आपको समझ में आए कि आपको क्या करना है, मिसकॉन्फ़िगरेशन कैसे खोजें और उन्हें कैसे शामिल करें।
संगठन वर्गीकरण, IAM और अन्य मौलिक अवधारणाएं इसमें स्पष्ट की गई हैं:
सीखने के लिए लैब
हमले करने के लिए उपकरण:
AWS पेंटेस्टर/रेड टीम मेथडोलॉजी
AWS माहौल की मानवीय समृद्धि के लिए एक महत्वपूर्ण बिंदु है: कौन सेवाएं उपयोग की जा रही हैं, क्या अनावरण किया जा रहा है, किसके पास क्या पहुंच है, और आंतरिक AWS सेवाएं और बाह्य सेवाएं कैसे जुड़ी हैं।
रेड टीम के दृष्टिकोण से, AWS माहौल को कंप्रमाइज करने का पहला कदम कुछ क्रेडेंशियल्स प्राप्त करना है। यहाँ आपके पास इसे कैसे करने के कुछ विचार हैं:
github में लीक (या समान) - OSINT
सोशल इंजीनियरिंग
पासवर्ड पुनः उपयोग (पासवर्ड लीक)
AWS-होस्टेड एप्लिकेशन में वंशवाद
सर्वर साइड रिक्वेस्ट फॉर्जरी मेटाडेटा एंडपॉइंट तक पहुंच
स्थानीय फ़ाइल पढ़ें
/home/USERNAME/.aws/credentials
C:\Users\USERNAME\.aws\credentials
3rd पार्टी उल्लंघित
आंतरिक कर्मचारी
कोग्निटो क्रेडेंशियल्स
या अप्रमाणित सेवा को कंप्रमाइज करके:
या यदि आप समीक्षा कर रहे हैं तो आप सिर्फ इन भूमिकाओं के लिए क्रेडेंशियल्स मांग सकते हैं:
जब आप क्रेडेंशियल्स प्राप्त कर लेते हैं, तो आपको यह जानने की आवश्यकता है कि वे किसके हैं, और उनके पास क्या पहुंच है, इसलिए आपको कुछ मौलिक गणना करनी होगी:
मौलिक गणना
SSRF
यदि आपने AWS के अंदर किसी मशीन में SSRF पाया है तो ट्रिक्स के लिए इस पेज की जाँच करें:
Whoami
आपको जानने की पहली बात यह है कि आप कौन हैं (आप किस खाते में हैं और AWS माहौल के बारे में अन्य जानकारी):
ध्यान दें कि कंपनियां कैनेरी टोकन्स का उपयोग कर सकती हैं ताकि पता लगा सकें कि टोकन्स चोरी किए जा रहे हैं और उनका उपयोग किया जा रहा है। इससे पहले उस टोकन को कैनेरी टोकन है या नहीं यह जांचना सुझाव दिया जाता है। अधिक जानकारी के लिए इस पृष्ठ की जाँच करें।
संगठन जाँच
IAM जाँच
यदि आपके पास पर्याप्त अनुमतियाँ हैं तो AWS खाते के अंदर प्रत्येक एंटिटी की विशेषाधिकारों की जाँच करना आपको समझने में मदद करेगा कि आप और अन्य पहचान क्या कर सकते हैं और कैसे विशेषाधिकारों को उन्नत करें।
यदि आपके पास IAM की जाँच करने के लिए पर्याप्त अनुमतियाँ नहीं हैं, तो आप उन्हें ब्रूटफोर्स करके उन्हें समझने के लिए चुरा सकते हैं। जाँच करें कैसे नामीकरण और ब्रूट-फोर्सिंग करें:
अब जब आपके पास अपने क्रेडेंशियल्स के बारे में कुछ जानकारी है (और यदि आप एक लाल टीम हैं तो आशा है कि आपको पहचाना नहीं गया है)। तो यह समय है कि आप समझें कि पर्यावरण में कौन सी सेवाएं उपयोग की जा रही हैं। निम्नलिखित खंड में आप कुछ आम सेवाओं को नामीकरण करने के कुछ तरीके जांच सकते हैं।
सेवाओं का नामीकरण, पोस्ट-एक्सप्लोइटेशन और स्थिरता
AWS में एक चौंकाने वाली मात्रा में सेवाएं हैं, निम्नलिखित पृष्ठ में आपको मौलिक जानकारी, नामीकरण चीटशीट्स, पकड़ से बचने के तरीके, स्थिरता प्राप्त करने, और अन्य पोस्ट-एक्सप्लोइटेशन ट्रिक्स के बारे में कुछ जानकारी मिलेगी:
ध्यान दें कि आपको सभी काम को मैन्युअल रूप से करने की आवश्यकता नहीं है, इस पोस्ट के नीचे आपको स्वचालित उपकरणों के बारे में एक खंड मिलेगा।
इसके अतिरिक्त, इस चरण में आपने अनधिकृत उपयोगकर्ताओं के लिए अधिक सेवाएं खोज ली हो सकती हैं, आप उन्हें शायद उत्पादित कर सकते हैं:
विशेषाधिकार उन्नति
यदि आप कम से कम अपनी अनुमतियों की जाँच कर सकते हैं तो आप जाँच कर सकते हैं कि क्या आप अधिक अनुमतियाँ प्राप्त कर सकते हैं। आपको कम से कम उन अनुमतियों पर ध्यान केंद्रित करना चाहिए जिन्हें इसमें इंडिकेट किया गया है:
सार्वजनिक रूप से उजागरित सेवाएं
AWS सेवाओं को नामीकरण करते समय आपने कुछ सेवाओं को पाया हो सकता है जो इंटरनेट पर तत्कालिक तत्वों को उजागर कर रहे हैं (VM/कंटेनर पोर्ट, डेटाबेस या कतार सेवाएं, स्नैपशॉट्स या बकेट्स...)। पेंटेस्टर/रेड टीमर के रूप में आपको हमेशा यह जांचना चाहिए कि क्या आप उनमें संवेदनशील जानकारी / कमियों को पाएं क्योंकि वे आपको AWS खाते में आगे की पहुंच प्रदान कर सकते हैं।
इस पुस्तक में आपको मिलेगी जानकारी कि उजागरित AWS सेवाएं कैसे खोजें और उन्हें कैसे जांचें। उजागरित नेटवर्क सेवाओं में कमियों कैसे खोजें के बारे में मैं आपको सिफारिश करूंगा कि आप विशिष्ट सेवा के लिए खोजें:
संगठन को कमजोर करना
मूल/प्रबंधन खाता से
जब प्रबंधन खाता संगठन में नए खाते बनाता है, तो नए खाते में एक नया भूमिका बनाई जाती है, डिफ़ॉल्ट रूप से OrganizationAccountAccessRole
नामक और प्रबंधन खाते को नए खाते तक पहुंचने के लिए AdministratorAccess नीति देती है।
इसलिए, एक बालक खाते के रूप में प्रशासक के रूप में पहुंचने के लिए आपको चाहिए:
प्रबंधन खाते को कंप्रमाइज़ करें और बच्चों के खातों की आईडी और भूमिकाओं के नाम (डिफ़ॉल्ट रूप से OrganizationAccountAccessRole) का पता लगाएं जो प्रबंधन खाते को प्रशासक के रूप में पहुंचने की अनुमति देती है।
बच्चों के खातों को खोजने के लिए AWS कंसोल में संगठन खंड में जाएं या
aws organizations list-accounts
चलाएं।आप सीधे रूप से भूमिकाओं के नाम नहीं ढूंढ सकते, इसलिए सभी कस्टम IAM नीतियों की जाँच करें और किसी भी ऐसी नीति की खोज करें जो पहले पता लगाए गए बच्चों के खातों पर
sts:AssumeRole
की अनुमति देती ह।प्रबंधन खाते में एक मुख्य व्यक्ति को
sts:AssumeRole
अनुमति के साथ बच्चों के खातों में भूमिका परsts:AssumeRole
अनुमति के साथ कंप्रमाइज करें (यदि खाता प्रबंधन खाते से किसी को अनुमति देने की अनुमति दे रहा है, तो यह एक बाह्य खाता होने के बावजूद, विशेषsts:AssumeRole
अनुमतियाँ आवश्यक हैं)।
स्वचालित उपकरण
जासूसी
aws-recon: एक मल्टी-थ्रेडेड AWS सुरक्षा-केंद्रित इन्वेंटरी संग्रहण उपकरण जो रूबी में लिखा गया है।
cloudlist: Cloudlist एक मल्टी-क्लाउड टूल है जो एसेट्स (होस्टनेम्स, आईपी पते) को क्लाउड प्रदाताओं से प्राप्त करने में मदद करता है।
cloudmapper: CloudMapper आपको अपने अमेज़न वेब सेवाओं (AWS) के वातावरण का विश्लेषण करने में मदद करता है। इसमें अब अधिक कार्यक्षमता शामिल है, सुरक्षा समस्याओं के लिए मुआयना भी शामिल है।
cartography: Cartography एक Python उपकरण है जो एक Neo4j डेटाबेस द्वारा संचालित एक स्पष्ट ग्राफ दृश्य में बुनियादी संरचना संपत्तियों और उनके बीच संबंधों को समेकित करता है।
starbase: Starbase एक उपयोगकर्ता ग्राफ़ दृश्य द्वारा समर्थित Neo4j डेटाबेस द्वारा एकत्रित करता है और संबंधों को सेवाओं और सिस्टम सहित जैसे क्लाउड बुनियादी ढांचा, SaaS एप्लिकेशन, सुरक्षा नियंत्रण, और अधिक से।
aws-inventory: (Python2 का उपयोग करता है) यह एक उपकरण है जो खाते में बनाए गए सभी AWS संसाधन का पता लगाने का प्रयास करता है।
aws_public_ips: यह एक उपकरण है जो एक AWS खाते से संबंधित सभी सार्वजनिक आईपी पतों (IPv4/IPv6 दोनों) को प्राप्त करने के लिए है।
Privesc & Exploiting
SkyArk: स्कैन किए गए AWS वातावरण में सबसे विशेषाधिकारी उपयोगकर्ताओं का पता लगाएं, सहित AWS शैडो एडमिन्स। यह पावरशेल का उपयोग करता है। आप https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1 में
Check-PrivilegedPolicy
फ़ंक्शन में विशेषाधिकारी नीतियों की परिभाषा पा सकते हैं।pacu: Pacu एक ओपन-सोर्स AWS शोषण ढांचा है, जो बादशाही सुरक्षा परीक्षण के लिए डिज़ाइन किया गया है। यह गणना कर सकता है, गलत विन्यास खोज सकता है और उन्हें शोषित कर सकता है। आप https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134 में
user_escalation_methods
डिक्शनरी के अंदर विशेषाधिकारी अनुमतियों की परिभाषा पा सकते हैं।ध्यान दें कि pacu केवल अपने खुद के privescs मार्गों की जांच करता है (खाता व्यापक नहीं)।
PMapper: प्रिंसिपल मैपर (PMapper) एक स्क्रिप्ट और लाइब्रेरी है जो AWS खाते या AWS संगठन के AWS पहचान और पहुंच प्रबंधन (IAM) के विन्यास में जोखिमों की पहचान के लिए है। यह एक निर्देशित ग्राफ के रूप में खाते में विभिन्न IAM उपयोगकर्ताओं और भूमिकाएँ मॉडल करता है, जो विशेषाधिकार उन्नति की जांच और एक हमलावर जो संसाधन या कार्रवाई तक पहुंच प्राप्त करने के लिए एक विकल्पी पथ के लिए जांच करने की संभावना देता है। आप https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing में
_edges.py
समाप्त होने वाले फ़ाइलों में प्रिवेस्क पथ खोजने के लिए उपयोग किए गए अनुमतियों की जांच कर सकते हैं।
cloudsplaining: Cloudsplaining एक AWS IAM सुरक्षा मूल्यांकन उपकरण है जो कम सुरक्षा और जोखिम-प्राथमिकता उल्लंघनों की पहचान करता है और एक जोखिम-प्राथमिकता के आधार पर HTML रिपोर्ट उत्पन्न करता है। यह आपको संभावित रूप से **अधिकाधिकाधिकाधिकाधिकाधिकाध
cloudjack: CloudJack AWS खातों की सबडोमेन हाइजैकिंग संरचनाओं के लिए मूल्यांकन करता है जो Route53 और CloudFront की अलग-अलग विन्यास के परिणामस्वरूप होती है।
ccat: ECR रेपो की सूची -> ECR रेपो खींचें -> इसे बैकडोर करें -> बैकडोर छवि को पुश करें
Dufflebag: Dufflebag एक उपकरण है जो सार्वजनिक Elastic Block Storage (EBS) स्नैपशॉट्स में छुपी सीक्रेट्स की खोज करता है जो भूल से छोड़ दिए गए हो सकते हैं।
मंजूरी
cloudsploit: Aqua द्वारा CloudSploit एक ओपन-सोर्स परियोजना है जो बादल बुनियादी संरचनाओं में सुरक्षा जोखिमों का पता लगाने की अनुमति देने के लिए डिज़ाइन की गई है, जिसमें शामिल हैं: अमेज़न वेब सेवाएं (AWS), माइक्रोसॉफ्ट एज़्यूर, गूगल क्लाउड प्लेटफ़ॉर्म (GCP), ओरेकल क्लाउड इंफ्रास्ट्रक्चर (OCI), और गिटहब (यह शैडोएडमिन्स की तलाश नहीं करता)।
Prowler: Prowler एक ओपन सोर्स सुरक्षा उपकरण है जो AWS सुरक्षा सर्वोत्तम प्रथाओं का मूल्यांकन, महापरीक्षण, हादसे का प्रतिक्रिया, निरंतर मॉनिटरिंग, हार्डनिंग और फोरेंसिक्स तैयारी करने के लिए है।
CloudFox: CloudFox आपको अजनबी क्लाउड वातावरण में स्थिति जागरूकता हासिल करने में मदद करता है। यह एक ओपन सोर्स कमांड लाइन टूल है जिसे पेनेट्रेशन टेस्टर्स और अन्य आक्रामक सुरक्षा विशेषज्ञों को उद्देश्यपूर्ण तरीके से खोजने में मदद के लिए बनाया गया है।
ScoutSuite: Scout Suite एक ओपन सोर्स मल्टी-क्लाउड सुरक्षा मंजूरी उपकरण है, जो क्लाउड वातावरणों की सुरक्षा स्थिति मूल्यांकन को संभव बनाता है।
cs-suite: क्लाउड सुरक्षा सुइट (पायथन2.7 का उपयोग करता है और अनुरक्षित लगता है)
Zeus: Zeus एक शक्तिशाली उपकरण है जो AWS EC2 / S3 / CloudTrail / CloudWatch / KMS के सर्वश्रेष्ठ हार्डनिंग अभ्यासों के लिए है (अनुरक्षित लगता है)। यह केवल सिस्टम के अंदर डिफ़ॉल्ट रूप से कॉन्फ़िगर किए गए क्रेडेंशियल की जांच करता है।
निरंतर मंजूरी
cloud-custodian: क्लाउड कस्टोडियन एक नियम इंजन है जो सार्वजनिक क्लाउड खातों और संसाधनों का प्रबंधन करने के लिए है। यह उपयोगकर्ताओं को निर्धारित नीतियों को सक्षम करने की अनुमति देता है जिससे एक अच्छे ढंग से प्रबंधित क्लाउड बुनियाद होती है, जो सुरक्षित और लागत अनुकूल होती है। यह एडहॉक स्क्रिप्टों को एक हल्के और लचीले उपकरण में समेकित करता है, जिसमें एकीकृत मैट्रिक्स और रिपोर्टिंग होती है।
pacbot: नीति के रूप में कोड बॉट (पैकबॉट) एक प्लेटफ़ॉर्म है जो निरंतर अनुपालन मॉनिटरिंग, अनुपालन रिपोर्टिंग और सुरक्षा स्वचालन के लिए है। पैकबॉट में, सुरक्षा और अनुपालन नीत
संदर्भ
Last updated