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 ви можете завантажити весь вміст, використавши wget -r http://web.com/.git. Потім можна переглянути зміни за допомогою git diff.

Інструменти: Git-Money, DVCS-Pillage and GitTools можна використовувати для отримання вмісту git-директорії.

Інструмент https://github.com/cve-search/git-vuln-finder можна використовувати для пошуку CVE та повідомлень про вразливості в повідомленнях комітів.

Інструмент https://github.com/michenriksen/gitrob шукає конфіденційні дані в репозиторіях організацій та їхніх співробітників.

Repo security scanner — інструмент для командного рядка, створений з однією метою: допомогти вам виявити GitHub секрети, які розробники випадково запушили разом із чутливою інформацією. Як і інші, він допоможе знайти паролі, приватні ключі, імена користувачів, токени та інше.

Тут можна знайти дослідження про 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-forces object names from .git/index, packed-refs, etc. to recover repos even when directory traversal is disabled: python3 git-dump.py https://victim/.git/ dump && cd dump && git checkout -- .

Швидка первинна перевірка після дампу

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 на серверній стороні при інтеграції Git через перевизначення hooksPath

Сучасні веб-застосунки, що інтегрують Git-репозиторії, іноді перезаписують .git/config, використовуючи ідентифікатори, контрольовані користувачем. Якщо ці ідентифікатори конкатенуються в hooksPath, можна перенаправити Git hooks у директорію, контрольовану атакуючим, і виконати довільний код, коли сервер виконує native Git (наприклад, git commit). Ключові кроки:

  • Path traversal in hooksPath: якщо ім’я репозиторію/ім’я залежності копіюється в hooksPath, інжектуйте ../../.., щоб вийти з призначеної директорії hooks і вказати на записуване розташування. Це фактично є path traversal в конфігурації Git.
  • Force the target directory to exist: коли додаток виконує server-side clones, зловживайте контролем місця призначення клону (наприклад, параметром ref/branch/path), щоб змусити клонувати в ../../git_hooks або подібний traversal-шлях, через що проміжні директорії будуть створені.
  • Ship executable hooks: встановіть біт виконуваності у метаданих Git, щоб кожен клон записував hook з режимом 100755:
git update-index --chmod=+x pre-commit

Додайте ваш payload (reverse shell, file dropper тощо) до pre-commit/post-commit у цьому репозиторії.

  • Find a native Git code path: бібліотеки на кшталт JGit ігнорують hooks. Шукайте потоки розгортання/прапори, які відступають до system Git (наприклад, примусово deploy-with-attached-repo параметри), щоб 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