AWS Codebuild - Token Leakage
Ανάκτηση Διαμορφωμένων Διαπιστευτηρίων Github/Bitbucket
Πρώτα, ελέγξτε εάν υπάρχουν διαμορφωμένα διαπιστευτήρια πηγής που μπορείτε να διαρρεύσετε:
Μέσω Docker Image
Εάν διαπιστώσετε ότι η πιστοποίηση για παράδειγμα στο Github έχει οριστεί στο λογαριασμό, μπορείτε να διαρρεύσετε αυτήν την πρόσβαση (GH token ή OAuth token) κάνοντας το Codebuild να χρησιμοποιήσει ένα συγκεκριμένο docker image για να εκτελέσει την κατασκευή του έργου.
Για αυτόν τον σκοπό μπορείτε να δημιουργήσετε ένα νέο έργο Codebuild ή να αλλάξετε το περιβάλλον ενός υπάρχοντος για να ορίσετε την εικόνα Docker.
Η εικόνα Docker που μπορείτε να χρησιμοποιήσετε είναι https://github.com/carlospolop/docker-mitm. Αυτή είναι μια πολύ βασική εικόνα Docker που θα ορίσει τις μεταβλητές περιβάλλοντος https_proxy
, http_proxy
και SSL_CERT_FILE
. Αυτό θα σας επιτρέψει να παρεμβάλετε την πλειονότητα της κίνησης του κεντρικού υπολογιστή που υποδεικνύεται στις μεταβλητές https_proxy
και http_proxy
και να εμπιστευτείτε το πιστοποιητικό SSL που υποδεικνύεται στη μεταβλητή SSL_CERT_FILE
.
Δημιουργία και μεταφόρτωση της δικής σας εικόνας Docker MitM
Ακολουθήστε τις οδηγίες του αποθετηρίου για να ορίσετε τη διεύθυνση IP του διακομιστή μεσολάβησης και να ορίσετε το πιστοποιητικό SSL σας και να κατασκευάσετε την εικόνα docker.
ΜΗΝ ΟΡΙΣΕΤΕ
http_proxy
για να μην παρεμβάλλετε αιτήσεις προς το τέλος μεταδεδομένων.Μπορείτε να χρησιμοποιήσετε το
ngrok
όπωςngrok tcp 4444
για να ορίσετε τον διακομιστή μεσολάβησης στον υπολογιστή σας.Αφού κατασκευάσετε την εικόνα Docker, ανεβάστε την σε ένα δημόσιο αποθετήριο (Dockerhub, ECR...)
Ορισμός του περιβάλλοντος
Δημιουργήστε ένα νέο έργο Codebuild ή τροποποιήστε το περιβάλλον ενός υπάρχοντος.
Ορίστε το έργο να χρησιμοποιεί την προηγουμένως δημιουργημένη εικόνα Docker
Ορισμός του διακομιστή μεσολάβησης MitM στον υπολογιστή σας
Όπως υποδεικνύεται στο αποθετήριο Github, μπορείτε να χρησιμοποιήσετε κάτι όπως:
Η έκδοση του mitmproxy που χρησιμοποιήθηκε ήταν η 9.0.1, αναφέρεται ότι με την έκδοση 10 αυτό μπορεί να μην λειτουργεί.
Εκτέλεση της δημιουργίας και καταγραφή των διαπιστευτηρίων
Μπορείτε να δείτε το διακριτικό στην κεφαλίδα Authorization:
Αυτό μπορεί επίσης να γίνει από το aws cli με κάτι παρόμοιο:
Μέσω πρωτοκόλλου HTTP
Αυτή η ευπάθεια διορθώθηκε από την AWS κάποια στιγμή την εβδομάδα της 20ης Φεβρουαρίου του 2023 (νομίζω την Παρασκευή). Έτσι, ένας επιτιθέμενος δεν μπορεί πλέον να την καταχραστεί :)
Ένας επιτιθέμενος με αυξημένα δικαιώματα σε ένα CodeBuild μπορεί να διαρρεύσει το token του Github/Bitbucket που έχει ρυθμιστεί ή, αν οι άδειες πρόσβασης έχουν ρυθμιστεί μέσω OAuth, το προσωρινό OAuth token που χρησιμοποιείται για την πρόσβαση στον κώδικα.
Ένας επιτιθέμενος μπορεί να προσθέσει τις μεταβλητές περιβάλλοντος http_proxy και https_proxy στο έργο CodeBuild που δείχνουν στον υπολογιστή του (για παράδειγμα
http://5.tcp.eu.ngrok.io:14972
).
Στη συνέχεια, αλλάξτε το URL του αποθετηρίου github ώστε να χρησιμοποιεί HTTP αντί για HTTPS, για παράδειγμα: **http://**github.com/carlospolop-forks/TestActions
Στη συνέχεια, εκτελέστε το βασικό παράδειγμα από το https://github.com/synchronizing/mitm στη θύρα που δείχνουν οι μεταβλητές του διακομιστή (http_proxy και https_proxy)
Τέλος, κάντε κλικ στο Κατασκευή του έργου, οι πιστοποιήσεις θα αποσταλούν σε καθαρό κείμενο (base64) στη θύρα mitm:
Τώρα ένας επιτιθέμενος θα μπορεί να χρησιμοποιήσει το διακριτικό από τον υπολογιστή του, να καταγράψει όλα τα προνόμια που έχει και να τα καταχραστεί ευκολότερα από τη χρήση της υπηρεσίας CodeBuild απευθείας.
Last updated