Gitea 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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Τι είναι το Gitea
Gitea είναι μια λύση φιλοξενίας κώδικα ελαφριάς διαχείρισης από την κοινότητα που έχει γραφτεί σε Go.
.png)
Βασικές Πληροφορίες
Εργαστήριο
Για να τρέξετε μια τοπική εγκατάσταση του Gitea, μπορείτε απλά να τρέξετε ένα κοντέινερ docker:
docker run -p 3000:3000 gitea/gitea
Συνδεθείτε στην πόρτα 3000 για να αποκτήσετε πρόσβαση στη σελίδα ιστού.
Μπορείτε επίσης να το εκτελέσετε με το kubernetes:
helm repo add gitea-charts https://dl.gitea.io/charts/
helm install gitea gitea-charts/gitea
Μη Αυθεντικοποιημένη Αρίθμηση
- Δημόσια αποθετήρια: http://localhost:3000/explore/repos
- Καταχωρημένοι χρήστες: http://localhost:3000/explore/users
- Καταχωρημένες Οργανώσεις: http://localhost:3000/explore/organizations
Σημειώστε ότι από προεπιλογή η Gitea επιτρέπει στους νέους χρήστες να εγγραφούν. Αυτό δεν θα δώσει ιδιαίτερα ενδιαφέροντα δικαιώματα στους νέους χρήστες σε σχέση με τα αποθετήρια άλλων οργανώσεων/χρηστών, αλλά ένας συνδεδεμένος χρήστης μπορεί να είναι σε θέση να οραματιστεί περισσότερα αποθετήρια ή οργανώσεις.
Εσωτερική Εκμετάλλευση
Για αυτό το σενάριο θα υποθέσουμε ότι έχετε αποκτήσει κάποια πρόσβαση σε έναν λογαριασμό github.
Με Διαπιστευτήρια Χρήστη/Ιστό Cookie
Αν έχετε κάπως ήδη διαπιστευτήρια για έναν χρήστη μέσα σε μια οργάνωση (ή αν κλέψατε ένα cookie συνεδρίας) μπορείτε απλά να συνδεθείτε και να ελέγξετε ποια δικαιώματα έχετε σε ποια αποθετήρια, σε ποιες ομάδες είστε, να καταγράψετε άλλους χρήστες, και πώς είναι προστατευμένα τα αποθετήρια.
Σημειώστε ότι η 2FA μπορεί να χρησιμοποιείται οπότε θα μπορείτε να έχετε πρόσβαση σε αυτές τις πληροφορίες μόνο αν μπορείτε επίσης να περάσετε αυτήν την επιβεβαίωση.
Note
Σημειώστε ότι αν καταφέρετε να κλέψετε το cookie
i_like_gitea(προς το παρόν ρυθμισμένο με SameSite: Lax) μπορείτε να παριστάνετε πλήρως τον χρήστη χωρίς να χρειάζεστε διαπιστευτήρια ή 2FA.
Με Κλειδί SSH Χρήστη
Η Gitea επιτρέπει στους χρήστες να ρυθμίζουν κλειδιά SSH που θα χρησιμοποιούνται ως μέθοδος αυθεντικοποίησης για την ανάπτυξη κώδικα εκ μέρους τους (δεν εφαρμόζεται 2FA).
Με αυτό το κλειδί μπορείτε να κάνετε αλλαγές σε αποθετήρια όπου ο χρήστης έχει κάποια προνόμια, ωστόσο δεν μπορείτε να το χρησιμοποιήσετε για να αποκτήσετε πρόσβαση στο api της gitea για να αρίθμηση του περιβάλλοντος. Ωστόσο, μπορείτε να αριθμήσετε τις τοπικές ρυθμίσεις για να αποκτήσετε πληροφορίες σχετικά με τα αποθετήρια και τους χρήστες στους οποίους έχετε πρόσβαση:
# Go to the the repository folder
# Get repo config and current user name and email
git config --list
Αν ο χρήστης έχει ρυθμίσει το όνομα χρήστη του ως το όνομα χρήστη του gitea, μπορείτε να αποκτήσετε πρόσβαση στα δημόσια κλειδιά που έχει ρυθμίσει στον λογαριασμό του στο https://github.com/<gitea_username>.keys, μπορείτε να το ελέγξετε αυτό για να επιβεβαιώσετε ότι το ιδιωτικό κλειδί που βρήκατε μπορεί να χρησιμοποιηθεί.
SSH κλειδιά μπορούν επίσης να ρυθμιστούν σε αποθετήρια ως κλειδιά ανάπτυξης. Οποιοσδήποτε έχει πρόσβαση σε αυτό το κλειδί θα μπορεί να εκκινήσει έργα από ένα αποθετήριο. Συνήθως σε έναν διακομιστή με διαφορετικά κλειδιά ανάπτυξης, το τοπικό αρχείο ~/.ssh/config θα σας δώσει πληροφορίες σχετικά με το ποιο κλειδί σχετίζεται.
GPG Κλειδιά
Όπως εξηγείται εδώ, μερικές φορές είναι απαραίτητο να υπογράψετε τις δεσμεύσεις ή μπορεί να σας ανακαλύψουν.
Ελέγξτε τοπικά αν ο τρέχων χρήστης έχει κάποιο κλειδί με:
gpg --list-secret-keys --keyid-format=long
Με Token Χρήστη
Για μια εισαγωγή σχετικά με Tokens Χρήστη δείτε τις βασικές πληροφορίες.
Ένα token χρήστη μπορεί να χρησιμοποιηθεί αντί για έναν κωδικό πρόσβασης για να αυθεντικοποιηθεί στον διακομιστή Gitea μέσω API. θα έχει πλήρη πρόσβαση στον χρήστη.
Με Εφαρμογή Oauth
Για μια εισαγωγή σχετικά με Εφαρμογές Oauth Gitea δείτε τις βασικές πληροφορίες.
Ένας επιτιθέμενος μπορεί να δημιουργήσει μια κακόβουλη Εφαρμογή Oauth για να αποκτήσει πρόσβαση σε προνομιακά δεδομένα/ενέργειες των χρηστών που τις αποδέχονται πιθανώς ως μέρος μιας εκστρατείας phishing.
Όπως εξηγείται στις βασικές πληροφορίες, η εφαρμογή θα έχει πλήρη πρόσβαση στον λογαριασμό χρήστη.
Παράκαμψη Προστασίας Κλάδου
Στο Github έχουμε github actions που από προεπιλογή αποκτούν ένα token με δικαιώματα εγγραφής πάνω στο repo που μπορεί να χρησιμοποιηθεί για να παρακάμψει τις προστασίες κλάδου. Σε αυτή την περίπτωση που δεν υπάρχει, οι παρακάμψεις είναι πιο περιορισμένες. Αλλά ας δούμε τι μπορεί να γίνει:
- Ενεργοποίηση Push: Αν οποιοσδήποτε με δικαιώματα εγγραφής μπορεί να σπρώξει στον κλάδο, απλά σπρώξτε σε αυτόν.
- Whitelist Restricted Push: Με τον ίδιο τρόπο, αν είστε μέρος αυτής της λίστας σπρώξτε στον κλάδο.
- Ενεργοποίηση Λίστας Εγκεκριμένων Συγχωνεύσεων: Αν υπάρχει μια λίστα εγκεκριμένων συγχωνεύσεων, πρέπει να είστε μέσα σε αυτήν.
- Απαιτούνται εγκρίσεις μεγαλύτερες από 0: Τότε… πρέπει να συμβιβαστείτε με έναν άλλο χρήστη.
- Περιορισμός εγκρίσεων σε εγκεκριμένους: Αν μόνο οι εγκεκριμένοι χρήστες μπορούν να εγκρίνουν… πρέπει να συμβιβαστείτε με έναν άλλο χρήστη που είναι μέσα σε αυτή τη λίστα.
- Ακύρωση παλαιών εγκρίσεων: Αν οι εγκρίσεις δεν αφαιρούνται με νέες καταθέσεις, θα μπορούσατε να καταλάβετε μια ήδη εγκεκριμένη PR για να εισάγετε τον κωδικό σας και να συγχωνεύσετε την PR.
Σημειώστε ότι αν είστε διαχειριστής οργανισμού/repo μπορείτε να παρακάμψετε τις προστασίες.
Καταμέτρηση Webhooks
Webhooks είναι ικανά να στέλνουν συγκεκριμένες πληροφορίες gitea σε ορισμένα μέρη. Μπορείτε να είστε σε θέση να εκμεταλλευτείτε αυτή την επικοινωνία.
Ωστόσο, συνήθως ένα μυστικό που δεν μπορείτε να ανακτήσετε έχει οριστεί στο webhook που θα αποτρέψει τους εξωτερικούς χρήστες που γνωρίζουν τη διεύθυνση URL του webhook αλλά όχι το μυστικό να εκμεταλλευτούν αυτό το webhook.
Αλλά σε ορισμένες περιπτώσεις, οι άνθρωποι αντί να ορίσουν το μυστικό στη θέση του, το θέτουν στη διεύθυνση URL ως παράμετρο, οπότε ελέγχοντας τις διευθύνσεις URL θα μπορούσατε να βρείτε μυστικά και άλλα μέρη που θα μπορούσατε να εκμεταλλευτείτε περαιτέρω.
Τα webhooks μπορούν να οριστούν σε επίπεδο repo και οργανισμού.
Μετά την Εκμετάλλευση
Μέσα στον διακομιστή
Αν με κάποιο τρόπο καταφέρατε να μπείτε μέσα στον διακομιστή όπου τρέχει το gitea θα πρέπει να αναζητήσετε το αρχείο ρύθμισης παραμέτρων gitea. Από προεπιλογή βρίσκεται στο /data/gitea/conf/app.ini
Σε αυτό το αρχείο μπορείτε να βρείτε κλειδιά και κωδικούς πρόσβασης.
Στο μονοπάτι gitea (κατά προεπιλογή: /data/gitea) μπορείτε επίσης να βρείτε ενδιαφέρουσες πληροφορίες όπως:
- Η βάση δεδομένων sqlite: Αν το gitea δεν χρησιμοποιεί εξωτερική βάση δεδομένων θα χρησιμοποιήσει μια βάση δεδομένων sqlite.
- Οι συνεδρίες μέσα στον φάκελο συνεδριών: Εκτελώντας
cat sessions/*/*/*μπορείτε να δείτε τα ονόματα χρηστών των συνδεδεμένων χρηστών (το gitea θα μπορούσε επίσης να αποθηκεύει τις συνεδρίες μέσα στη βάση δεδομένων). - Το ιδιωτικό κλειδί jwt μέσα στον φάκελο jwt.
- Περισσότερες ευαίσθητες πληροφορίες θα μπορούσαν να βρεθούν σε αυτόν τον φάκελο.
Αν είστε μέσα στον διακομιστή μπορείτε επίσης να χρησιμοποιήσετε το δυαδικό αρχείο gitea για να αποκτήσετε/τροποποιήσετε πληροφορίες:
gitea dumpθα εξάγει το gitea και θα δημιουργήσει ένα αρχείο .zip.gitea generate secret INTERNAL_TOKEN/JWT_SECRET/SECRET_KEY/LFS_JWT_SECRETθα δημιουργήσει ένα token του υποδεικνυόμενου τύπου (persistency).gitea admin user change-password --username admin --password newpasswordΑλλάξτε τον κωδικό πρόσβασης.gitea admin user create --username newuser --password superpassword --email user@user.user --admin --access-tokenΔημιουργήστε νέο διαχειριστή χρήστη και αποκτήστε ένα access token.
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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

