Git

Tip

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

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

Για να εξαγάγετε έναν φάκελο .git από ένα URL, χρησιμοποιήστε https://github.com/arthaud/git-dumper

Χρησιμοποιήστε https://www.gitkraken.com/ για να επιθεωρήσετε το περιεχόμενο

Εάν ένας κατάλογος .git βρεθεί σε μια web εφαρμογή, μπορείτε να κατεβάσετε όλο το περιεχόμενο με wget -r http://web.com/.git. Στη συνέχεια, μπορείτε να δείτε τις αλλαγές που έγιναν χρησιμοποιώντας git diff.

Τα εργαλεία: Git-Money, DVCS-Pillage και GitTools μπορούν να χρησιμοποιηθούν για την ανάκτηση του περιεχομένου ενός καταλόγου git.

Το εργαλείο https://github.com/cve-search/git-vuln-finder μπορεί να χρησιμοποιηθεί για αναζήτηση CVEs και μηνυμάτων ευπαθειών ασφαλείας μέσα σε μηνύματα commit.

Το εργαλείο https://github.com/michenriksen/gitrob αναζητά ευαίσθητα δεδομένα στα repositories μιας οργάνωσης και των υπαλλήλων της.

Repo security scanner είναι ένα εργαλείο command line που γράφτηκε με έναν στόχο: να σας βοηθήσει να ανακαλύψετε GitHub secrets που οι προγραμματιστές τυχαία έκαναν push όταν ανέβασαν ευαίσθητα δεδομένα. Και όπως τα άλλα, θα σας βοηθήσει να βρείτε passwords, private keys, usernames, tokens και άλλα.

Εδώ θα βρείτε μια μελέτη για github dorks: https://securitytrails.com/blog/github-dorks

Γρηγορότερες /.git dumping & dirlisting bypass (2024–2026)

  • holly-hacker/git-dumper είναι μια επανεγγραφή του 2024 του κλασικού GitTools dumper με παράλληλη λήψη (επιτάχυνση >10x). Παράδειγμα: python3 git-dumper.py https://victim/.git/ out && cd out && git checkout -- .
  • Ebryx/GitDump εκτελεί brute-force σε object names από .git/index, packed-refs, κ.λπ. για να ανακτήσει repos ακόμη και όταν το directory traversal είναι απενεργοποιημένο: python3 git-dump.py https://victim/.git/ dump && cd dump && git checkout -- .

Γρήγορη αξιολόγηση μετά το dump

cd dumpdir
# reconstruct working tree
git checkout -- .
# show branch/commit map
git log --graph --oneline --decorate --all
# list suspicious config/remotes/hooks
git config -l
ls .git/hooks

Αναζήτηση μυστικών/διαπιστευτηρίων (τρέχοντα εργαλεία)

  • TruffleHog v3+: entropy+regex με αυτόματη περιήγηση στο ιστορικό Git. trufflehog git file://$PWD --only-verified --json > secrets.json
  • Gitleaks (v8+): γρήγορο σύνολο κανόνων regex, μπορεί να σαρώσει το αποσυσκευασμένο δέντρο ή το πλήρες ιστορικό. gitleaks detect -v --source . --report-format json --report-path gitleaks.json

RCE σε server-side ενσωμάτωση Git μέσω override του hooksPath

Σύγχρονες web εφαρμογές που ενσωματώνουν Git repos μερικές φορές επανεγγράφουν **.git/config χρησιμοποιώντας αναγνωριστικά ελεγχόμενα από τον χρήστη**. Αν αυτά τα αναγνωριστικά συγχωνεύονται στο hooksPath, μπορείτε να ανακατευθύνετε τα Git hooks σε έναν κατάλογο που ελέγχεται από τον επιτιθέμενο και να εκτελέσετε αυθαίρετο κώδικα όταν ο server τρέξει native Git (π.χ., git commit`). Κύρια βήματα:

  • Path traversal in hooksPath: αν ένα repo name/dependency name αντιγράφεται στο hooksPath, εισάγετε ../../.. για να ξεφύγετε από τον προοριζόμενο κατάλογο hooks και να δείξετε σε μια εγγράψιμη τοποθεσία. Αυτό είναι ουσιαστικά ένα path traversal στο Git config.
  • Force the target directory to exist: όταν η εφαρμογή εκτελεί server-side clones, καταχραστείτε τους ελέγχους προορισμού clone (π.χ., παράμετρο ref/branch/path) ώστε να κάνει clone σε ../../git_hooks ή σε παρόμοιο traversal path ώστε οι ενδιάμεσοι φάκελοι να δημιουργηθούν για εσάς.
  • Ship executable hooks: ορίστε το executable bit μέσα στα metadata του Git ώστε κάθε clone να γράφει το hook με mode 100755:
git update-index --chmod=+x pre-commit

Προσθέστε το payload σας (reverse shell, file dropper, κ.λπ.) στο pre-commit/post-commit σε αυτό το repo.

  • Find a native Git code path: βιβλιοθήκες όπως JGit αγνοούν τα hooks. Αναζητήστε deployment flows/flags που επιστρέφουν στο system Git (π.χ., forcing deploy-with-attached-repo parameters) ώστε τα hooks να εκτελεστούν πραγματικά.
  • Race the config rewrite: αν η εφαρμογή εκκαθαρίζει .git/config αμέσως πριν τρέξει Git, σπάμστε το endpoint που γράφει το κακόβουλο hooksPath ενώ ενεργοποιείτε την Git ενέργεια για να κερδίσετε έναν race condition και να εκτελεστεί το hook σας.

References

Tip

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

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