Git

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks

Aby zrzucić folder .git z URL użyj https://github.com/arthaud/git-dumper

Użyj https://www.gitkraken.com/ do przeglądania zawartości

Jeśli w aplikacji webowej znaleziono katalog .git możesz pobrać całą zawartość używając wget -r http://web.com/.git. Następnie możesz zobaczyć wprowadzone zmiany używając git diff.

Narzędzia: Git-Money, DVCS-Pillage i GitTools mogą być użyte do pobrania zawartości katalogu .git.

Narzędzie https://github.com/cve-search/git-vuln-finder może być użyte do wyszukiwania CVE i komunikatów o lukach bezpieczeństwa w commit messages.

Narzędzie https://github.com/michenriksen/gitrob wyszukuje dane wrażliwe w repozytoriach organizacji i jej pracowników.

Repo security scanner to narzędzie wiersza poleceń napisane z jednym celem: pomóc odkryć GitHub secrets, które programiści przypadkowo ujawnili, pushując wrażliwe dane. Podobnie jak inne narzędzia, pomoże znaleźć hasła, klucze prywatne, nazwy użytkowników, tokeny i inne.

Tutaj znajdziesz opracowanie na temat github dorks: https://securitytrails.com/blog/github-dorks

Szybsze /.git dumping & dirlisting bypass (2024–2026)

  • holly-hacker/git-dumper jest przepisanym w 2024 roku wydaniem klasycznego dumpera GitTools z równoległym pobieraniem (>10x przyspieszenie). Przykład: python3 git-dumper.py https://victim/.git/ out && cd out && git checkout -- .
  • Ebryx/GitDump brute-forces nazwy obiektów z .git/index, packed-refs itd., aby odzyskać repozytoria nawet gdy directory traversal jest wyłączony: python3 git-dump.py https://victim/.git/ dump && cd dump && git checkout -- .

Szybka analiza po zrzuceniu

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

Secret/credential hunting (current tooling)

  • TruffleHog v3+: entropy+regex z automatycznym przeszukiwaniem historii Git. trufflehog git file://$PWD --only-verified --json > secrets.json
  • Gitleaks (v8+): szybki regex ruleset, może skanować unpacked tree lub pełną historię. gitleaks detect -v --source . --report-format json --report-path gitleaks.json

Server-side Git integration RCE via hooksPath override

Nowoczesne aplikacje webowe integrujące repozytoria Git czasami nadpisują .git/config używając identyfikatorów kontrolowanych przez użytkownika. Jeśli te identyfikatory są konkatenowane do hooksPath, możesz przekierować Git hooks do katalogu kontrolowanego przez atakującego i wykonać dowolny kod, gdy serwer uruchomi natywny Git (np. git commit). Kluczowe kroki:

  • Path traversal in hooksPath: jeśli nazwa repo/dependencji jest skopiowana do hooksPath, wstrzyknij ../../.., aby wydostać się z zamierzonego katalogu hooks i wskazać na zapisywalną lokalizację. To jest w praktyce path traversal w konfiguracji Git.
  • Force the target directory to exist: gdy aplikacja wykonuje klony po stronie serwera, wykorzystaj kontrolę miejsca docelowego klonowania (np. parametr ref/branch/path), aby spowodować, że sklonuje do ../../git_hooks lub podobnej ścieżki traversal, tak aby pośrednie foldery zostały utworzone.
  • Ship executable hooks: ustaw bit wykonywalności w metadanych Git, aby każdy clone zapisywał hook z trybem 100755:
git update-index --chmod=+x pre-commit

Dodaj swój payload (reverse shell, file dropper, itp.) do pre-commit/post-commit w tym repo.

  • Find a native Git code path: biblioteki takie jak JGit ignorują hooki. Szukaj przepływów wdrożeniowych/flagi, które wracają do systemowego Git (np. forcing deploy-with-attached-repo parameters), aby hooki faktycznie się uruchomiły.
  • Race the config rewrite: jeśli aplikacja sanitizuje .git/config tuż przed uruchomieniem Git, spamuj endpoint, który zapisuje Twój złośliwy hooksPath, jednocześnie wywołując akcję Git, aby wygrać race condition i uruchomić hook.

Referencje

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks