Translated ['src/pentesting-ci-cd/cloudflare-security/cloudflare-domains

This commit is contained in:
Translator
2025-01-11 19:21:25 +00:00
parent a6b21df8e1
commit afd1580602
44 changed files with 2099 additions and 524 deletions

View File

@@ -4,7 +4,7 @@
## DocumentDB
Amazon DocumentDB, जो MongoDB के साथ संगतता प्रदान करता है, एक **तेज़, विश्वसनीय, और पूरी तरह से प्रबंधित डेटाबेस सेवा** के रूप में प्रस्तुत किया गया है। इसे तैनाती, संचालन, और स्केलेबिलिटी में सरलता के लिए डिज़ाइन किया गया है, यह **क्लाउड में MongoDB-संगत डेटाबेस के निर्बाध माइग्रेशन और संचालन** की अनुमति देता है। उपयोगकर्ता इस सेवा का लाभ उठाकर अपने मौजूदा एप्लिकेशन कोड को निष्पादित कर सकते हैं और परिचित ड्राइवरों और उपकरणों का उपयोग कर सकते हैं, जिससे MongoDB के साथ काम करने के समान एक सुचारू संक्रमण और संचालन सुनिश्चित होता है।
Amazon DocumentDB, जो MongoDB के साथ संगतता प्रदान करता है, एक **तेज़, विश्वसनीय, और पूरी तरह से प्रबंधित डेटाबेस सेवा** के रूप में प्रस्तुत किया गया है। इसे तैनाती, संचालन, और स्केलेबिलिटी में सरलता के लिए डिज़ाइन किया गया है, यह **क्लाउड में MongoDB-संगत डेटाबेस के निर्बाध माइग्रेशन और संचालन** की अनुमति देता है। उपयोगकर्ता इस सेवा का लाभ उठाकर अपने मौजूदा एप्लिकेशन कोड को निष्पादित कर सकते हैं और परिचित ड्राइवरों और उपकरणों का उपयोग कर सकते हैं, जिससे MongoDB के साथ काम करने के समान एक सुगम संक्रमण और संचालन सुनिश्चित होता है।
### Enumeration
```bash
@@ -24,7 +24,7 @@ aws --region us-east-1 --profile ad docdb describe-db-cluster-snapshot-attribute
चूंकि DocumentDB एक MongoDB संगत डेटाबेस है, आप कल्पना कर सकते हैं कि यह सामान्य NoSQL इंजेक्शन हमलों के प्रति भी संवेदनशील है:
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/nosql-injection
https://book.hacktricks.wiki/en/pentesting-web/nosql-injection.html
{{#endref}}
### DocumentDB

View File

@@ -6,9 +6,9 @@
### Basic Information
Amazon DynamoDB को AWS द्वारा एक **पूर्ण रूप से प्रबंधित, सर्वरलेस, की-वैल्यू NoSQL डेटाबेस** के रूप में प्रस्तुत किया गया है, जो उच्च प्रदर्शन वाले अनुप्रयोगों को उनके आकार की परवाह किए बिना शक्ति प्रदान करने के लिए तैयार किया गया है। यह सेवा मजबूत सुविधाओं की गारंटी देती है, जिसमें अंतर्निहित सुरक्षा उपाय, निरंतर बैकअप, कई क्षेत्रों में स्वचालित प्रतिकृति, एकीकृत इन-मेमोरी कैशिंग, और सुविधाजनक डेटा निर्यात उपयोगिताएँ शामिल हैं।
Amazon DynamoDB को AWS द्वारा एक **पूर्ण रूप से प्रबंधित, सर्वर रहित, की-वैल्यू NoSQL डेटाबेस** के रूप में प्रस्तुत किया गया है, जो उच्च प्रदर्शन वाले अनुप्रयोगों को उनके आकार की परवाह किए बिना शक्ति प्रदान करने के लिए तैयार किया गया है। यह सेवा मजबूत सुविधाओं की गारंटी देती है, जिसमें अंतर्निहित सुरक्षा उपाय, निरंतर बैकअप, कई क्षेत्रों में स्वचालित प्रतिकृति, एकीकृत इन-मेमोरी कैशिंग, और सुविधाजनक डेटा निर्यात उपयोगिताएँ शामिल हैं।
DynamoDB के संदर्भ में, पारंपरिक डेटाबेस स्थापित करने के बजाय, **तालिकाएँ बनाई जाती हैं**। प्रत्येक तालिका को **तालिका की प्राथमिक कुंजी** के एक अभिन्न घटक के रूप में **पार्टीशन कुंजी**े विनिर्देशन की आवश्यकता होती है। यह पार्टीशन कुंजी, जो मूल रूप से एक **हैश मान** है, वस्तुओं की पुनर्प्राप्ति और विभिन्न होस्टों के बीच डेटा के वितरण में महत्वपूर्ण भूमिका निभाती है। यह वितरण डेटाबेस की स्केलेबिलिटी और उपलब्धता बनाए रखने के लिए महत्वपूर्ण है। इसके अतिरिक्त, डेटा संगठन को और अधिक परिष्कृत करने के लिए **सॉर्ट कुंजी** को शामिल करने का विकल्प भी है।
DynamoDB के संदर्भ में, पारंपरिक डेटाबेस स्थापित करने के बजाय, **तालिकाएँ बनाई जाती हैं**। प्रत्येक तालिका को **तालिका की प्राथमिक कुंजी** के एक अभिन्न घटक के रूप में **पार्टीशन कुंजी**निर्दिष्ट करना अनिवार्य है। यह पार्टीशन कुंजी, जो मूल रूप से एक **हैश मान** है, वस्तुओं की पुनर्प्राप्ति और विभिन्न होस्टों के बीच डेटा के वितरण में महत्वपूर्ण भूमिका निभाती है। यह वितरण डेटाबेस की स्केलेबिलिटी और उपलब्धता बनाए रखने के लिए महत्वपूर्ण है। इसके अतिरिक्त, डेटा संगठन को और अधिक परिष्कृत करने के लिए **सॉर्ट कुंजी** को शामिल करने का विकल्प भी है।
### Encryption
@@ -18,9 +18,9 @@ DynamoDB के संदर्भ में, पारंपरिक डेट
### Backups & Export to S3
**तालिका बैकअप** के निर्माण को **अनुसूचित** करना या **मांग पर** बनाना संभव है। इसके अलावा, **तालिका के लिए पॉइंट-इन-टाइम रिकवरी (PITR)** सक्षम करना भी संभव है। पॉइंट-इन-टाइम रिकवरी आपके DynamoDB डेटा के निरंतर **बैकअप** प्रदान करती है **35 दिनों** के लिए ताकि आप आकस्मिक लिखने या हटाने के संचालन से सुरक्षा कर सकें।
**तालिका बैकअप** उत्पन्न करने के लिए **अनुसूच** बनाना या उन्हें **मांग पर** बनाना संभव है। इसके अलावा, एक तालिका के लिए **पॉइंट-इन-टाइम रिकवरी (PITR)** सक्षम करना भी संभव है। पॉइंट-इन-टाइम रिकवरी आपके DynamoDB डेटा के निरंतर **बैकअप** प्रदान करती है **35 दिनों** के लिए ताकि आप आकस्मिक लिखने या हटाने के संचालन के खिलाफ सुरक्षा कर सकें।
**तालिका के डेटा को S3 में निर्यात** करना भी संभव है, लेकिन तालिका को **PITR सक्षम** होना चाहिए।
**S3** में एक तालिका के डेटा को निर्यात करना भी संभव है, लेकिन तालिका को **PITR सक्षम** होना चाहिए।
### GUI
@@ -84,7 +84,7 @@ aws dynamodb describe-endpoints #Dynamodb endpoints
DynamoDB डेटा तक पहुँचने के लिए **SQL सिंटैक्स** के साथ तरीके हैं, इसलिए, सामान्य **SQL इंजेक्शन भी संभव हैं**
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/sql-injection
https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html
{{#endref}}
### NoSQL इंजेक्शन
@@ -105,7 +105,7 @@ DynamoDB में विभिन्न **शर्तें** डेटा प
"GT": " " #All strings are greater than a space
```
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/nosql-injection
https://book.hacktricks.wiki/en/pentesting-web/nosql-injection.html
{{#endref}}
### कच्चा Json इंजेक्शन
@@ -123,7 +123,7 @@ https://book.hacktricks.xyz/pentesting-web/nosql-injection
`1000"}],"ComparisonOperator": "GT","AttributeValueList": [{"N": "0`
"EQ" स्थिति को ठीक करें जो ID 1000 के लिए खोज कर रह है और फिर सभी डेटा के लिए देख रह है जिनका Id स्ट्रिंग 0 से बड़ा है, जो कि सभी है।
"EQ" स्थिति को ठीक करें जो ID 1000 के लिए खोज कर रह है और फिर सभी डेटा के लिए देख रह है जिनका Id स्ट्रिंग 0 से बड़ा है, जो कि सभी है।
एक **कमजोर उदाहरण लॉगिन का** हो सकता है:
```python
@@ -152,7 +152,7 @@ password: none"}],"ComparisonOperator": "NE","AttributeValueList": [{"S": "none
```java
new ScanSpec().withProjectionExpression("UserName").withFilterExpression(user_input+" = :username and Password = :password").withValueMap(valueMap)
```
आपको यह जानना आवश्यक है कि DynamoDB में **फिल्टर एक्सप्रेशंस** में **वस्तुओं** को स्कैन करते समय एक विशेषता **मान** को **बदलने** के लिए खोजते समय, टोकन को **`:`** वर्ण से **शुरू** होना चाहिए। ऐसे टोकन को **रनटाइम** में वास्तविक **विशेषता मान** से **बदला** जाएगा।
आपको यह जानना आवश्यक है कि DynamoDB में **फिल्टर एक्सप्रेशंस** में **वैल्यू** को **बदलने** के लिए आइटम को स्कैन करते समय, टोकन को **`:`** कैरेक्टर से **शुरू** होना चाहिए। ऐसे टोकन को **रनटाइम** में वास्तविक **एट्रिब्यूट वैल्यू** के साथ **बदला** जाएगा।
इसलिए, पिछले जैसे एक लॉगिन को इस तरह से बायपास किया जा सकता है:
```bash

View File

@@ -12,7 +12,7 @@ aws-vpc-and-networking-basic-information.md
## EC2
Amazon EC2 का उपयोग **वर्चुअल सर्वर** शुरू करने के लिए किया जाता है। यह **सुरक्षा** और **नेटवर्किंग** की कॉन्फ़िगरेशन और **स्टोरेज** के प्रबंधन की अनुमति देता है। Amazon EC2 की लचीलापन इसकी क्षमता में स्पष्ट है कि यह संसाधनों को ऊपर और नीचे दोनों की ओर स्केल कर सकता है, प्रभावी रूप से बदलती आवश्यकताओं या लोकप्रियता में वृद्धि के लिए अनुकूलित होता है। यह विशेषता सटीक ट्रैफ़िक भविष्यवाणियों की आवश्यकता को कम करती है।
Amazon EC2 का उपयोग **वर्चुअल सर्वर** शुरू करने के लिए किया जाता है। यह **सुरक्षा** और **नेटवर्किंग** की कॉन्फ़िगरेशन और **स्टोरेज** के प्रबंधन की अनुमति देता है। Amazon EC2 की लचीलापन इसकी क्षमता में स्पष्ट है कि यह संसाधनों को ऊपर और नीचे दोनों की ओर स्केल कर सकता है, प्रभावी रूप से आवश्यकताओं में बदलाव या लोकप्रियता में वृद्धि के अनुसार अनुकूलित होता है। यह विशेषता सटीक ट्रैफ़िक भविष्यवाणियों की आवश्यकता को कम करती है।
EC2 में गणना करने के लिए दिलचस्प चीजें:
@@ -29,16 +29,16 @@ EC2 में गणना करने के लिए दिलचस्प
### Instance Profiles
**EC2 इंस्टेंस** पर चलने वाले अनुप्रयोगों को अनुमतियाँ देने के लिए **भूमिकाओं** का उपयोग करने के लिए थोड़ी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता होती है। EC2 इंस्टेंस पर चलने वाला एक अनुप्रयोग AWS से वर्चुअलाइज्ड ऑपरेटिंग सिस्टम द्वारा अलग किया गया है। इस अतिरिक्त पृथक्करण के कारण, आपको EC2 इंस्टेंस को AWS भूमिका और इसके संबंधित अनुमतियों को असाइन करने के लिए एक अतिरिक्त कदम की आवश्यकता होती है और उन्हें इसके अनुप्रयोगों के लिए उपलब्ध कराना होता है।
**EC2 इंस्टेंस** पर चलने वाले अनुप्रयोगों को अनुमतियाँ देने के लिए **भूमिकाओं** का उपयोग करने के लिए थोड़ी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता होती है। EC2 इंस्टेंस पर चलने वाला अनुप्रयोग AWS से वर्चुअलाइज्ड ऑपरेटिंग सिस्टम द्वारा अलग किया गया है। इस अतिरिक्त पृथक्करण के कारण, आपको EC2 इंस्टेंस को AWS भूमिका और इसके संबंधित अनुमतियों को असाइन करने के लिए एक अतिरिक्त कदम की आवश्यकता होती है और उन्हें इसके अनुप्रयोगों के लिए उपलब्ध कराना होता है।
यह अतिरिक्त कदम एक [_**इंस्टेंस प्रोफ़ाइल**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) का **निर्माण** है जो इंस्टेंस से जुड़ा होता है। **इंस्टेंस प्रोफ़ाइल में भूमिका होती है और** यह इंस्टेंस पर चलने वाले अनुप्रयोग को भूमिका के अस्थायी क्रेडेंशियल प्रदान कर सकता है। उन अस्थायी क्रेडेंशियल का उपयोग फिर अनुप्रयोग के API कॉल में संसाधनों तक पहुँचने और केवल उन संसाधनों तक पहुँच को सीमित करने के लिए किया जा सकता है जो भूमिका निर्दिष्ट करती है। ध्यान दें कि **एक समय में केवल एक भूमिका को EC2 इंस्टेंस को असाइन किया जा सकता है**, और इंस्टेंस पर सभी अनुप्रयोग एक ही भूमिका और अनुमतियों को साझा करते हैं।
यह अतिरिक्त कदम है [_**इंस्टेंस प्रोफ़ाइल**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) का निर्माण जो इंस्टेंस से जुड़ा होता है। **इंस्टेंस प्रोफ़ाइल भूमिका को शामिल करता है और** इंस्टेंस पर चलने वाले अनुप्रयोग को भूमिका के अस्थायी क्रेडेंशियल प्रदान कर सकता है। उन अस्थायी क्रेडेंशियल का उपयोग फिर अनुप्रयोग के API कॉल में संसाधनों तक पहुँचने और केवल उन संसाधनों तक पहुँच को सीमित करने के लिए किया जा सकता है जो भूमिका निर्दिष्ट करती है। ध्यान दें कि **एक समय में केवल एक भूमिका को EC2 इंस्टेंस को असाइन किया जा सकता है**, और इंस्टेंस पर सभी अनुप्रयोग एक ही भूमिका और अनुमतियों को साझा करते हैं।
### Metadata Endpoint
AWS EC2 मेटाडेटा एक Amazon Elastic Compute Cloud (EC2) इंस्टेंस के बारे में जानकारी है जो रनटाइम पर इंस्टेंस के लिए उपलब्ध है। इस मेटाडेटा का उपयोग इंस्टेंस के बारे में जानकारी प्रदान करने के लिए किया जाता है, जैसे कि इसका इंस्टेंस ID, वह उपलब्धता क्षेत्र जिसमें यह चल रहा है, इंस्टेंस से संबंधित IAM भूमिका, और इंस्टेंस का होस्टनेम।
AWS EC2 मेटाडेटा एक Amazon Elastic Compute Cloud (EC2) इंस्टेंस के बारे में जानकारी है जो रनटाइम पर इंस्टेंस के लिए उपलब्ध है। यह मेटाडेटा इंस्टेंस के बारे में जानकारी प्रदान करने के लिए उपयोग किया जाता है, जैसे कि इसका इंस्टेंस ID, वह उपलब्धता क्षेत्र जिसमें यह चल रहा है, इंस्टेंस से संबंधित IAM भूमिका, और इंस्टेंस का होस्टनेम।
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
{{#endref}}
### Enumeration
@@ -149,11 +149,11 @@ aws ec2 describe-vpc-peering-connections
## EBS
Amazon **EBS** (Elastic Block Store) **स्नैपशॉट** मूल रूप से AWS EBS वॉल्यूम का स्थिर **बैकअप** हैं। दूसरे शब्दों में, ये एक **EC2** इंस्टेंस से जुड़े **डिस्क** की **कॉपी** हैं जो एक विशिष्ट समय पर होती हैं। EBS स्नैपशॉट को क्षेत्रों और खातों के बीच कॉपी किया जा सकता है, या यहां तक कि डाउनलोड किया जा सकता है और स्थानीय रूप से चलाया जा सकता है।
Amazon **EBS** (Elastic Block Store) **स्नैपशॉट** मूल रूप से AWS EBS वॉल्यूम का स्थिर **बैकअप** हैं। दूसरे शब्दों में, ये एक विशिष्ट समय पर एक **EC2** इंस्टेंस से जुड़े **डिस्क** की **कॉपी** हैं। EBS स्नैपशॉट को क्षेत्रों और खातों के बीच कॉपी किया जा सकता है, या यहां तक कि डाउनलोड किया जा सकता है और स्थानीय रूप से चलाया जा सकता है।
स्नैपशॉट में **संवेदनशील जानकारी** हो सकती है जैसे **स्रोत कोड या एपीआई कुंजी**, इसलिए, यदि आपके पास मौका है, तो इसकी जांच करना अनुशंसित है।
### अंतर AMI & EBS
### AMI और EBS में अंतर
एक **AMI** का उपयोग **EC2 इंस्टेंस लॉन्च करने** के लिए किया जाता है, जबकि एक EC2 **स्नैपशॉट** का उपयोग **EBS वॉल्यूम पर संग्रहीत डेटा का बैकअप और पुनर्प्राप्त करने** के लिए किया जाता है। जबकि एक EC2 स्नैपशॉट का उपयोग एक नया AMI बनाने के लिए किया जा सकता है, यह AMI के समान नहीं है, और इसमें ऑपरेटिंग सिस्टम, एप्लिकेशन सर्वर, या किसी अन्य सॉफ़्टवेयर के बारे में जानकारी शामिल नहीं है जो एक एप्लिकेशन चलाने के लिए आवश्यक है।
@@ -171,7 +171,7 @@ Amazon **EBS** (Elastic Block Store) **स्नैपशॉट** मूल र
**SSM एजेंट** सिस्टम प्रबंधक को इन संसाधनों को अपडेट, प्रबंधित और कॉन्फ़िगर करने की अनुमति देता है। एजेंट **AWS क्लाउड में सिस्टम प्रबंधक सेवा से अनुरोधों को संसाधित करता है**, और फिर उन्हें अनुरोध में निर्दिष्ट के अनुसार चलाता है।
**SSM एजेंट कुछ AMIs में**[ **पूर्व-स्थापित आता है**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) या आपको इसे [**मैन्युअल रूप से इंस्टॉल करना होगा**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) इंस्टेंस पर। इसके अलावा, इंस्टेंस के अंदर उपयोग की जाने वाली IAM भूमिका को संवाद करने के लिए **AmazonEC2RoleforSSM** नीति संलग्न करनी होगी।
**SSM एजेंट आता है**[ **कुछ AMIs में पूर्व-स्थापित**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) या आपको इंस्टेंस पर [**हाथ से स्थापित करना होगा**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html)। इसके अलावा, इंस्टेंस के अंदर उपयोग की जाने वाली IAM भूमिका को संवाद करने के लिए **AmazonEC2RoleforSSM** नीति संलग्न करनी होगी।
### एनुमरेशन
```bash
@@ -182,13 +182,13 @@ aws ssm describe-instance-patches --instance-id <id>
aws ssm describe-instance-patch-states --instance-ids <id>
aws ssm describe-instance-associations-status --instance-id <id>
```
आप एक EC2 इंस्टेंस में यह जांच सकते हैं कि सिस्टम मैनेजर चल रहा है या नहीं, बस इसे निष्पादित करके:
आप एक EC2 इंस्टेंस में यह जांच सकते हैं कि Systems Manager चल रहा है या नहीं, बस निम्नलिखित कमांड को निष्पादित करके:
```bash
ps aux | grep amazon-ssm
```
### Privesc
अगली पृष्ठ पर आप देख सकते हैं कि **SSM अनुमतियों का दुरुपयोग करके विशेषाधिकार कैसे बढ़ाएं**:
In the following page you can check how to **SSM अनुमतियों का दुरुपयोग करके विशेषाधिकार बढ़ाना**:
{{#ref}}
../../aws-privilege-escalation/aws-ssm-privesc.md
@@ -226,46 +226,46 @@ aws autoscaling describe-launch-configurations
aws autoscaling describe-load-balancer-target-groups
aws autoscaling describe-load-balancers
```
## नाइट्रो
## Nitro
AWS नाइट्रो एक **नवोन्मेषी प्रौद्योगिकियों** का समूह है जो AWS EC2 इंस्टेंस के लिए आधारभूत प्लेटफ़ॉर्म बनाता है। इसे सुरक्षा, प्रदर्शन और विश्वसनीयता को **बढ़ाने** के लिए Amazon द्वारा पेश किया गया था, नाइट्रो कस्टम **हार्डवेयर घटकों और एक हल्के हाइपरवाइज़र** का लाभ उठाता है। यह पारंपरिक वर्चुअलाइजेशन कार्यक्षमता के अधिकांश हिस्से को समर्पित हार्डवेयर और सॉफ़्टवेयर में एब्सट्रैक्ट करता है, **हमले की सतह को कम करता है** और संसाधन दक्षता में सुधार करता है। वर्चुअलाइजेशन कार्यों को ऑफलोड करके, नाइट्रो EC2 इंस्टेंस को **नजदीकी बARE-मेटल प्रदर्शन** प्रदान करने की अनुमति देता है, जिससे यह संसाधन-गहन अनुप्रयोगों के लिए विशेष रूप से लाभकारी बनता है। इसके अतिरिक्त, नाइट्रो सुरक्षा चिप विशेष रूप से **हार्डवेयर और फर्मवेयर की सुरक्षा** सुनिश्चित करती है, जिससे इसकी मजबूत आर्किटेक्चर को और मजबूत किया जाता है।
AWS Nitro एक **नवोन्मेषी प्रौद्योगिकियों** का एक सेट है जो AWS EC2 इंस्टेंस के लिए आधारभूत प्लेटफ़ॉर्म बनाता है। इसे Amazon द्वारा **सुरक्षा, प्रदर्शन, और विश्वसनीयता** को **बढ़ाने** के लिए पेश किया गया था, Nitro कस्टम **हार्डवेयर घटकों और एक हल्के हाइपरवाइज़र** का लाभ उठाता है। यह पारंपरिक वर्चुअलाइजेशन कार्यक्षमता के अधिकांश हिस्से को समर्पित हार्डवेयर और सॉफ़्टवेयर में एब्सट्रैक्ट करता है, **हमले की सतह को कम करता है** और संसाधन दक्षता में सुधार करता है। वर्चुअलाइजेशन कार्यों को ऑफलोड करके, Nitro EC2 इंस्टेंस को **नजदीकी बARE-मेटल प्रदर्शन** प्रदान करने की अनुमति देता है, ज संसाधन-गहन अनुप्रयोगों के लिए विशेष रूप से लाभकारी है। इसके अतिरिक्त, Nitro सुरक्षा चिप विशेष रूप से **हार्डवेयर और फर्मवेयर की सुरक्षा** सुनिश्चित करती है, जिससे इसकी मजबूत आर्किटेक्चर को और मजबूत किया जाता है।
अधिक जानकारी प्राप्त करें और इसे कैसे एन्यूमरेट करें:
Get more information and how to enumerate it from:
{{#ref}}
aws-nitro-enum.md
{{#endref}}
## वीपीएन
## VPN
एक वीपीएन आपको अपन**ऑन-प्रिमाइस नेटवर्क (साइट-टू-साइट वीपीएन)** या **कर्मचारियों के लैपटॉप (क्लाइंट वीपीएन)** को **AWS VPC** से जोड़ने की अनुमति देता है ताकि सेवाओं को इंटरनेट पर उजागर किए बिना एक्सेस किया जा सके।
एक VPN आपक**ऑन-प्रिमाइस नेटवर्क (साइट-से-साइट VPN)** या **कर्मचारियों के लैपटॉप (क्लाइंट VPN)** को **AWS VPC** से जोड़ने की अनुमति देता है ताकि सेवाओं को इंटरनेट पर उजागर किए बिना एक्सेस किया जा सके।
#### बुनियादी AWS वीपीएन घटक
#### Basic AWS VPN Components
1. **कस्टमर गेटवे**:
- कस्टमर गेटवे एक संसाधन है जिसे आप AWS में VPN कनेक्शन के अपने पक्ष का प्रतिनिधित्व करने के लिए बनाते हैं।
- यह मूल रूप से साइट-टू-साइट वीपीएन कनेक्शन के आपके पक्ष पर एक भौतिक उपकरण या सॉफ़्टवेयर एप्लिकेशन है।
- आप AWS को कस्टमर गेटवे बनाने के लिए अपने नेटवर्क डिवाइस (जैसे राउटर या फ़ायरवॉल) का रूटिंग जानकारी और सार्वजनिक IP पता प्रदान करते हैं।
1. **Customer Gateway**:
- एक Customer Gateway एक संसाधन है जिसे आप AWS में VPN कनेक्शन के अपने पक्ष का प्रतिनिधित्व करने के लिए बनाते हैं।
- यह मूल रूप से साइट-से-साइट VPN कनेक्शन के आपके पक्ष पर एक भौतिक उपकरण या सॉफ़्टवेयर एप्लिकेशन है।
- आप AWS को एक Customer Gateway बनाने के लिए अपने नेटवर्क उपकरण (जैसे राउटर या फ़ायरवॉल) का रूटिंग जानकारी और सार्वजनिक IP पता प्रदान करते हैं।
- यह VPN कनेक्शन सेट करने के लिए एक संदर्भ बिंदु के रूप में कार्य करता है और इसके लिए अतिरिक्त शुल्क नहीं होता है।
2. **वर्चुअल प्राइवेट गेटवे**:
- वर्चुअल प्राइवेट गेटवे (VPG) साइट-टू-साइट वीपीएन कनेक्शन के Amazon पक्ष पर VPN कंसंट्रेटर है।
2. **Virtual Private Gateway**:
- एक Virtual Private Gateway (VPG) साइट-से-साइट VPN कनेक्शन के Amazon पक्ष पर VPN कंसंट्रेटर है।
- यह आपके VPC से जुड़ा होता है और आपके VPN कनेक्शन के लिए लक्ष्य के रूप में कार्य करता है।
- VPG VPN कनेक्शन के लिए AWS पक्ष का एंडपॉइंट है।
- यह आपके VPC और आपके ऑन-प्रिमाइस नेटवर्क के बीच सुरक्षित संचार को संभालता है।
3. **साइट-टू-साइट वीपीएन कनेक्शन**:
- साइट-टू-साइट वीपीएन कनेक्शन आपके ऑन-प्रिमाइस नेटवर्क को एक सुरक्षित, IPsec VPN टनल के माध्यम से VPC से जोड़ता है।
- इस प्रकार के कनेक्शन के लिए एक कस्टमर गेटवे और एक वर्चुअल प्राइवेट गेटवे की आवश्यकता होती है।
- इसका उपयोग आपके डेटा सेंटर या नेटवर्क और आपके AWS वातावरण के बीच सुरक्षित, स्थिर और सुसंगत संचार के लिए किया जाता है।
3. **Site-to-Site VPN Connection**:
- एक साइट-से-साइट VPN कनेक्शन आपके ऑन-प्रिमाइस नेटवर्क को एक सुरक्षित, IPsec VPN टनल के माध्यम से VPC से जोड़ता है।
- इस प्रकार के कनेक्शन के लिए एक Customer Gateway और एक Virtual Private Gateway की आवश्यकता होती है।
- इसका उपयोग आपके डेटा सेंटर या नेटवर्क और आपके AWS वातावरण के बीच सुरक्षित, स्थिर, और लगातार संचार के लिए किया जाता है।
- आमतौर पर नियमित, दीर्घकालिक कनेक्शनों के लिए उपयोग किया जाता है और कनेक्शन के माध्यम से स्थानांतरित डेटा की मात्रा के आधार पर बिल किया जाता है।
4. **क्लाइंट वीपीएन एंडपॉइंट**:
- क्लाइंट वीपीएन एंडपॉइंट एक संसाधन है जिसे आप AWS में क्लाइंट वीपीएन सत्रों को सक्षम और प्रबंधित करने के लिए बनाते हैं।
4. **Client VPN Endpoint**:
- एक Client VPN एंडपॉइंट एक संसाधन है जिसे आप AWS में क्लाइंट VPN सत्रों को सक्षम और प्रबंधित करने के लिए बनाते हैं।
- इसका उपयोग व्यक्तिगत उपकरणों (जैसे लैपटॉप, स्मार्टफोन, आदि) को AWS संसाधनों या आपके ऑन-प्रिमाइस नेटवर्क से सुरक्षित रूप से कनेक्ट करने की अनुमति देने के लिए किया जाता है।
- यह साइट-टू-साइट वीपीएन से भिन्न है क्योंकि यह पूरे नेटवर्क को जोड़ने के बजाय व्यक्तिगत ग्राहकों के लिए डिज़ाइन किया गया है।
- क्लाइंट वीपीएन के साथ, प्रत्येक क्लाइंट डिवाइस एक VPN क्लाइंट सॉफ़्टवेयर का उपयोग करके एक सुरक्षित कनेक्शन स्थापित करता है।
- यह साइट-से-साइट VPN से भिन्न है क्योंकि यह पूरे नेटवर्क को जोड़ने के बजाय व्यक्तिगत क्लाइंट के लिए डिज़ाइन किया गया है।
- Client VPN के साथ, प्रत्येक क्लाइंट डिवाइस एक VPN क्लाइंट सॉफ़्टवेयर का उपयोग करके एक सुरक्षित कनेक्शन स्थापित करता है।
आप [**AWS वीपीएन के लाभों और घटकों के बारे में अधिक जानकारी यहाँ प्राप्त कर सकते हैं**](aws-vpc-and-networking-basic-information.md#vpn)
You can [**find more information about the benefits and components of AWS VPNs here**](aws-vpc-and-networking-basic-information.md#vpn).
### एन्यूमरेशन
### Enumeration
```bash
# VPN endpoints
## Check used subnetwork, authentication, SGs, connected...
@@ -301,7 +301,7 @@ aws ec2 describe-vpn-connections
यदि **VPN कनेक्शन स्थापित किया गया था** तो आपको सिस्टम में **`.opvn`** कॉन्फ़िग फ़ाइलों के लिए खोज करनी चाहिए। इसके अलावा, एक स्थान जहाँ आप **कॉन्फ़िगरेशन** पा सकते हैं वह है **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
#### **पोस्ट एक्सप्लइटेशन**
#### **पोस्ट एक्सप्लइटेशन**
{{#ref}}
../../aws-post-exploitation/aws-vpn-post-exploitation.md

View File

@@ -30,15 +30,15 @@ DB क्लस्टर बनाते समय मास्टर **यू
### Authentication
प्रमाणीकरण के 3 प्रकार के विकल्प हैं, लेकिन **मास्टर पासवर्ड का उपयोग हमेशा अनुमति है**:
प्रमाणीकरण विकल्पों के 3 प्रकार हैं, लेकिन **मास्टर पासवर्ड का उपयोग हमेशा अनुमति है**:
<figure><img src="../../../images/image (227).png" alt=""><figcaption></figcaption></figure>
### Public Access & VPC
डिफ़ॉल्ट रूप से **कोई सार्वजनिक पहुँच** डेटाबेस को नहीं दी जाती है, हालाँकि इसे **दी जा सकती है**। इसलिए, डिफ़ॉल्ट रूप से केवल उसी VPC की मशीनें इसे एक्सेस कर सकेंगी यदि चयनित **सुरक्षा समूह** (जो EC2 SG में संग्रहीत हैं) इसकी अनुमति देता है।
डिफ़ॉल्ट रूप से **कोई सार्वजनिक पहुँच** डेटाबेस को नहीं दी जाती है, हालाँकि इसे **दी जा सकती है**। इसलिए, डिफ़ॉल्ट रूप से केवल उसी VPC से मशीनें इसे एक्सेस कर सकेंगी यदि चयनित **सुरक्षा समूह** (जो EC2 SG में संग्रहीत हैं) इस अनुमति देता है।
DB इंस्टेंस को उजागर करने के बजाय, एक **RDS Proxy** बनाना संभव है जो DB क्लस्टर की **स्केलेबिलिटी** और **उपलब्धता** को **सुधारता है**
DB इंस्टेंस को उजागर करने के बजाय, एक **RDS Proxy** बनाना संभव है जो DB क्लस्टर की **स्केलेबिलिटी** और **उपलब्धता** को **सुधारता** है
इसके अलावा, **डेटाबेस पोर्ट को भी संशोधित किया जा सकता है**
@@ -46,7 +46,7 @@ DB इंस्टेंस को उजागर करने के बजा
**एन्क्रिप्शन डिफ़ॉल्ट रूप से सक्षम है** एक AWS प्रबंधित कुंजी का उपयोग करते हुए (इसके बजाय एक CMK चुना जा सकता है)।
आपकी एन्क्रिप्शन को सक्षम करने से, आप **आपके स्टोरेज, स्नैपशॉट, रीड रेप्लिका और आपके बैकअप के लिए एन्क्रिप्शन को सक्षम कर रहे हैं**। इस एन्क्रिप्शन क प्रबंधित करने के लिए कुंजी **KMS** का उपयोग करके जारी की जा सकती हैं।\
आपकी एन्क्रिप्शन को सक्षम करने से, आप **आपके स्टोरेज, स्नैपशॉट, रीड रेप्लिका और आपके बैकअप के लिए एन्क्रिप्शन को सक्षम कर रहे हैं**। इस एन्क्रिप्शन क प्रबंध करने के लिए कुंजी **KMS** का उपयोग करके जारी की जा सकती हैं।\
आपके डेटाबेस के निर्माण के बाद इस स्तर की एन्क्रिप्शन को जोड़ना संभव नहीं है। **यह इसके निर्माण के दौरान किया जाना चाहिए**
हालांकि, एक **वर्कअराउंड है जो आपको एक अनएन्क्रिप्टेड डेटाबेस को एन्क्रिप्ट करने की अनुमति देता है**। आप अपने अनएन्क्रिप्टेड डेटाबेस का एक स्नैपशॉट बना सकते हैं, उस स्नैपशॉट की एक एन्क्रिप्टेड कॉपी बना सकते हैं, उस एन्क्रिप्टेड स्नैपशॉट का उपयोग करके एक नया डेटाबेस बना सकते हैं, और फिर, अंततः, आपका डेटाबेस एन्क्रिप्टेड हो जाएगा।
@@ -62,13 +62,13 @@ TDE का उपयोग करने के लिए कुछ प्रा
- हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि विकल्प समूह केवल विशिष्ट डेटाबेस इंजनों और संस्करणों के लिए उपलब्ध हैं।
2. **विकल्प समूह में TDE का समावेश**:
- एक विकल्प समूह के साथ संघबद्ध होने के बाद, Oracle Transparent Data Encryption विकल्प को उस समूह में शामिल करने की आवश्यकता है।
- यह पहचानना आवश्यक है कि एक बार जब TDE विकल्प को एक विकल्प समूह में जोड़ा जाता है, तो यह एक स्थायी fixture बन जात है और इसे हटाया नहीं जा सकता।
- यह पहचानना आवश्यक है कि एक बार जब TDE विकल्प को एक विकल्प समूह में जोड़ा जाता है, तो यह एक स्थायी विशेषता बन जात है और इसे हटाया नहीं जा सकता।
3. **TDE एन्क्रिप्शन मोड**:
- TDE दो अलग-अलग एन्क्रिप्शन मोड प्रदान करता है:
- **TDE टेबलस्पेस एन्क्रिप्शन**: यह मोड पूरे तालिकाओं को एन्क्रिप्ट करता है, डेटा सुरक्षा के व्यापक दायरे को प्रदान करता है।
- **TDE कॉलम एन्क्रिप्शन**: यह मोड डेटाबेस के भीतर विशिष्ट, व्यक्तिगत तत्वों को एन्क्रिप्ट करने पर केंद्रित है, जिससे यह नियंत्रित करना संभव होता है कि कौन सा डेटा एन्क्रिप्ट किया गया है।
इन पूर्वापेक्षाओं और TDE के संचालन की जटिलताओं को समझना RDS के भीतर एन्क्रिप्शन को प्रभावी ढंग से लागू करने और प्रबंधित करने के लिए महत्वपूर्ण है, डेटा सुरक्षा और आवश्यक मानकों के अनुपालन को सुनिश्चित करना
इन पूर्वापेक्षाओं और TDE के संचालन की जटिलताओं को समझना RDS के भीतर एन्क्रिप्शन को प्रभावी ढंग से लागू करने और प्रबंधित करने के लिए महत्वपूर्ण है, डेटा सुरक्षा और आवश्यक मानकों के अनुपालन को सुनिश्चित करते हुए
### Enumeration
```bash
@@ -134,7 +134,7 @@ aws rds modify-db-instance --db-instance-identifier <ID> --master-user-password
DynamoDB डेटा तक पहुँचने के लिए **SQL सिंटैक्स** के साथ तरीके हैं, इसलिए, सामान्य **SQL इंजेक्शन भी संभव हैं**
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/sql-injection
https://book.hacktricks.wiki/en/pentesting-web/sql-injection/index.html
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -4,14 +4,14 @@
## **CloudTrail**
AWS CloudTrail **आपके AWS वातावरण के भीतर गतिविधियों को रिकॉर्ड और मॉनिटर करता है**। यह विस्तृत **इवेंट लॉग** कैप्चर करता है, जिसमें यह शामिल है कि किसने क्या किया, कब, और कहाँ से, सभी AWS संसाधनों के साथ इंटरैक्शन के लिए। यह परिवर्तनों और क्रियाओं का एक ऑडिट ट्रेल प्रदान करता है, जो सुरक्षा विश्लेषण, अनुपालन ऑडिटिंग, और संसाधन परिवर्तन ट्रैकिंग में मदद करता है। CloudTrail उपयोगकर्ता और संसाधन व्यवहार को समझने, सुरक्षा स्थिति को बढ़ाने, और नियामक अनुपालन सुनिश्चित करने के लिए आवश्यक है।
AWS CloudTrail **आपके AWS वातावरण के भीतर गतिविधियों को रिकॉर्ड और मॉनिटर करता है**। यह विस्तृत **इवेंट लॉग** कैप्चर करता है, जिसमें यह शामिल है कि किसने क्या किया, कब, और कहाँ, सभी AWS संसाधनों के साथ इंटरैक्शन के लिए। यह परिवर्तनों और क्रियाओं का एक ऑडिट ट्रेल प्रदान करता है, जो सुरक्षा विश्लेषण, अनुपालन ऑडिटिंग, और संसाधन परिवर्तन ट्रैकिंग में मदद करता है। CloudTrail उपयोगकर्ता और संसाधन व्यवहार को समझने, सुरक्षा स्थिति को बढ़ाने, और नियामक अनुपालन सुनिश्चित करने के लिए आवश्यक है।
प्रत्येक लॉग की गई घटना में शामिल है:
- कॉल की गई API का नाम: `eventName`
- कॉल की गई सेवा: `eventSource`
- समय: `eventTime`
- IP पता: `SourceIPAddress`
- आईपी पता: `SourceIPAddress`
- एजेंट विधि: `userAgent`। उदाहरण:
- Signing.amazonaws.com - AWS प्रबंधन कंसोल से
- console.amazonaws.com - खाते का रूट उपयोगकर्ता
@@ -19,12 +19,12 @@ AWS CloudTrail **आपके AWS वातावरण के भीतर ग
- अनुरोध पैरामीटर: `requestParameters`
- प्रतिक्रिया तत्व: `responseElements`
घटनाएँ **लगभग हर 5 मिनट में एक JSON फ़ाइल में एक नए लॉग फ़ाइल में लिखी जाती हैं**, इन्हें CloudTrail द्वारा रखा जाता है और अंततः, लॉग फ़ाइलें **लगभग 15 मिनट बाद S3 में वितरित की जाती हैं।**\
घटनाएँ **लगभग हर 5 मिनट में एक JSON फ़ाइल में एक नए लॉग फ़ाइल में लिखी जाती हैं**, इन्हें CloudTrail द्वारा रखा जाता है और अंततः, लॉग फ़ाइलें **लगभग 15 मिनट बाद S3 में भेजी जाती हैं।**\
CloudTrail के लॉग को **खातों और क्षेत्रों के बीच समेकित किया जा सकता है।**\
CloudTrail **लॉग फ़ाइल की अखंडता का उपयोग करने की अनुमति देता है ताकि आप यह सत्यापित कर सकें कि आपकी लॉग फ़ाइलें CloudTrail द्वारा आपको वितरित किए जाने के बाद अपरिवर्तित रही हैं।** यह लॉग के अंदर एक डाइजेस्ट फ़ाइल में SHA-256 हैश बनाता है। नए लॉग का sha-256 हैश हर घंटे बनाया जाता है।\
एक ट्रेल बनाते समय इवेंट चयनकर्ता आपको लॉग करने के लिए ट्रेल को इंगित करने की अनुमति देंगे: प्रबंधन, डेटा या अंतर्दृष्टि घटनाएँ।
CloudTrail **लॉग फ़ाइल की अखंडता का उपयोग करने की अनुमति देता है ताकि आप यह सत्यापित कर सकें कि आपकी लॉग फ़ाइलें CloudTrail द्वारा आपको भेजे जाने के बाद अपरिवर्तित रही हैं।** यह लॉग के अंदर एक डाइजेस्ट फ़ाइल में SHA-256 हैश बनाता है। नए लॉग का sha-256 हैश हर घंटे बनाया जाता है।\
जब एक ट्रेल बनाया जाता है, तो इवेंट चयनकर्ता आपको लॉग करने के लिए ट्रेल को इंगित करने की अनुमति देंगे: प्रबंधन, डेटा या अंतर्दृष्टि घटनाएँ।
लॉग एक S3 बकेट में सहेजे जाते हैं। डिफ़ॉल्ट रूप से सर्वर साइड एन्क्रिप्शन का उपयोग किया जाता है (SSE-S3) ताकि AWS उन लोगों के लिए सामग्री को डिक्रिप्ट करेगा जिनके पास इसका एक्सेस है, लेकिन अतिरिक्त सुरक्षा के लिए आप KMS और अपनी कुंजियों के साथ SSE का उपयोग कर सकते हैं।
लॉग एक S3 बकेट में सहेजे जाते हैं। डिफ़ॉल्ट रूप से सर्वर साइड एन्क्रिप्शन का उपयोग किया जाता है (SSE-S3) इसलिए AWS उन लोगों के लिए सामग्री को डिक्रिप्ट करेगा जिनके पास इसका एक्सेस है, लेकिन अतिरिक्त सुरक्षा के लिए आप KMS और अपनी स्वयं की कुंजियों के साथ SSE का उपयोग कर सकते हैं।
लॉग एक **S3 बकेट में इस नाम प्रारूप के साथ संग्रहीत होते हैं**:
@@ -44,18 +44,18 @@ CloudTrail **लॉग फ़ाइल की अखंडता का उप
### कई खातों से लॉग समेकित करना
- उस AWS खाते में एक ट्रेल बनाएं जहाँ आप लॉग फ़ाइलें वितरित करना चाहते हैं
- CloudTrail के लिए क्रॉस-खाता एक्सेस की अनुमति देतुए गंतव्य S3 बकेट पर अनुमतियाँ लागू करें और प्रत्येक AWS खाते को अनुमति दें जिसे एक्सेस की आवश्यकता है
- उस AWS खाते में एक ट्रेल बनाएं जहाँ आप लॉग फ़ाइलें भेजी जाना चाहते हैं
- गंतव्य S3 बकेट पर अनुमतियाँ लागू करें जो CloudTrail के लिए क्रॉस-खाता एक्सेस की अनुमति देतं और प्रत्येक AWS खाते को अनुमति दें जिसे एक्सेस की आवश्यकता है
- अन्य AWS खातों में एक नया ट्रेल बनाएं और चरण 1 में बनाए गए बकेट का उपयोग करने का चयन करें
हालांकि, भले ही आप सभी लॉग को एक ही S3 बकेट में सहेज सकते हैं, आप एक ही AWS खाते से संबंधित CloudWatch लॉग में कई खातों से CloudTrail लॉग को समेकित नहीं कर सकते।
> [!CAUTION]
> याद रखें कि एक खाते में **विभिन्न ट्रेल्स** हो सकते हैं जो CloudTrail **सक्षम** हैं, जो विभिन्न बकेट में समान (या विभिन्न) लॉग को संग्रहीत करते हैं।
> याद रखें कि एक खाते में **विभिन्न ट्रेल्स** हो सकते हैं जो CloudTrail **सक्षम** हैं और विभिन्न बकेट में समान (या विभिन्न) लॉग को स्टोर कर सकते हैं।
### सभी संगठन खातों से 1 में CloudTrail
जब एक CloudTrail बनाते है, तो यह संभव है कि सभी खातों के लिए CloudTrail को सक्रिय करने के लिए संकेत दिया जाए और लॉग को केवल 1 बकेट में प्राप्त किया जाए:
जब एक CloudTrail बनाया जाता है, तो यह संकेत देना संभव है कि सभी खातों के लिए CloudTrail सक्रिय किया जाए और लॉग को केवल 1 बकेट में प्राप्त किया जाए:
<figure><img src="../../../../images/image (200).png" alt=""><figcaption></figcaption></figure>
@@ -63,27 +63,27 @@ CloudTrail **लॉग फ़ाइल की अखंडता का उप
### लॉग फ़ाइलों की जांच
आप यह जांच सकते हैं कि लॉग में परिवर्तन नहीं किया गया है।
आप यह जांच सकते हैं कि लॉग में कोई परिवर्तन नहीं हुआ है।
```javascript
aws cloudtrail validate-logs --trail-arn <trailARN> --start-time <start-time> [--end-time <end-time>] [--s3-bucket <bucket-name>] [--s3-prefix <prefix>] [--verbose]
```
### Logs to CloudWatch
**CloudTrail स्वचालित रूप से लॉग को CloudWatch में भेज सकता है ताकि आप अलर्ट सेट कर सकें जो आपको संदिग्ध गतिविधियों के प्रदर्शन पर चेतावनी देते हैं।**\
ध्यान दें कि CloudTrail को CloudWatch में लॉग भेजने की अनुमति देने के लिए एक **भूमिका** बनाई जानी चाहिए जो उस क्रिया की अनुमति देती है। यदि संभव हो, तो इन क्रियाओं को करने के लिए AWS की डिफ़ॉल्ट भूमिका का उपयोग करने की सिफारिश की जाती है। यह भूमिका CloudTrail को अनुमति देगी:
**CloudTrail स्वचालित रूप से लॉग को CloudWatch में भेज सकता है ताकि आप संदिग्ध गतिविधियों के प्रदर्शन पर चेतावनी देने वाले अलर्ट सेट कर सकें।**\
ध्यान दें कि CloudTrail को CloudWatch में लॉग भेजने की अनुमति देने के लिए एक **भूमिका** बनाई जानी चाहिए जो उस क्रिया की अनुमति देती है। यदि संभव हो, तो इन क्रियाओं को करने के लिए AWS डिफ़ॉल्ट भूमिका का उपयोग करने की सिफारिश की जाती है। यह भूमिका CloudTrail को अनुमति देगी:
- CreateLogStream: यह CloudWatch Logs लॉग स्ट्रीम बनाने की अनुमति देता है
- PutLogEvents: CloudTrail लॉग को CloudWatch Logs लॉग स्ट्रीम में वितरित करें
### Event History
CloudTrail Event History आपको एक तालिका में रिकॉर्ड किए गए लॉग की जांच करने की अनुमति देता है:
CloudTrail Event History आपको एक तालिका में रिकॉर्ड किए गए लॉग का निरीक्षण करने की अनुमति देता है:
![](<../../../../images/image (89).png>)
### Insights
**CloudTrail Insights** स्वचालित रूप से **लिखित प्रबंधन घटनाओं का विश्लेषण** करता है जो CloudTrail ट्रेल से आती हैं और आपको **असामान्य गतिविधि** के बारे में **चेतावनी** देता है। उदाहरण के लिए, यदि `TerminateInstance` घटनाओं में वृद्धि होती है जो स्थापित बुनियादी रेखाओं से भिन्न होती है, तो आप इसे एक Insight घटना के रूप में देखेंगे। ये घटनाएँ **असामान्य API गतिविधि को ढूंढना और प्रतिक्रिया देना पहले से कहीं अधिक आसान बनाती हैं**
**CloudTrail Insights** स्वचालित रूप से **लिखित प्रबंधन घटनाओं का विश्लेषण** करता है जो CloudTrail ट्रेल्स से आती हैं और आपको **असामान्य गतिविधि** के बारे में **चेतावनी** देता है। उदाहरण के लिए, यदि `TerminateInstance` घटनाओं में वृद्धि होती है जो स्थापित बुनियादी रेखाओं से भिन्न होती है, तो आप इसे एक Insight घटना के रूप में देखेंगे। ये घटनाएँ **असामान्य API गतिविधि को ढूंढना और प्रतिक्रिया देना पहले से कहीं अधिक आसान बनाती हैं**
Insights उसी बकेट में CloudTrail लॉग के साथ संग्रहीत होते हैं: `BucketName/AWSLogs/AccountID/CloudTrail-Insight`
@@ -96,10 +96,10 @@ Insights उसी बकेट में CloudTrail लॉग के साथ
## Access Advisor
AWS Access Advisor अंतिम 400 दिनों के AWS **CloudTrail लॉग पर निर्भर करता है ताकि इसके Insights एकत्र किए जा सकें**। CloudTrail AWS API कॉल और संबंधित घटनाओं का एक इतिहास कैप्चर करता है जो AWS खाते में की गई हैं। Access Advisor इस डेटा का उपयोग **यह दिखाने के लिए करता है कि सेवाओं को अंतिम बार कब एक्सेस किया गया था**। CloudTrail लॉग का विश्लेषण करके, Access Advisor यह निर्धारित कर सकता है कि किसी IAM उपयोगकर्ता या भूमिका ने किन AWS सेवाओं का उपयोग किया है और वह एक्सेस कब हुआ। यह AWS प्रशासकों को **अनुमतियों को परिष्कृत करने** के बारे में सूचित निर्णय लेने में मदद करता है, क्योंकि वे उन सेवाओं की पहचान कर सकते हैं जिन्हें लंबे समय तक एक्सेस नहीं किया गया है और वास्तविक उपयोग पैटर्न के आधार पर अत्यधिक व्यापक अनुमतियों को कम कर सकते हैं।
AWS Access Advisor अंतिम 400 दिनों के AWS **CloudTrail लॉग पर निर्भर करता है ताकि इसके अंतर्दृष्टि एकत्र क जा सकें**। CloudTrail AWS API कॉल और संबंधित घटनाओं का एक इतिहास कैप्चर करता है जो AWS खाते में की गई हैं। Access Advisor इस डेटा का उपयोग **यह दिखाने के लिए करता है कि सेवाओं को अंतिम बार कब एक्सेस किया गया था**। CloudTrail लॉग का विश्लेषण करके, Access Advisor यह निर्धारित कर सकता है कि किसी IAM उपयोगकर्ता या भूमिका ने कौन सी AWS सेवाओं का उपयोग किया है और वह एक्सेस कब हुआ। यह AWS प्रशासकों को **अनुमतियों को परिष्कृत करने** के बारे में सूचित निर्णय लेने में मदद करता है, क्योंकि वे उन सेवाओं की पहचान कर सकते हैं जिन्हें लंबे समय तक एक्सेस नहीं किया गया है और संभावित रूप से वास्तविक उपयोग पैटर्न के आधार पर अत्यधिक व्यापक अनुमतियों को कम कर सकते हैं।
> [!TIP]
> इसलिए, Access Advisor **उपयोगकर्ताओं को दी जा रही अनावश्यक अनुमतियों** के बारे में सूचित करता है ताकि व्यवस्थापक उन्हें हटा सके
> इसलिए, Access Advisor **उपयोगकर्ताओं को दी गई अनावश्यक अनुमतियों** के बारे में सूचित करता है ताकि व्यवस्थापक उन्हें हटा सके
<figure><img src="../../../../images/image (78).png" alt=""><figcaption></figcaption></figure>
@@ -124,7 +124,7 @@ aws cloudtrail get-query-results --event-data-store <data-source> --query-id <id
```
### **CSV Injection**
CloudTrail के अंदर CVS इंजेक्शन करना संभव है जो मनमान कोड निष्पादित करेगा यदि लॉग को CSV में निर्यात किया जाता है और Excel के साथ खोला जाता है।\
CloudTrail के अंदर CVS इंजेक्शन करना संभव है जो मनमान कोड को निष्पादित करेगा यदि लॉग को CSV में निर्यात किया जाता है और Excel के साथ खोला जाता है।\
निम्नलिखित कोड एक खराब ट्रेल नाम के साथ लॉग प्रविष्टि उत्पन्न करेगा जिसमें पेलोड शामिल है:
```python
import boto3
@@ -139,7 +139,7 @@ print(response)
अधिक जानकारी के लिए CSV इनजेक्शन के बारे में पृष्ठ देखें:
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/formula-injection
https://book.hacktricks.wiki/en/pentesting-web/formula-csv-doc-latex-ghostscript-injection.html
{{#endref}}
इस विशेष तकनीक के बारे में अधिक जानकारी के लिए देखें [https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/](https://rhinosecuritylabs.com/aws/cloud-security-csv-injection-aws-cloudtrail/)
@@ -150,19 +150,19 @@ https://book.hacktricks.xyz/pentesting-web/formula-injection
Honeytokens को **संवेदनशील जानकारी के एक्सफिल्ट्रेशन का पता लगाने** के लिए बनाया गया है। AWS के मामले में, ये **AWS कुंजी हैं जिनका उपयोग मॉनिटर किया जाता है**, यदि उस कुंजी के साथ कोई कार्रवाई ट्रिगर होती है, तो इसका मतलब है कि किसी ने वह कुंजी चुरा ली है।
हालांकि, [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) द्वारा बनाए गए Honeytokens या तो पहचानने योग्य खाता नाम का उपयोग कर रहे हैं या सभी ग्राहकों के लिए एक ही AWS खाता आईडी का उपयोग कर रहे हैं। इसलिए, यदि आप खाता नाम और/या खाता आईडी को बिना Cloudtrail के कोई लॉग बनाए प्राप्त कर सकते हैं, **तो आप जान सकते हैं कि कुंजी एक Honeytoken है या नहीं**
हालांकि, [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) द्वारा बनाए गए Honeytokens या तो पहचानने योग्य खाता नाम का उपयोग कर रहे हैं या सभी ग्राहकों के लिए एक ही AWS खाता ID का उपयोग कर रहे हैं। इसलिए, यदि आप खाता नाम और/या खाता ID को बिना Cloudtrail के कोई लॉग बनाए प्राप्त कर सकते हैं, **तो आप जान सकते हैं कि कुंजी एक Honeytoken है या नहीं**
[**Pacu**](https://github.com/RhinoSecurityLabs/pacu/blob/79cd7d58f7bff5693c6ae73b30a8455df6136cca/pacu/modules/iam__detect_honeytokens/main.py#L57) के पास कुछ नियम हैं यह पता लगाने के लिए कि क्या एक कुंजी [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren)** से संबंधित है:**
- यदि **`canarytokens.org`** भूमिका नाम में दिखाई देता है या खाता आईडी **`534261010715`** त्रुटि संदेश में दिखाई देती है।
- हाल ही में उनका परीक्षण करते समय, वे खाता **`717712589309`** का उपयोग कर रहे हैं और अभी भी नाम में **`canarytokens.com`** स्ट्रिंग है।
- यदि **`canarytokens.org`** भूमिका नाम में दिखाई देता है या खाता ID **`534261010715`** त्रुटि संदेश में दिखाई देती है।
- हाल ही में उनका परीक्षण करते समय, वे खाता **`717712589309`** का उपयोग कर रहे हैं और नाम में अभी भी **`canarytokens.com`** स्ट्रिंग है।
- यदि **`SpaceCrab`** त्रुटि संदेश में भूमिका नाम में दिखाई देता है
- **SpaceSiren** उपयोगकर्ता नाम उत्पन्न करने के लिए **uuids** का उपयोग करता है: `[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}`
- यदि **नाम यादृच्छिक रूप से उत्पन्न होता है**, तो यह एक HoneyToken होने की उच्च संभावनाएँ हैं।
#### कुंजी आईडी से खाता आईडी प्राप्त करें
#### कुंजी ID से खाता ID प्राप्त करें
आप **एक्सेस कुंजी** के अंदर **कोडित** से **खाता आईडी** प्राप्त कर सकते हैं जैसे कि [**यहां समझाया गया है**](https://medium.com/@TalBeerySec/a-short-note-on-aws-key-id-f88cc4317489) और अपने Honeytokens AWS खातों की सूची के साथ खाता आईडी की जांच करें:
आप **एक्सेस कुंजी** के अंदर **कोडित** से **खाता ID** प्राप्त कर सकते हैं जैसे कि [**यहां समझाया गया है**](https://medium.com/@TalBeerySec/a-short-note-on-aws-key-id-f88cc4317489) और अपने Honeytokens AWS खातों की सूची के साथ खाता ID की जांच करें:
```python
import base64
import binascii
@@ -181,24 +181,24 @@ return (e)
print("account id:" + "{:012d}".format(AWSAccount_from_AWSKeyID("ASIAQNZGKIQY56JQ7WML")))
```
अधिक जानकारी के लिए [**मूल शोध**](https://medium.com/@TalBeerySec/a-short-note-on-aws-key-id-f88cc4317489) देखें।
Check more information in the [**orginal research**](https://medium.com/@TalBeerySec/a-short-note-on-aws-key-id-f88cc4317489).
#### लॉग उत्पन्न न करें
इसके लिए सबसे प्रभावी तकनीक वास्तव में एक सरल है। बस उस कुंजी का उपयोग करें जिसे आपने अभी खोजा है ताकि अपने हमलावर खाते के अंदर किसी सेवा तक पहुंच प्राप्त कर सकें। इससे **CloudTrail आपके अपने AWS खाते के अंदर एक लॉग उत्पन्न करेगा और पीड़ित के अंदर नहीं**
इसक सबसे प्रभावी तकनीक वास्तव में एक सरल है। बस उस कुंजी का उपयोग करें जिसे आपने अभी पाया है अपने हमलावर खाते के अंदर किसी सेवा तक पहुँचने के लिए। इससे **CloudTrail आपके अपने AWS खाते के अंदर एक लॉग उत्पन्न करेगा और पीड़ित के अंदर नहीं**
बात यह है कि आउटपुट आपको एक त्रुटि दिखाएगा जो खाता आईडी और खाता नाम को इंगित करता है, इसलिए **आप देख सकेंगे कि क्या यह एक Honeytoken है**
बात यह है कि आउटपुट आपको एक त्रुटि दिखाएगा जो खाता आईडी और खाता नाम को इंगित करता है, इसलिए **आप देख पाएंगे कि क्या यह एक Honeytoken है**
#### लॉग के बिना AWS सेवाएँ
अतीत में कुछ **AWS सेवाएँ थीं जो CloudTrail को लॉग नहीं भेजती थीं** (यहाँ एक [सूची खोजें](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html))। उन सेवाओं में से कुछ **त्रुटि** के साथ **कुंजी भूमिका का ARN** प्रदान करेंगी यदि कोई अनधिकृत (हनीटोकन कुंजी) इसे एक्सेस करने की कोशिश करता है।
इस तरह, एक **हमलावर बिना किसी लॉग को ट्रिगर किए कुंजी का ARN प्राप्त कर सकता है**। ARN में हमलावर **AWS खाता आईडी और नाम** देख सकता है, हनीटोकन की कंपनियों के खाते की आईडी और नाम जानना आसान है, इसलिए इस तरह एक हमलावर पहचान सकता है कि क्या टोकन एक HoneyToken है।
इस तरह, एक **हमलावर बिना किसी लॉग को ट्रिगर किए कुंजी का ARN प्राप्त कर सकता है**। ARN में हमलावर **AWS खाता आईडी और नाम** देख सकता है, हनीटोकन की कंपनियों के खाते की आईडी और नाम जानना आसान है, इसलिए इस तरह एक हमलावर यह पहचान सकता है कि क्या टोकन एक HoneyToken है।
![](<../../../../images/image (93).png>)
> [!CAUTION]
> ध्यान दें कि सभी सार्वजनिक APIs जो CloudTrail लॉग उत्पन्न नहीं कर रही थीं, अब ठीक कर दी गई हैं, इसलिए शायद आपको अपनी खुद की खोज करनी होगी...
> ध्यान दें कि सभी सार्वजनिक APIs जो CloudTrail लॉग नहीं बना रही थीं, अब ठीक कर दी गई हैं, इसलिए शायद आपको अपनी खुद की खोज करनी होगी...
>
> अधिक जानकारी के लिए [**मूल शोध**](https://rhinosecuritylabs.com/aws/aws-iam-enumeration-2-0-bypassing-cloudtrail-logging/) देखें।
@@ -206,7 +206,7 @@ print("account id:" + "{:012d}".format(AWSAccount_from_AWSKeyID("ASIAQNZGKIQY56J
कुछ AWS सेवाएँ **कुछ अवसंरचना** जैसे **डेटाबेस** या **कुबरनेट्स** क्लस्टर (EKS) उत्पन्न करेंगी। एक उपयोगकर्ता **सीधे उन सेवाओं से बात कर रहा है** (जैसे कुबरनेट्स API) **AWS API का उपयोग नहीं करेगा**, इसलिए CloudTrail इस संचार को नहीं देख पाएगा।
इसलिए, EKS तक पहुँच रखने वाला एक उपयोगकर्ता जिसने EKS API का URL खोजा है, वह स्थानीय रूप से एक टोकन उत्पन्न कर सकता है और **API सेवा से सीधे बात कर सकता है बिना Cloudtrail द्वारा पता लगाए**
इसलिए, EKS तक पहुँच रखने वाला एक उपयोगकर्ता जिसने EKS API का URL खोज लिया है, वह स्थानीय रूप से एक टोकन उत्पन्न कर सकता है और **API सेवा से सीधे बात कर सकता है बिना Cloudtrail द्वारा पता लगाए**
अधिक जानकारी में:
@@ -220,7 +220,7 @@ print("account id:" + "{:012d}".format(AWSAccount_from_AWSKeyID("ASIAQNZGKIQY56J
```bash
aws cloudtrail delete-trail --name [trail-name]
```
#### ट्रेल्स रोकें
#### स्टॉप ट्रेल्स
```bash
aws cloudtrail stop-logging --name [trail-name]
```
@@ -236,7 +236,7 @@ aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '
# Remove all selectors (stop Insights)
aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '[]' --region <region>
```
पहले उदाहरण में, एकल इवेंट चयनकर्ता को एक JSON एरे के रूप में एकल ऑब्जेक्ट के साथ प्रदान किया गया है। `"ReadWriteType": "ReadOnly"` यह संकेत करता है कि **इवेंट चयनकर्ता को केवल पढ़ने के लिए इवेंट कैप्चर करना चाहिए** (इसलिए CloudTrail अंतर्दृष्टि **लिखने के इवेंट की जांच नहीं करेग** उदाहरण के लिए)।
पहले उदाहरण में, एकल इवेंट चयनकर्ता को एक JSON एरे के रूप में एकल ऑब्जेक्ट के साथ प्रदान किया गया है। `"ReadWriteType": "ReadOnly"` यह संकेत करता है कि **इवेंट चयनकर्ता को केवल पढ़ने के लिए इवेंट कैप्चर करना चाहिए** (इसलिए CloudTrail insights **लिखने के इवेंट की जांच नहीं करेग** उदाहरण के लिए)।
आप अपने विशिष्ट आवश्यकताओं के आधार पर इवेंट चयनकर्ता को अनुकूलित कर सकते हैं।
@@ -255,8 +255,8 @@ aws s3api put-bucket-lifecycle --bucket <bucket_name> --lifecycle-configuration
#### S3 रैनसमवेयर
आप **एक विषम कुंजी उत्पन्न** कर सकते हैं और **CloudTrail को उस कुंजी के साथ डेटा एन्क्रिप्ट** करने के लिए कह सकते हैं और **निजी कुंजी को हटा सकते हैं** ताकि CloudTrail सामग्री को पुनर्प्राप्त नहीं किया जा सके।\
यह मूल रूप से एक **S3-KMS रैनसमवेयर** है जो इस प्रकार समझाया गया है:
आप **एक विषम कुंजी उत्पन्न** कर सकते हैं और **CloudTrail को उस कुंजी के साथ डेटा एन्क्रिप्ट** करने के लिए बना सकते हैं और **निजी कुंजी को हटा सकते हैं** ताकि CloudTrail सामग्री को पुनर्प्राप्त नहीं किया जा सके।\
यह मूल रूप से एक **S3-KMS रैनसमवेयर** है जो कि इस में समझाया गया है:
{{#ref}}
../../aws-post-exploitation/aws-s3-post-exploitation.md