TravisCI Security

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Τι είναι το TravisCI

Travis CI είναι μια φιλοξενούμενη ή σε τοπικό συνεχή ολοκλήρωση υπηρεσία που χρησιμοποιείται για την κατασκευή και δοκιμή λογισμικών έργων που φιλοξενούνται σε πολλές διαφορετικές πλατφόρμες git.

Basic TravisCI Information

Επιθέσεις

Ενεργοποιήσεις

Για να ξεκινήσετε μια επίθεση, πρέπει πρώτα να γνωρίζετε πώς να ενεργοποιήσετε μια κατασκευή. Από προεπιλογή, το TravisCI θα ενεργοποιήσει μια κατασκευή σε pushes και pull requests:

Cron Jobs

Αν έχετε πρόσβαση στην εφαρμογή ιστού, μπορείτε να ρυθμίσετε cron jobs για να εκτελούν την κατασκευή, αυτό μπορεί να είναι χρήσιμο για επιμονή ή για να ενεργοποιήσετε μια κατασκευή:

Note

Φαίνεται ότι δεν είναι δυνατό να ρυθμίσετε cron jobs μέσα στο .travis.yml σύμφωνα με αυτό.

PR Τρίτων

Το 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 και κλειδιά στις Μεταβλητές Περιβάλλοντος όπως:

TODO:

  • Παράδειγμα κατασκευής με reverse shell που εκτελείται σε Windows/Mac/Linux
  • Παράδειγμα κατασκευής που διαρρέει τη μεταβλητή περιβάλλοντος κωδικοποιημένη σε base64 στα logs

TravisCI Enterprise

Αν ένας επιτιθέμενος βρεθεί σε ένα περιβάλλον που χρησιμοποιεί TravisCI enterprise (περισσότερες πληροφορίες για το τι είναι αυτό στη βασικές πληροφορίες), θα είναι σε θέση να ενεργοποιήσει κατασκευές στον Worker. Αυτό σημαίνει ότι ένας επιτιθέμενος θα είναι σε θέση να κινηθεί οριζόντια σε αυτόν τον διακομιστή από τον οποίο θα μπορούσε να είναι σε θέση να:

  • διαφύγει στον κεντρικό υπολογιστή;
  • συμβιβάσει το kubernetes;
  • συμβιβάσει άλλες μηχανές που εκτελούνται στο ίδιο δίκτυο;
  • συμβιβάσει νέες πιστοποιήσεις cloud;

Αναφορές

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks