Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/

This commit is contained in:
Translator
2025-02-13 09:54:48 +00:00
parent bc0f9db152
commit 7a3ab3bd4f
4 changed files with 77 additions and 2 deletions

View File

@@ -0,0 +1,25 @@
# Amazon Macie - Παράκαμψη `Reveal Sample` Έλεγχος Ακεραιότητας
AWS Macie είναι μια υπηρεσία ασφαλείας που ανιχνεύει αυτόματα ευαίσθητα δεδομένα εντός των περιβαλλόντων AWS, όπως διαπιστευτήρια, προσωπικά αναγνωρίσιμες πληροφορίες (PII) και άλλα εμπιστευτικά δεδομένα. Όταν το Macie εντοπίσει ένα ευαίσθητο διαπιστευτήριο, όπως ένα μυστικό κλειδί AWS που αποθηκεύεται σε ένα S3 bucket, δημιουργεί μια εύρεση που επιτρέπει στον κάτοχο να δει ένα "δείγμα" των ανιχνευθέντων δεδομένων. Συνήθως, μόλις το ευαίσθητο αρχείο αφαιρεθεί από το S3 bucket, αναμένεται ότι το μυστικό δεν μπορεί πλέον να ανακτηθεί.
Ωστόσο, έχει εντοπιστεί μια **παράκαμψη** όπου ένας επιτιθέμενος με επαρκή δικαιώματα μπορεί να **ξαναφορτώσει ένα αρχείο με το ίδιο όνομα** αλλά περιέχοντας διαφορετικά, μη ευαίσθητα δεδομένα. Αυτό προκαλεί το Macie να συσχετίσει το νεοφορτωμένο αρχείο με την αρχική εύρεση, επιτρέποντας στον επιτιθέμενο να χρησιμοποιήσει τη δυνατότητα **"Reveal Sample"** για να εξάγει το προηγουμένως ανιχνευθέν μυστικό. Αυτό το ζήτημα θέτει σημαντικό κίνδυνο ασφαλείας, καθώς τα μυστικά που θεωρούνταν διαγραμμένα παραμένουν ανακτήσιμα μέσω αυτής της μεθόδου.
<img src="https://github.com/user-attachments/assets/c44228ae-12cd-41bd-9a04-57f503a63281" height="800" width="auto"/>
## Βήματα Για Αναπαραγωγή:
1. Φορτώστε ένα αρχείο (π.χ., `test-secret.txt`) σε ένα S3 bucket με ευαίσθητα δεδομένα, όπως ένα μυστικό κλειδί AWS. Περιμένετε να σαρώσει το AWS Macie και να δημιουργήσει μια εύρεση.
2. Μεταβείτε στις Ευρήματα του AWS Macie, εντοπίστε την παραγόμενη εύρεση και χρησιμοποιήστε τη δυνατότητα **Reveal Sample** για να δείτε το ανιχνευθέν μυστικό.
3. Διαγράψτε το `test-secret.txt` από το S3 bucket και επιβεβαιώστε ότι δεν υπάρχει πλέον.
4. Δημιουργήστε ένα νέο αρχείο με το όνομα `test-secret.txt` με δεδομένα dummy και ξαναφορτώστε το στο ίδιο S3 bucket χρησιμοποιώντας **τον λογαριασμό του επιτιθέμενου**.
5. Επιστρέψτε στις Ευρήματα του AWS Macie, αποκτήστε πρόσβαση στην αρχική εύρεση και κάντε κλικ στο **Reveal Sample** ξανά.
6. Παρατηρήστε ότι το Macie αποκαλύπτει ακόμα το αρχικό μυστικό, παρά το γεγονός ότι το αρχείο έχει διαγραφεί και αντικατασταθεί με διαφορετικό περιεχόμενο **από διαφορετικούς λογαριασμούς, στην περίπτωσή μας θα είναι ο λογαριασμός του επιτιθέμενου**.
## Περίληψη:
Αυτή η ευπάθεια επιτρέπει σε έναν επιτιθέμενο με επαρκή δικαιώματα AWS IAM να ανακτήσει προηγουμένως ανιχνευθέντα μυστικά ακόμη και μετά τη διαγραφή του αρχικού αρχείου από το S3. Εάν ένα μυστικό κλειδί AWS, ένα διακριτικό πρόσβασης ή άλλο ευαίσθητο διαπιστευτήριο εκτεθεί, ένας επιτιθέμενος θα μπορούσε να εκμεταλλευτεί αυτή την αδυναμία για να το ανακτήσει και να αποκτήσει μη εξουσιοδοτημένη πρόσβαση στους πόρους AWS. Αυτό θα μπορούσε να οδηγήσει σε κλιμάκωση προνομίων, μη εξουσιοδοτημένη πρόσβαση σε δεδομένα ή περαιτέρω συμβιβασμό των περιουσιακών στοιχείων του cloud, με αποτέλεσμα παραβιάσεις δεδομένων και διακοπές υπηρεσιών.

View File

@@ -0,0 +1,48 @@
# Amazon Macie
## Εισαγωγή
Το Amazon Macie είναι μια υπηρεσία ασφάλειας δεδομένων που ανακαλύπτει ευαίσθητα δεδομένα χρησιμοποιώντας μηχανική μάθηση και αντιστοίχιση προτύπων, παρέχει ορατότητα στους κινδύνους ασφάλειας δεδομένων και επιτρέπει την αυτοματοποιημένη προστασία από αυτούς τους κινδύνους.
## Καταγραφή Ευρημάτων με το AWS Console
Αφού σαρωθεί ένα συγκεκριμένο S3 bucket για μυστικά και ευαίσθητα δεδομένα, θα παραχθούν ευρήματα και θα εμφανιστούν στην κονσόλα. Οι εξουσιοδοτημένοι χρήστες με επαρκή δικαιώματα μπορούν να δουν και να καταγράψουν αυτά τα ευρήματα για κάθε εργασία.
<img width="1438" alt="Screenshot 2025-02-10 at 19 08 08" src="https://github.com/user-attachments/assets/4420f13e-c071-4ae4-946b-6fe67449a9f6" />
## Αποκάλυψη Μυστικού
Το Amazon Macie παρέχει μια δυνατότητα που εμφανίζει τα ανιχνευμένα μυστικά σε μορφή καθαρού κειμένου. Αυτή η λειτουργία βοηθά στην αναγνώριση των παραβιασμένων δεδομένων. Ωστόσο, η εμφάνιση μυστικών σε καθαρό κείμενο γενικά δεν θεωρείται καλή πρακτική λόγω ανησυχιών ασφαλείας, καθώς θα μπορούσε ενδεχομένως να εκθέσει ευαίσθητες πληροφορίες.
<img width="596" alt="Screenshot 2025-02-10 at 19 13 53" src="https://github.com/user-attachments/assets/31c40c29-0bba-429b-8b86-4e214d1aef66" />
<img width="1154" alt="Screenshot 2025-02-10 at 19 15 11" src="https://github.com/user-attachments/assets/df616e56-a11a-41da-ac69-0bea37d143a5" />
## Enumeration
```bash
# List and describe classification jobs
aws macie2 list-classification-jobs --region eu-west-1
aws macie2 describe-classification-job --job-id <Job_ID> --region eu-west-1
# Retrieve account details and statistics
aws macie2 get-macie-session --region eu-west-1
aws macie2 get-usage-statistics --region eu-west-1
# List and manage Macie members (for organizations)
aws macie2 list-members --region eu-west-1
# List findings and get detailed information about specific findings
aws macie2 list-findings --region eu-west-1
aws macie2 get-findings --finding-id <Finding_ID> --region eu-west-1
# Manage custom data identifiers
aws macie2 list-custom-data-identifiers --region eu-west-1
aws macie2 get-custom-data-identifier --id <Identifier_ID> --region eu-west-1
# List and detail findings filters
aws macie2 list-findings-filters --region eu-west-1
aws macie2 get-findings-filter --id <Filter_ID> --region eu-west-1
```

View File

@@ -471,12 +471,13 @@ window.search = window.search || {};
showResults(true); showResults(true);
} }
fetch('https://raw.githubusercontent.com/HackTricks-wiki/hacktricks-cloud/refs/heads/master/searchindex.json') var branch = lang === "en" ? "master" : lang
fetch(`https://raw.githubusercontent.com/HackTricks-wiki/hacktricks-cloud/refs/heads/${branch}/searchindex.json`)
.then(response => response.json()) .then(response => response.json())
.then(json => init(json)) .then(json => init(json))
.catch(error => { // Try to load searchindex.js if fetch failed .catch(error => { // Try to load searchindex.js if fetch failed
var script = document.createElement('script'); var script = document.createElement('script');
script.src = 'https://raw.githubusercontent.com/HackTricks-wiki/hacktricks-cloud/refs/heads/master/searchindex.js'; script.src = `https://raw.githubusercontent.com/HackTricks-wiki/hacktricks-cloud/refs/heads/${branch}/searchindex.js`;
script.onload = () => init(window.search); script.onload = () => init(window.search);
document.head.appendChild(script); document.head.appendChild(script);
}); });

View File

@@ -55,6 +55,7 @@
<!-- Provide site root to javascript --> <!-- Provide site root to javascript -->
<script> <script>
var path_to_root = "{{ path_to_root }}"; var path_to_root = "{{ path_to_root }}";
var lang = "{{ language }}";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "{{ preferred_dark_theme }}" : "{{ default_theme }}"; var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "{{ preferred_dark_theme }}" : "{{ default_theme }}";
</script> </script>
<!-- Start loading toc.js asap --> <!-- Start loading toc.js asap -->