Git
Git Cheat Sheet per Pentesting e Enumerazione
Informazioni di base
Verifica configurazione
Visualizza remote repository
Esplorazione di repository sospetti
Clonare un repository (anche senza HEAD)
Scaricare tutte le branch
Visualizzare branch remoti
Esaminare lo stato del repository
Enumerazione di file e commit
Log completo con dettagli
Visualizzare log di una specifica branch
Visualizzare modifiche recenti
Visualizzare tutti i commit con hash
Recupero di informazioni sensibili
Ricerca di stringhe specifiche (e.g., password)
Esaminare commit eliminati (reflog)
Ripristinare file cancellati
Esaminare differenze tra commit
Esplorare il contenuto di un singolo commit
Enumerazione di oggetti Git
Elenco di oggetti (blob, tree, commit)
Esaminare un oggetto specifico
Ricerca di informazioni sensibili nelle branch
Trova branch non mergiate
Ricerca di branch con nome sospetto
Altri comandi utili
Analisi di differenze con branch remoto
Controllare permessi e autorizzazioni
Download repo git da un sito web
Se trovi esposto un repository .git su un sito web (ad esempio, l'URL è http://example.com/.git/), puoi utilizzare strumenti o metodi manuali per scaricarlo e analizzarlo. Questo è un caso comune durante il pentesting, ed è importante procedere con attenzione per evitare problemi legali.
Ecco i passi principali:
1. Verifica la presenza della directory .git
Prova ad accedere all'URL http://example.com/.git/HEAD nel browser.
Se ottieni un risultato come ref: refs/heads/main, significa che la directory .git è accessibile.
2. Scaricare il repository con strumenti automatici
Puoi usare strumenti come GitTools per scaricare completamente il repository. GitTools contiene lo script git-dumper, molto utile per questi casi. Installazione di GitTools
Utilizzo di git-dumper
Questo script scaricherà i file necessari per ricostruire il repository Git.
3. Metodo manuale con wget o curl
Se preferisci farlo manualmente, puoi utilizzare wget o curl per scaricare la directory .git.
Con wget:
Dove:
- -r è per scaricare ricorsivamente
- -np è per non risalire alla directory genitore
- -R è per escludere i file index.html*
Con curl:
Crea una lista di file noti (ad esempio .git/HEAD, .git/config, .git/refs/heads/main) e scaricali uno per uno:
4. Ricostruzione del repository
Una volta scaricati i file della directory .git, puoi ricostruire il repository:
Inizializza un repository nella directory di output
Recupera i file e le branch
Suggerimenti utili
- Esplora manualmente: Ispeziona .git/config per potenziali configurazioni sospette.
- Attenzione ai file: Cerca file .gitignore e README che possano contenere informazioni utili.
- Ripristino di branch: Usa git reflog per ripristinare branch eliminati.
- Analisi di commit: Esamina i commit per trovare informazioni sensibili.