TravisCI Security
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Travis CI είναι μια φιλοξενούμενη ή σε τοπικό υπηρεσία συνεχούς ολοκλήρωσης που χρησιμοποιείται για την κατασκευή και δοκιμή έργων λογισμικού που φιλοξενούνται σε πολλές διαφορετικές πλατφόρμες git.
Για να ξεκινήσετε μια επίθεση, πρέπει πρώτα να γνωρίζετε πώς να ενεργοποιήσετε μια κατασκευή. Από προεπιλογή, το TravisCI θα ενεργοποιήσει μια κατασκευή σε pushes και pull requests:
Εάν έχετε πρόσβαση στην εφαρμογή ιστού, μπορείτε να ρυθμίσετε cron για να εκτελούν την κατασκευή, αυτό μπορεί να είναι χρήσιμο για επιμονή ή για να ενεργοποιήσετε μια κατασκευή:
Φαίνεται ότι δεν είναι δυνατό να ρυθμίσετε cron μέσα στο .travis.yml
σύμφωνα με αυτό.
Το TravisCI από προεπιλογή απενεργοποιεί την κοινή χρήση μεταβλητών περιβάλλοντος με PRs που προέρχονται από τρίτους, αλλά κάποιος μπορεί να το ενεργοποιήσει και τότε θα μπορούσατε να δημιουργήσετε PRs στο repo και να εξάγετε τα μυστικά:
Όπως εξηγείται στη σελίδα βασικών πληροφοριών, υπάρχουν 2 τύποι μυστικών. Μυστικά Μεταβλητών Περιβάλλοντος (τα οποία αναφέρονται στη σελίδα ιστού) και προσαρμοσμένα κρυπτογραφημένα μυστικά, τα οποία αποθηκεύονται μέσα στο αρχείο .travis.yml
ως base64 (σημειώστε ότι και τα δύο, καθώς αποθηκεύονται κρυπτογραφημένα, θα καταλήξουν ως μεταβλητές περιβάλλοντος στις τελικές μηχανές).
Για να καταμετρήσετε τα μυστικά που έχουν ρυθμιστεί ως Μεταβλητές Περιβάλλοντος, μεταβείτε στις ρυθμίσεις του έργου και ελέγξτε τη λίστα. Ωστόσο, σημειώστε ότι όλες οι μεταβλητές περιβάλλοντος του έργου που έχουν ρυθμιστεί εδώ θα εμφανιστούν κατά την ενεργοποίηση μιας κατασκευής.
Για να καταμετρήσετε τα προσαρμοσμένα κρυπτογραφημένα μυστικά, το καλύτερο που μπορείτε να κάνετε είναι να ελέγξετε το αρχείο .travis.yml
.
Για να καταμετρήσετε κρυπτογραφημένα αρχεία, μπορείτε να ελέγξετε για αρχεία .enc
στο repo, για γραμμές παρόμοιες με openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d
στο αρχείο ρύθμισης, ή για κρυπτογραφημένα iv και κλειδιά στις Μεταβλητές Περιβάλλοντος όπως:
Παράδειγμα κατασκευής με reverse shell που εκτελείται σε Windows/Mac/Linux
Παράδειγμα κατασκευής που διαρρέει τη μεταβλητή περιβάλλοντος κωδικοποιημένη σε base64 στα logs
Εάν ένας επιτιθέμενος βρεθεί σε ένα περιβάλλον που χρησιμοποιεί TravisCI enterprise (περισσότερες πληροφορίες για το τι είναι αυτό στη βασική πληροφορία), θα είναι σε θέση να ενεργοποιήσει κατασκευές στον Εργάτη. Αυτό σημαίνει ότι ένας επιτιθέμενος θα είναι σε θέση να κινηθεί οριζόντια σε αυτόν τον διακομιστή από τον οποίο θα μπορούσε να είναι σε θέση να:
διαφύγει στον οικοδεσπότη;
συμβιβάσει το kubernetes;
συμβιβάσει άλλες μηχανές που εκτελούνται στο ίδιο δίκτυο;
συμβιβάσει νέες πιστοποιήσεις cloud;
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)