AWS Pentesting
Last updated
Last updated
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
AWS वातावरण में पेंटेस्टिंग शुरू करने से पहले, कुछ बुनियादी बातें आपको जाननी चाहिए कि AWS कैसे काम करता है, ताकि आप समझ सकें कि आपको क्या करना है, गलत कॉन्फ़िगरेशन कैसे खोजें और उन्हें कैसे शोषण करें।
संगठन की पदानुक्रम, IAM और अन्य बुनियादी अवधारणाएँ इस में समझाई गई हैं:
AWS - Basic Informationहमलों का अनुकरण करने के लिए उपकरण:
AWS वातावरण का ऑडिट करने के लिए यह जानना बहुत महत्वपूर्ण है: कौन सी सेवाएँ उपयोग की जा रही हैं, क्या प्रकट किया जा रहा है, किसके पास पहुँच है, और आंतरिक AWS सेवाएँ और बाहरी सेवाएँ कैसे जुड़ी हुई हैं।
Red Team के दृष्टिकोण से, AWS वातावरण को समझौता करने का पहला कदम कुछ क्रेडेंशियल्स प्राप्त करना है। यहाँ कुछ विचार दिए गए हैं कि आप ऐसा कैसे कर सकते हैं:
github (या समान) में लीक - OSINT
सामाजिक इंजीनियरिंग
पासवर्ड पुन: उपयोग (पासवर्ड लीक)
AWS-होस्टेड अनुप्रयोगों में कमजोरियाँ
सर्वर साइड अनुरोध धोखाधड़ी जिसमें मेटाडेटा एंडपॉइंट तक पहुँच है
स्थानीय फ़ाइल पढ़ें
/home/USERNAME/.aws/credentials
C:\Users\USERNAME\.aws\credentials
3rd पार्टी भंग
आंतरिक कर्मचारी
Cognito क्रेडेंशियल्स
या अप्रमाणित सेवा को समझौता करके जो प्रकट की गई है:
AWS - Unauthenticated Enum & Accessया यदि आप एक समीक्षा कर रहे हैं तो आप बस इन भूमिकाओं के साथ क्रेडेंशियल्स मांग सकते हैं:
AWS - Permissions for a Pentestएक बार जब आप क्रेडेंशियल्स प्राप्त करने में सफल हो जाते हैं, तो आपको यह जानने की आवश्यकता है कि ये क्रेडेंशियल्स किसके हैं, और इनके पास क्या पहुँच है, इसलिए आपको कुछ बुनियादी गणना करने की आवश्यकता है:
यदि आपने AWS के अंदर एक मशीन में SSRF पाया है, तो ट्रिक्स के लिए इस पृष्ठ की जाँच करें:
आपको जानने की पहली चीजों में से एक यह है कि आप कौन हैं (आप किस खाते में हैं और AWS वातावरण के बारे में अन्य जानकारी):
ध्यान दें कि कंपनियां canary tokens का उपयोग कर सकती हैं यह पहचानने के लिए कि tokens चुराए जा रहे हैं और उपयोग किए जा रहे हैं। इसका सुझाव दिया जाता है कि उपयोग करने से पहले यह जांचें कि क्या एक token canary token है या नहीं। अधिक जानकारी के लिए इस पृष्ठ की जांच करें।
यदि आपके पास पर्याप्त अनुमतियाँ हैं तो AWS खाते के अंदर प्रत्येक इकाई के विशेषाधिकारों की जांच करना आपको यह समझने में मदद करेगा कि आप और अन्य पहचान क्या कर सकते हैं और कैसे विशेषाधिकार बढ़ा सकते हैं।
यदि आपके पास IAM को enumerating करने के लिए पर्याप्त अनुमतियाँ नहीं हैं, तो आप उन्हें चुराने के लिए ब्रूटफोर्स कर सकते हैं। संख्यांकन और ब्रूट-फोर्सिंग कैसे करें की जांच करें:
AWS - IAM, Identity Center & SSO Enumअब जब आपके पास अपने क्रेडेंशियल्स के बारे में कुछ जानकारी है (और यदि आप एक रेड टीम हैं तो उम्मीद है कि आप पता नहीं चले हैं)। यह पता लगाने का समय है कि वातावरण में कौन सी सेवाएँ उपयोग की जा रही हैं। अगले अनुभाग में आप कुछ सामान्य सेवाओं का संख्यांकन करने के तरीके की जांच कर सकते हैं।
AWS में सेवाओं की एक आश्चर्यजनक मात्रा है, अगले पृष्ठ पर आपको बुनियादी जानकारी, enumeration cheatsheets**,** पता लगाने से बचने के तरीके, persistence प्राप्त करने और उनमें से कुछ के बारे में अन्य post-exploitation तरकीबें मिलेंगी:
AWS - Servicesध्यान दें कि आपको सभी कार्य हाथ से करने की आवश्यकता नहीं है, इस पोस्ट के नीचे आप स्वचालित उपकरणों के बारे में एक अनुभाग पा सकते हैं automatic tools।
इसके अलावा, इस चरण में आप अप्रमाणित उपयोगकर्ताओं के लिए अधिक सेवाएँ उजागर कर सकते हैं, आप उन्हें शोषण करने में सक्षम हो सकते हैं:
AWS - Unauthenticated Enum & Accessयदि आप विभिन्न संसाधनों पर कम से कम अपनी अनुमतियों की जांच कर सकते हैं तो आप जांच सकते हैं कि क्या आप आगे की अनुमतियाँ प्राप्त कर सकते हैं। आपको कम से कम उन अनुमतियों पर ध्यान केंद्रित करना चाहिए जो:
AWS - Privilege Escalationजब आप AWS सेवाओं का संख्यांकन कर रहे होंगे, तो आप उनमें से कुछ को इंटरनेट पर तत्व उजागर करते हुए पा सकते हैं (VM/Containers ports, databases या queue services, snapshots या buckets...)। एक pentester/red teamer के रूप में आपको हमेशा यह जांचना चाहिए कि क्या आप उन पर संवेदनशील जानकारी / कमजोरियों को खोज सकते हैं क्योंकि वे आपको AWS खाते में आगे की पहुँच प्रदान कर सकते हैं।
इस पुस्तक में आपको जानकारी मिलेगी कि उजागर AWS सेवाओं को कैसे खोजें और उन्हें कैसे जांचें। उजागर नेटवर्क सेवाओं में कमजोरियों को खोजने के लिए मैं आपको विशिष्ट सेवा के लिए खोजने की सिफारिश करूंगा:
जब प्रबंधन खाता संगठन में नए खाते बनाता है, तो एक नया भूमिका नए खाते में बनाई जाती है, जिसे डिफ़ॉल्ट रूप से OrganizationAccountAccessRole
कहा जाता है और प्रबंधन खाते को नए खाते तक पहुँचने के लिए AdministratorAccess नीति दी जाती है।
तो, एक बच्चे के खाते के रूप में व्यवस्थापक के रूप में पहुँचने के लिए आपको आवश्यकता है:
प्रबंधन खाते को समझौता करना और बच्चे के खातों के ID और भूमिकाओं के नाम (डिफ़ॉल्ट रूप से OrganizationAccountAccessRole) को खोजना जो प्रबंधन खाते को व्यवस्थापक के रूप में पहुँचने की अनुमति देता है।
बच्चों के खातों को खोजने के लिए AWS कंसोल में संगठनों के अनुभाग पर जाएँ या aws organizations list-accounts
चलाएँ।
आप सीधे भूमिकाओं के नाम नहीं खोज सकते, इसलिए सभी कस्टम IAM नीतियों की जांच करें और किसी भी नीति को खोजें जो sts:AssumeRole
को पहले से खोजे गए बच्चों के खातों पर अनुमति देती है।
**प्रबंधन खाते में एक principal को sts:AssumeRole
अनुमति के साथ बच्चों के खातों में भूमिका पर समझौता करें (भले ही खाता प्रबंधन खाते से किसी को भी अनुकरण करने की अनुमति दे रहा हो, क्योंकि यह एक बाहरी खाता है, विशिष्ट sts:AssumeRole
अनुमतियाँ आवश्यक हैं)।
aws-recon: एक मल्टी-थ्रेडेड AWS सुरक्षा-केंद्रित इन्वेंटरी संग्रह उपकरण जो Ruby में लिखा गया है।
cloudlist: Cloudlist एक मल्टी-क्लाउड टूल है जो क्लाउड प्रदाताओं से एसेट्स (होस्टनेम, आईपी पते) प्राप्त करने के लिए है।
cloudmapper: CloudMapper आपको आपके Amazon Web Services (AWS) वातावरण का विश्लेषण करने में मदद करता है। इसमें अब सुरक्षा मुद्दों के लिए ऑडिटिंग सहित बहुत अधिक कार्यक्षमता है।
cartography: Cartography एक Python उपकरण है जो बुनियादी ढांचे के संपत्तियों और उनके बीच के संबंधों को एक सहज ग्राफ दृश्य में समेकित करता है, जो Neo4j डेटाबेस द्वारा संचालित है।
starbase: Starbase सेवाओं और प्रणालियों से संपत्तियों और संबंधों को एक सहज ग्राफ दृश्य में एकत्र करता है, जिसमें क्लाउड अवसंरचना, SaaS अनुप्रयोग, सुरक्षा नियंत्रण और अधिक शामिल हैं, जो Neo4j डेटाबेस द्वारा समर्थित है।
aws-inventory: (python2 का उपयोग करता है) यह एक उपकरण है जो एक खाते में बनाए गए सभी AWS संसाधनों को खोजने की कोशिश करता है।
aws_public_ips: यह एक उपकरण है जो एक AWS खाते से जुड़े सभी सार्वजनिक IP पते (IPv4/IPv6 दोनों) को फेच करता है।
SkyArk: स्कैन किए गए AWS वातावरण में सबसे विशेषाधिकार प्राप्त उपयोगकर्ताओं का पता लगाएं, जिसमें AWS Shadow Admins शामिल हैं। यह powershell का उपयोग करता है। आप https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1 में Check-PrivilegedPolicy
फ़ंक्शन में विशेषाधिकार प्राप्त नीतियों की परिभाषा पा सकते हैं।
pacu: Pacu एक ओपन-सोर्स AWS शोषण ढांचा है, जिसे क्लाउड वातावरण के खिलाफ आक्रामक सुरक्षा परीक्षण के लिए डिज़ाइन किया गया है। यह enumerate कर सकता है, miss-configurations खोज सकता है और उन्हें exploit कर सकता है। आप https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134 में user_escalation_methods
dict के अंदर विशेषाधिकार प्राप्त अनुमतियों की परिभाषा पा सकते हैं।
ध्यान दें कि pacu केवल आपके अपने privescs पथों की जांच करता है (खाते के स्तर पर नहीं)।
PMapper: प्रिंसिपल मैपर (PMapper) एक स्क्रिप्ट और पुस्तकालय है जो AWS खाते या AWS संगठन के लिए AWS पहचान और पहुंच प्रबंधन (IAM) की कॉन्फ़िगरेशन में जोखिमों की पहचान करने के लिए है। यह एक खाते में विभिन्न IAM उपयोगकर्ताओं और भूमिकाओं को एक निर्देशित ग्राफ के रूप में मॉडल करता है, जो privilege escalation के लिए और एक हमलावर द्वारा संसाधन या क्रिया तक पहुंच प्राप्त करने के लिए वैकल्पिक पथों की जांच करने की अनुमति देता है। आप privesc पथों को खोजने के लिए उपयोग की जाने वाली permissions की जांच कर सकते हैं जो फ़ाइल नामों में _edges.py
के साथ समाप्त होती हैं https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing
cloudsplaining: Cloudsplaining एक AWS IAM सुरक्षा मूल्यांकन उपकरण है जो न्यूनतम विशेषाधिकार के उल्लंघनों की पहचान करता है और एक जोखिम-प्राथमिकता वाली HTML रिपोर्ट उत्पन्न करता है। यह आपको संभावित रूप से अधिक विशेषाधिकार प्राप्त ग्राहक, इनलाइन और aws नीतियों को दिखाएगा और कौन से प्रिंसिपल्स को उन तक पहुंच है। (यह न केवल privesc की जांच करता है बल्कि अन्य प्रकार की दिलचस्प अनुमतियों की भी जांच करता है, उपयोग करने की सिफारिश की जाती है)।
cloudjack: CloudJack AWS खातों का मूल्यांकन करता है उपडोमेन हाइजैकिंग कमजोरियों के लिए, जो कि अलग-अलग Route53 और CloudFront कॉन्फ़िगरेशन के परिणामस्वरूप होती हैं।
ccat: ECR रिपॉजिटरी की सूची -> ECR रिपॉजिटरी खींचें -> इसे बैकडोर करें -> बैकडोर की गई छवि पुश करें
Dufflebag: Dufflebag एक उपकरण है जो सार्वजनिक Elastic Block Storage (EBS) स्नैपशॉट्स के माध्यम से उन रहस्यों की खोज करता है जो गलती से छोड़े गए हो सकते हैं।
cloudsploit: Aqua द्वारा CloudSploit एक ओपन-सोर्स प्रोजेक्ट है जिसे क्लाउड इन्फ्रास्ट्रक्चर खातों में सुरक्षा जोखिमों का पता लगाने के लिए डिज़ाइन किया गया है, जिसमें शामिल हैं: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI), और GitHub (यह ShadowAdmins की तलाश नहीं करता)।
Prowler: Prowler एक ओपन सोर्स सुरक्षा उपकरण है जो AWS सुरक्षा सर्वोत्तम प्रथाओं का आकलन, ऑडिट, घटना प्रतिक्रिया, निरंतर निगरानी, हार्डनिंग और फॉरेंसिक्स तैयारी करने के लिए उपयोग किया जाता है।
CloudFox: CloudFox आपको अपरिचित क्लाउड वातावरण में स्थिति की जागरूकता प्राप्त करने में मदद करता है। यह एक ओपन-सोर्स कमांड लाइन टूल है जिसे पेनिट्रेशन टेस्टर्स और अन्य आक्रामक सुरक्षा पेशेवरों को क्लाउड इन्फ्रास्ट्रक्चर में शोषण योग्य हमले के रास्ते खोजने में मदद करने के लिए बनाया गया है।
ScoutSuite: स्काउट सूट एक ओपन सोर्स मल्टी-क्लाउड सुरक्षा-ऑडिटिंग उपकरण है, जो क्लाउड वातावरण की सुरक्षा स्थिति का आकलन करने में सक्षम बनाता है।
cs-suite: क्लाउड सुरक्षा सूट (python2.7 का उपयोग करता है और अप्रबंधित लगता है)
Zeus: Zeus AWS EC2 / S3 / CloudTrail / CloudWatch / KMS के लिए शक्तिशाली उपकरण है जो सर्वोत्तम हार्डनिंग प्रथाओं का उपयोग करता है (अप्रबंधित लगता है)। यह केवल सिस्टम के अंदर डिफ़ॉल्ट कॉन्फ़िगर किए गए क्रेड्स की जांच करता है।
cloud-custodian: क्लाउड कस्टोडियन सार्वजनिक क्लाउड खातों और संसाधनों का प्रबंधन करने के लिए एक नियम इंजन है। यह उपयोगकर्ताओं को एक अच्छी तरह से प्रबंधित क्लाउड अवसंरचना सक्षम करने के लिए नीतियों को परिभाषित करने की अनुमति देता है, जो सुरक्षित और लागत अनुकूलित दोनों है। यह संगठनों के पास मौजूद कई अस्थायी स्क्रिप्टों को एक हल्के और लचीले उपकरण में समेकित करता है, जिसमें एकीकृत मैट्रिक्स और रिपोर्टिंग होती है।
pacbot: नीति के रूप में कोड बॉट (PacBot) एक प्लेटफ़ॉर्म है निरंतर अनुपालन निगरानी, अनुपालन रिपोर्टिंग और सुरक्षा स्वचालन के लिए क्लाउड। PacBot में, सुरक्षा और अनुपालन नीतियों को कोड के रूप में लागू किया जाता है। PacBot द्वारा खोजे गए सभी संसाधनों का इन नीतियों के खिलाफ मूल्यांकन किया जाता है ताकि नीति के अनुपालन का आकलन किया जा सके। PacBot का स्वचालित सुधार ढांचा नीति उल्लंघनों का स्वतः उत्तर देने की क्षमता प्रदान करता है, पूर्व निर्धारित क्रियाओं को अपनाकर।
streamalert: StreamAlert एक सर्वर रहित, वास्तविक समय डेटा विश्लेषण ढांचा है जो आपको किसी भी वातावरण से डेटा को ग्रहण, विश्लेषण और अलर्ट करने में सक्षम बनाता है, डेटा स्रोतों और अलर्टिंग लॉजिक का उपयोग करते हुए जिसे आप परिभाषित करते हैं। कंप्यूटर सुरक्षा टीमें हर दिन घटना पहचान और प्रतिक्रिया के लिए टेराबाइट्स लॉग डेटा को स्कैन करने के लिए StreamAlert का उपयोग करती हैं।
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)