AWS Pentesting
Basic Information
AWS environment का pentesting शुरू करने से पहले आपको AWS कैसे काम करता है इसके बारे में कुछ मूल बातें जाननी चाहिए ताकि आप समझ सकें कि आपको क्या करना है, misconfigurations कैसे खोजनी है और उन्हें कैसे exploit करना है।
जैसे organization hierarchy, IAM और अन्य मूलभूत अवधारणाओं को समझाया गया है:
AWS - Basic InformationLabs to learn
Tools to simulate attacks:
AWS Pentester/Red Team Methodology
AWS environment का audit करने के लिए यह जानना बहुत महत्वपूर्ण है: कौन से services उपयोग किए जा रहे हैं, क्या exposed है, किसके पास access है, और आंतरिक AWS services और बाहरी services कैसे जुड़े हुए हैं।
Red Team के दृष्टिकोण से, AWS environment को compromise करने का पहला कदम कुछ credentials प्राप्त करना है। यहां कुछ विचार दिए गए हैं कि इसे कैसे किया जा सकता है:
github (या समान) में leaks - OSINT
Social Engineering
Password reuse (password leaks)
AWS-Hosted Applications में Vulnerabilities
Server Side Request Forgery metadata endpoint तक पहुंच के साथ
Local File Read
/home/USERNAME/.aws/credentials
C:\Users\USERNAME\.aws\credentials
3rd parties breached
Internal Employee
Cognito credentials
या unauthenticated service को compromise करके जो exposed है:
AWS - Unauthenticated Enum & Accessया यदि आप review कर रहे हैं तो आप बस इन roles के साथ credentials मांग सकते हैं:
AWS - Permissions for a Pentestएक बार जब आप credentials प्राप्त कर लेते हैं, तो आपको यह जानना होगा कि वे credentials किसके हैं, और उनके पास क्या access है, इसलिए आपको कुछ बुनियादी enumeration करना होगा:
Basic Enumeration
SSRF
यदि आपने AWS के अंदर किसी मशीन में SSRF पाया है तो इस पेज पर ट्रिक्स देखें:
Whoami
पहली चीजों में से एक जो आपको जाननी चाहिए वह है कि आप कौन हैं (किस account में आप हैं और AWS environment के बारे में अन्य जानकारी):
ध्यान दें कि कंपनियां canary tokens का उपयोग कर सकती हैं यह पहचानने के लिए कि tokens चोरी हो रहे हैं और उपयोग किए जा रहे हैं। इसे उपयोग करने से पहले यह जांचना अनुशंसित है कि token canary token है या नहीं। अधिक जानकारी के लिए इस पेज को देखें।
Org Enumeration
AWS - Organizations EnumIAM Enumeration
यदि आपके पास पर्याप्त अनुमतियाँ हैं, तो AWS खाते के अंदर प्रत्येक इकाई के विशेषाधिकारों की जाँच करना आपको यह समझने में मदद करेगा कि आप और अन्य पहचानें क्या कर सकते हैं और विशेषाधिकार कैसे बढ़ा सकते हैं।
यदि आपके पास IAM को सूचीबद्ध करने के लिए पर्याप्त अनुमतियाँ नहीं हैं, तो आप उन्हें bruteforce करके चुरा सकते हैं। सूचीकरण और brute-forcing कैसे करें इसकी जाँच करें:
AWS - IAM, Identity Center & SSO Enumअब जब आपके पास अपने क्रेडेंशियल्स के बारे में कुछ जानकारी है (और यदि आप एक red team हैं तो उम्मीद है कि आप पता नहीं चले हैं)। अब यह पता लगाने का समय है कि पर्यावरण में कौन सी सेवाएँ उपयोग की जा रही हैं। निम्नलिखित अनुभाग में आप कुछ सामान्य सेवाओं को सूचीबद्ध करने के कुछ तरीके देख सकते हैं।
Services Enumeration, Post-Exploitation & Persistence
AWS में सेवाओं की एक आश्चर्यजनक मात्रा है, निम्नलिखित पृष्ठ पर आपको मूल जानकारी, सूचीकरण cheatsheets**,** पता लगाने से बचने, स्थायित्व प्राप्त करने, और उनमें से कुछ के बारे में अन्य post-exploitation ट्रिक्स मिलेंगे:
AWS - Servicesध्यान दें कि आपको सारा काम मैन्युअल रूप से करने की आवश्यकता नहीं है, इस पोस्ट के नीचे आप स्वचालित उपकरणों के बारे में एक अनुभाग पा सकते हैं।
इसके अलावा, इस चरण में आपने अप्रमाणित उपयोगकर्ताओं के लिए अधिक सेवाएँ उजागर की हो सकती हैं, आप उन्हें शोषित करने में सक्षम हो सकते हैं:
AWS - Unauthenticated Enum & AccessPrivilege Escalation
यदि आप कम से कम अपने स्वयं के अनुमतियों की जाँच कर सकते हैं विभिन्न संसाधनों पर तो आप अधिक अनुमतियाँ प्राप्त करने में सक्षम हो सकते हैं। आपको कम से कम उन अनुमतियों पर ध्यान केंद्रित करना चाहिए जो निम्नलिखित में इंगित की गई हैं:
AWS - Privilege EscalationPublicly Exposed Services
AWS सेवाओं को सूचीबद्ध करते समय आप उनमें से कुछ को इंटरनेट पर तत्वों को उजागर करते हुए पा सकते हैं (VM/Containers पोर्ट्स, डेटाबेस या कतार सेवाएँ, snapshots या buckets...)। एक pentester/red teamer के रूप में आपको हमेशा यह जांचना चाहिए कि क्या आप उनमें संवेदनशील जानकारी / कमजोरियाँ पा सकते हैं क्योंकि वे आपको AWS खाते में और अधिक पहुंच प्रदान कर सकते हैं।
इस पुस्तक में आपको उजागर AWS सेवाओं को खोजने और उनकी जांच करने के बारे में जानकारी मिलनी चाहिए। उजागर नेटवर्क सेवाओं में कमजोरियों को खोजने के बारे में मैं आपको विशिष्ट सेवा के लिए खोजने की सलाह दूंगा:
Compromising the Organization
From the root/management account
जब प्रबंधन खाता संगठन में नए खाते बनाता है, तो एक नई भूमिका नए खाते में बनाई जाती है, जिसे डिफ़ॉल्ट रूप से OrganizationAccountAccessRole
नाम दिया जाता है और प्रबंधन खाते को नए खाते तक पहुँचने के लिए AdministratorAccess नीति दी जाती है।
इसलिए, एक child account के रूप में व्यवस्थापक तक पहुँचने के लिए आपको आवश्यकता है:
प्रबंधन खाते से समझौता करें और बच्चों के खातों के ID और भूमिका के नाम (डिफ़ॉल्ट रूप से OrganizationAccountAccessRole) को खोजें जो प्रबंधन खाते को व्यवस्थापक के रूप में पहुँचने की अनुमति देता है।
बच्चों के खातों को खोजने के लिए aws कंसोल में संगठनों के अनुभाग पर जाएं या
aws organizations list-accounts
चलाएंआप सीधे भूमिकाओं के नाम नहीं पा सकते हैं, इसलिए सभी कस्टम IAM नीतियों की जाँच करें और किसी भी को खोजें जो
sts:AssumeRole
को पहले से खोजे गए बच्चों के खातों पर अनुमति देता है।प्रबंधन खाते में
sts:AssumeRole
अनुमति के साथ एक प्रमुख से समझौता करें जो बच्चों के खातों में भूमिका पर है (भले ही खाता किसी को भी प्रबंधन खाते से प्रतिरूपण करने की अनुमति दे रहा हो, क्योंकि यह एक बाहरी खाता है, विशिष्टsts:AssumeRole
अनुमतियाँ आवश्यक हैं)।
Automated Tools
Recon
aws-recon: एक बहु-थ्रेडेड AWS सुरक्षा-केंद्रित इन्वेंटरी संग्रह उपकरण जो रूबी में लिखा गया है।
cloudlist: Cloudlist एक multi-cloud टूल है जो Cloud Providers से Assets (Hostnames, IP Addresses) प्राप्त करने के लिए उपयोग होता है।
cloudmapper: CloudMapper आपकी Amazon Web Services (AWS) environments का विश्लेषण करने में मदद करता है। इसमें अब और भी अधिक कार्यक्षमता शामिल है, जिसमें सुरक्षा मुद्दों के लिए ऑडिटिंग भी शामिल है।
cartography: Cartography एक Python टूल है जो Neo4j डेटाबेस द्वारा संचालित एक सहज ग्राफ़ दृश्य में इंफ्रास्ट्रक्चर एसेट्स और उनके बीच के संबंधों को एकत्रित करता है।
starbase: Starbase सेवाओं और प्रणालियों से संपत्तियों और संबंधों को एकत्र करता है, जिसमें क्लाउड इन्फ्रास्ट्रक्चर, SaaS एप्लिकेशन, सुरक्षा नियंत्रण और अधिक शामिल हैं, और इसे Neo4j डेटाबेस द्वारा समर्थित एक सहज ग्राफ़ दृश्य में प्रस्तुत करता है।
aws-inventory: (python2 का उपयोग करता है) यह एक उपकरण है जो एक खाते में बनाए गए सभी AWS संसाधनों को खोजने की कोशिश करता है।
aws_public_ips: यह एक उपकरण है जो AWS खाते से जुड़े सभी सार्वजनिक IP पतों (दोनों IPv4/IPv6) को प्राप्त करता है।
Privesc & Exploiting
SkyArk: स्कैन किए गए AWS वातावरण में सबसे विशेषाधिकार प्राप्त उपयोगकर्ताओं की खोज करें, जिसमें AWS Shadow Admins भी शामिल हैं। यह powershell का उपयोग करता है। आप https://github.com/cyberark/SkyArk/blob/master/AWStealth/AWStealth.ps1 में
Check-PrivilegedPolicy
फ़ंक्शन में विशेषाधिकार प्राप्त नीतियों की परिभाषा पा सकते हैं।pacu: Pacu एक ओपन-सोर्स AWS exploitation framework है, जिसे क्लाउड वातावरण के खिलाफ आक्रामक सुरक्षा परीक्षण के लिए डिज़ाइन किया गया है। यह गणना कर सकता है, गलत कॉन्फ़िगरेशन पा सकता है और उनका शोषण कर सकता है। आप https://github.com/RhinoSecurityLabs/pacu/blob/866376cd711666c775bbfcde0524c817f2c5b181/pacu/modules/iam__privesc_scan/main.py#L134 में
user_escalation_methods
dict के अंदर विशेषाधिकार प्राप्त अनुमतियों की परिभाषा पा सकते हैं।ध्यान दें कि pacu केवल आपके अपने privescs पथों की जांच करता है (पूरे खाते की नहीं)।
PMapper: Principal Mapper (PMapper) एक स्क्रिप्ट और लाइब्रेरी है जो AWS खाते या AWS संगठन के लिए AWS Identity and Access Management (IAM) के कॉन्फ़िगरेशन में जोखिमों की पहचान करने के लिए है। यह एक खाते में विभिन्न IAM Users और Roles को एक निर्देशित ग्राफ़ के रूप में मॉडल करता है, जो privilege escalation और वैकल्पिक रास्तों की जांच को सक्षम बनाता है जिनका उपयोग एक हमलावर AWS में किसी संसाधन या क्रिया तक पहुंच प्राप्त करने के लिए कर सकता है। आप permissions used to find privesc पथों की जांच कर सकते हैं जिनके फाइलनाम
_edges.py
में समाप्त होते हैं https://github.com/nccgroup/PMapper/tree/master/principalmapper/graphing में।
cloudsplaining: Cloudsplaining एक AWS IAM सुरक्षा मूल्यांकन उपकरण है जो न्यूनतम विशेषाधिकारों के उल्लंघनों की पहचान करता है और एक जोखिम-प्राथमिकता वाली HTML रिपोर्ट उत्पन्न करता है। यह आपको संभावित अधिक विशेषाधिकार प्राप्त ग्राहक, इनलाइन और aws नीतियों और किन प्रमुखों को उन तक पहुंच है दिखाएगा। (यह केवल privesc के लिए ही नहीं बल्कि अन्य प्रकार की दिलचस्प अनुमतियों के लिए भी जांच करता है, उपयोग करने की सिफारिश की जाती है)।
cloudjack: CloudJack AWS खातों का आकलन करता है subdomain hijacking vulnerabilities के लिए जो decoupled Route53 और CloudFront configurations के परिणामस्वरूप होती हैं।
ccat: List ECR repos -> Pull ECR repo -> Backdoor it -> Push backdoored image
Dufflebag: Dufflebag एक उपकरण है जो सार्वजनिक Elastic Block Storage (**EBS) snapshots में secrets की searches करता है जो गलती से छोड़े जा सकते हैं।
Audit
cloudsploit: CloudSploit by Aqua एक ओपन-सोर्स प्रोजेक्ट है जिसे cloud infrastructure खातों में security risks का पता लगाने के लिए डिज़ाइन किया गया है, जिसमें शामिल हैं: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI), और GitHub (यह ShadowAdmins की खोज नहीं करता)।
Prowler: Prowler एक ओपन सोर्स सुरक्षा उपकरण है जो AWS सुरक्षा सर्वोत्तम प्रथाओं के आकलन, ऑडिट, घटना प्रतिक्रिया, निरंतर निगरानी, सख्ती और फोरेंसिक तैयारी करने के लिए उपयोग किया जाता है।
CloudFox: CloudFox आपको अपरिचित cloud environments में स्थिति जागरूकता प्राप्त करने में मदद करता है। यह एक open source command line tool है जिसे penetration testers और अन्य offensive security professionals को cloud infrastructure में exploitable attack paths खोजने में मदद करने के लिए बनाया गया है।
ScoutSuite: Scout Suite एक ओपन सोर्स मल्टी-क्लाउड सिक्योरिटी-ऑडिटिंग टूल है, जो क्लाउड वातावरण की सुरक्षा स्थिति का आकलन करने में सक्षम बनाता है।
cs-suite: Cloud Security Suite (python2.7 का उपयोग करता है और अप्रचलित लगता है)
Zeus: Zeus AWS EC2 / S3 / CloudTrail / CloudWatch / KMS के लिए एक शक्तिशाली टूल है जो सर्वोत्तम हार्डनिंग प्रथाओं के लिए है (अप्रचलित लगता है)। यह केवल सिस्टम के अंदर डिफ़ॉल्ट कॉन्फ़िगर किए गए क्रेड्स की जांच करता है।
Constant Audit
cloud-custodian: Cloud Custodian सार्वजनिक क्लाउड खातों और संसाधनों के प्रबंधन के लिए एक नियम इंजन है। यह उपयोगकर्ताओं को नीतियों को परिभाषित करने की अनुमति देता है ताकि एक अच्छी तरह से प्रबंधित क्लाउड इन्फ्रास्ट्रक्चर सक्षम हो, जो सुरक्षित और लागत अनुकूलित हो। यह संगठनों के कई एडहॉक स्क्रिप्ट्स को एक हल्के और लचीले टूल में समेकित करता है, जिसमें एकीकृत मेट्रिक्स और रिपोर्टिंग होती है।
pacbot: Policy as Code Bot (PacBot) एक प्लेटफ़ॉर्म है जो निरंतर अनुपालन निगरानी, अनुपालन रिपोर्टिंग और क्लाउड के लिए सुरक्षा स्वचालन के लिए है। PacBot में, सुरक्षा और अनुपालन नीतियों को कोड के रूप में लागू किया जाता है। PacBot द्वारा खोजे गए सभी संसाधनों का इन नीतियों के खिलाफ मूल्यांकन किया जाता है ताकि नीति अनुरूपता का आकलन किया जा सके। PacBot ऑटो-फिक्स फ्रेमवर्क नीति उल्लंघनों का पूर्वनिर्धारित कार्यों को लेकर स्वचालित रूप से प्रतिक्रिया देने की क्षमता प्रदान करता है।
streamalert: StreamAlert एक सर्वरलेस, वास्तविक-समय डेटा विश्लेषण फ्रेमवर्क है जो आपको किसी भी वातावरण से डेटा को इनजेस्ट, विश्लेषण और अलर्ट करने की शक्ति देता है, डेटा स्रोतों और अलर्टिंग लॉजिक का उपयोग करके जिसे आप परिभाषित करते हैं। कंप्यूटर सुरक्षा टीमें StreamAlert का उपयोग हर दिन टेराबाइट्स लॉग डेटा को स्कैन करने के लिए करती हैं ताकि घटना का पता लगाने और प्रतिक्रिया देने के लिए।
DEBUG: AWS cli अनुरोधों को कैप्चर करें
संदर्भ
Last updated