diff --git a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.md b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.md index e9fa7ffe9..0b9f940b6 100644 --- a/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.md +++ b/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.md @@ -1,4 +1,4 @@ -# AWS - S3 Unauthenticated Enum +# AWS - S3 अनधिकृत Enum {{#include ../../../banners/hacktricks-training.md}} @@ -17,23 +17,24 @@ #### Enumeration & OSINT: - **wappalyzer** ब्राउज़र प्लगइन का उपयोग करना -- बर्प का उपयोग करना (**स्पाइडरिंग** वेब) या पृष्ठ के माध्यम से मैन्युअल रूप से नेविगेट करके सभी **संसाधन** **लोड** किए जाएंगे जो इतिहास में सहेजे जाएंगे। -- **संसाधनों के लिए जाँच करें** जैसे डोमेन में: +- बर्प का उपयोग करना (**वेब को स्पाइडर करना**) या पृष्ठ के माध्यम से मैन्युअल रूप से नेविगेट करके सभी **संसाधनों** को **इतिहास** में सहेजना। +- **संसाधनों के लिए जाँच करें** जैसे: ``` http://s3.amazonaws.com/[bucket_name]/ http://[bucket_name].s3.amazonaws.com/ ``` -- **CNAMES** के लिए जाँच करें क्योंकि `resources.domain.com` में CNAME `bucket.s3.amazonaws.com` हो सकता है -- जाँच करें [https://buckets.grayhatwarfare.com](https://buckets.grayhatwarfare.com/), एक वेब जिसमें पहले से **खोजे गए खुले बकेट** हैं। +- **CNAMES** के लिए जाँच करें क्योंकि `resources.domain.com` का CNAME `bucket.s3.amazonaws.com` हो सकता है +- **[s3dns](https://github.com/olizimmermann/s3dns)** – एक हल्का DNS सर्वर जो DNS ट्रैफ़िक का विश्लेषण करके क्लाउड स्टोरेज बकेट (S3, GCP, Azure) की पहचान करता है। यह CNAMEs का पता लगाता है, समाधान श्रृंखलाओं का पालन करता है, और बकेट पैटर्न से मेल खाता है, जो ब्रूट-फोर्स या API-आधारित खोज के लिए एक शांत विकल्प प्रदान करता है। पुनः खोज और OSINT कार्यप्रवाह के लिए आदर्श। +- [https://buckets.grayhatwarfare.com](https://buckets.grayhatwarfare.com/), एक वेब जो पहले से **खोजे गए खुले बकेट** के साथ है। - **बकेट नाम** और **बकेट डोमेन नाम** को **एक समान होना चाहिए।** -- **flaws.cloud** **IP** 52.92.181.107 पर है और यदि आप वहाँ जाते हैं तो यह आपको [https://aws.amazon.com/s3/](https://aws.amazon.com/s3/) पर रीडायरेक्ट करता है। इसके अलावा, `dig -x 52.92.181.107` `s3-website-us-west-2.amazonaws.com` देता है। +- **flaws.cloud** का **IP** 52.92.181.107 है और यदि आप वहाँ जाते हैं तो यह आपको [https://aws.amazon.com/s3/](https://aws.amazon.com/s3/) पर रीडायरेक्ट करता है। इसके अलावा, `dig -x 52.92.181.107` `s3-website-us-west-2.amazonaws.com` देता है। - यह जाँचने के लिए कि यह एक बकेट है, आप **यहाँ भी जा सकते हैं** [https://flaws.cloud.s3.amazonaws.com/](https://flaws.cloud.s3.amazonaws.com/)। -#### Brute-Force +#### ब्रूट-फोर्स -आप बकेट खोज सकते हैं **कंपनी से संबंधित नामों को ब्रूट-फोर्स करके** जिसे आप पेंटेस्ट कर रहे हैं: +आप बकेट्स को **कंपनी से संबंधित नामों को ब्रूट-फोर्स करके** खोज सकते हैं: - [https://github.com/sa7mon/S3Scanner](https://github.com/sa7mon/S3Scanner) - [https://github.com/clario-tech/s3-inspector](https://github.com/clario-tech/s3-inspector) @@ -75,17 +76,17 @@ cat /tmp/final-words-s3.txt.temp2 /tmp/final-words-s3.txt.temp3 /tmp/final-words s3scanner --threads 100 scan --buckets-file /tmp/final-words-s3.txt | grep bucket_exists -#### Loot S3 Buckets +#### S3 बकेट्स का लूट -दिए गए S3 खुले बकेट, [**BucketLoot**](https://github.com/redhuntlabs/BucketLoot) स्वचालित रूप से **दिलचस्प जानकारी** के लिए **खोज सकता है**। +खुले S3 बकेट्स को देखते हुए, [**BucketLoot**](https://github.com/redhuntlabs/BucketLoot) स्वचालित रूप से **दिलचस्प जानकारी** के लिए खोज सकता है। ### क्षेत्र खोजें -आप [**https://docs.aws.amazon.com/general/latest/gr/s3.html**](https://docs.aws.amazon.com/general/latest/gr/s3.html) में AWS द्वारा समर्थित सभी क्षेत्रों को खोज सकते हैं। +आप [**https://docs.aws.amazon.com/general/latest/gr/s3.html**](https://docs.aws.amazon.com/general/latest/gr/s3.html) में AWS द्वारा समर्थित सभी क्षेत्रों को पा सकते हैं। #### DNS द्वारा -आप **`dig`** और **`nslookup`** के साथ एक बकेट के क्षेत्र को प्राप्त कर सकते हैं **खोजे गए IP** का **DNS अनुरोध करके**: +आप **`dig`** और **`nslookup`** का उपयोग करके एक बकेट के क्षेत्र को प्राप्त कर सकते हैं, जो **खोजे गए IP का DNS अनुरोध** करके: ```bash dig flaws.cloud ;; ANSWER SECTION: @@ -99,6 +100,8 @@ Non-authoritative answer: आप स्थिर वेबसाइट पर जा सकते हैं: `flaws.cloud.s3-website-us-west-2.amazonaws.com`\ या आप बकेट पर जाकर पहुंच सकते हैं: `flaws.cloud.s3-us-west-2.amazonaws.com` + + #### प्रयास करके यदि आप एक बकेट तक पहुंचने की कोशिश करते हैं, लेकिन **डोमेन नाम में आप एक अन्य क्षेत्र निर्दिष्ट करते हैं** (उदाहरण के लिए बकेट `bucket.s3.amazonaws.com` में है लेकिन आप `bucket.s3-website-us-west-2.amazonaws.com` पर पहुंचने की कोशिश करते हैं, तो आपको **सही स्थान पर निर्देशित किया जाएगा**: @@ -133,7 +136,10 @@ https://{user_provided}.s3.amazonaws.com ``` ### सार्वजनिक बकेट से खाता आईडी प्राप्त करें -यह **`S3:ResourceAccount`** **नीति स्थिति कुंजी** का लाभ उठाकर AWS खाता निर्धारित करना संभव है +यह एक AWS खाता निर्धारित करना संभव है **`S3:ResourceAccount`** **नीति स्थिति कुंजी** का लाभ उठाकर। यह स्थिति **एक खाते में S3 बकेट के आधार पर पहुंच को प्रतिबंधित करती है** (अन्य खाता-आधारित नीतियाँ उस खाते के आधार पर प्रतिबंधित करती हैं जिसमें अनुरोध करने वाला प्रमुख है)।\ +और क्योंकि नीति में **वाइल्डकार्ड** हो सकते हैं, इसलिए खाता संख्या **केवल एक संख्या में एक बार** पाई जा सकती है। + +यह उपकरण प्रक्रिया को स्वचालित करता है: ```bash # Installation pipx install s3-account-search @@ -143,7 +149,7 @@ s3-account-search arn:aws:iam::123456789012:role/s3_read s3://my-bucket # With an object s3-account-search arn:aws:iam::123456789012:role/s3_read s3://my-bucket/path/to/object.ext ``` -यह तकनीक API Gateway URLs, Lambda URLs, Data Exchange डेटा सेट और यहां तक कि टैग के मान को प्राप्त करने के लिए भी काम करती है (यदि आप टैग कुंजी जानते हैं)। आप [**मूल शोध**](https://blog.plerion.com/conditional-love-for-aws-metadata-enumeration/) और इस शोषण को स्वचालित करने के लिए उपकरण [**conditional-love**](https://github.com/plerionhq/conditional-love/) में अधिक जानकारी प्राप्त कर सकते हैं। +यह तकनीक API Gateway URLs, Lambda URLs, Data Exchange डेटा सेट और यहां तक कि टैग के मान (यदि आप टैग कुंजी जानते हैं) प्राप्त करने के लिए भी काम करती है। आप [**मूल शोध**](https://blog.plerion.com/conditional-love-for-aws-metadata-enumeration/) और इस शोषण को स्वचालित करने के लिए उपकरण [**conditional-love**](https://github.com/plerionhq/conditional-love/) में अधिक जानकारी प्राप्त कर सकते हैं। ### एक बकेट की पुष्टि करना कि यह AWS खाते से संबंधित है @@ -159,7 +165,7 @@ curl -X GET "[bucketname].amazonaws.com/" \ ### रूट खाता enumeration के रूप में उपयोग किए गए ईमेल -जैसा कि [**इस ब्लॉग पोस्ट**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/) में समझाया गया है, यह जांचना संभव है कि क्या कोई ईमेल पता किसी AWS खाते से संबंधित है **एक S3 बकेट पर ACLs के माध्यम से ईमेल को अनुमति देने की कोशिश करके**। यदि यह कोई त्रुटि उत्पन्न नहीं करता है, तो इसका मतलब है कि ईमेल किसी AWS खाते का रूट उपयोगकर्ता है: +जैसा कि [**इस ब्लॉग पोस्ट**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/) में समझाया गया है, यह जांचना संभव है कि क्या कोई ईमेल पता किसी AWS खाते से संबंधित है **S3 बकेट पर ACLs के माध्यम से ईमेल को अनुमति देने की कोशिश करके**। यदि यह कोई त्रुटि उत्पन्न नहीं करता है, तो इसका मतलब है कि ईमेल किसी AWS खाते का रूट उपयोगकर्ता है: ```python s3_client.put_bucket_acl( Bucket=bucket_name,