
Uno strumento di raccolta informazioni per raccogliere le email dei commit git nei servizi di controllo versione.

Questa versione di Gitmails non è più mantenuta. Dai un'occhiata alla versione Gitmails Shell se vuoi usare una versione che è mantenuta e, si spera, sviluppata.
Se non vuoi usare la versione shell e preferisci la versione Python, sentiti libero di fare il fork di Gitmails e indirizzarlo verso il percorso che ritieni più opportuno.
Gitmails sfrutta il fatto che i commit git contengono un nome e un'email configurati dall'autore e che i servizi di hosting dei version control vengono utilizzati per archiviare molti progetti.
Cosa fa Gitmails:
Con questi passaggi, Gitmails può raccogliere tutte le email trovate nella cronologia dei commit per un target specifico.
Prima di tutto, devi scegliere il metodo di operazione: raccogliere email di organizzazione, utente o repository singolo. Questo può essere fatto con le opzioni: -u --username, -o --organization o -r --repository.
Dopo aver specificato il metodo di operazione, devi impostare il target. Dovresti passarlo subito dopo il metodo di operazione: python3 gitmails.py -u some_username, python3 gitmails.py -o some_org o python3 gitmails.py -r some_repo_url.
NOTA: i nomi utente di gitlab sono case sensitive, tienilo a mente quando provi a raccogliere email lì.
Con questa configurazione base, Gitmails clonerà tutti i repository per il target specificato (o clonerà il repository nell'url) e analizzerà la sua cronologia dei commit. Poi, stamperà le informazioni di alto livello dell'utente o dell'organizzazione e infine stamperà, in una tabella "fancy_grid" (da tabulate), tutte le coppie Nome-Email trovate durante l'analisi.
Opzioni utili:
--raw: Stamperà i risultati in testo puro, senza griglie, solo valori separati da virgola;-f | --file: Salverà il risultato nel file specificato. I risultati saranno in formato csv senza intestazione.--include-repositories: Farà sì che Gitmails stampi il risultato con informazioni su in quale repository è stata trovata l'email.-p | --path: Specifica il percorso temporaneo per clonare i repository.-e | --exclude: Ignora i repository specificati. Confronterà il nome del repository, se corrisponde, ignorerà il repository e passerà al successivo.--no-cleanup: Non rimuoverà i repository clonati.--include-forks: Includerà i repository fork nell'analisi (Solo per github).--include-users: Se si raccoglie un'organizzazione, raccoglierà informazioni sui suoi membri pubblici (Solo per github).--no-[gitlab|github|bitbucket]: Non raccoglierà informazioni del servizio host specificato.--run-plugins: Eseguirà plugin sul risultato raccolto.Per installare Gitmails, dovrai eseguire i seguenti passaggi:
pip3 install -r requirements.txtSe stai usando Debian (forse anche Ubuntu), il pacchetto libgit2 non funziona con Gitmails. Per risolvere questo problema, dovrai compilare libgit2 manualmente. I seguenti passaggi dovrebbero essere sufficienti:
wget https://github.com/libgit2/libgit2/archive/v0.27.0.tar.gz && \
tar xzf v0.27.0.tar.gz && \
cd libgit2-0.27.0/ && \
cmake . && \
make && \
sudo make install
ldconfig
pip3 install pygit2
Oppure esegui lo script debian install.
Puoi anche usare la versione docker dello strumento emettendo il seguente comando:
docker run -it giovanifss/gitmails --helpNota che se vuoi scrivere su un file, dovrai montare un volume docker:
docker run -v /tmp/output:/opt -it giovanifss/gitmails -f /opt/result.txtQuesto progetto non è più mantenuto. Se vuoi contribuire, dai un'occhiata a Gitmails Shell.
Questo strumento raccoglie dati che possono essere utili per lavori legali di sicurezza offensiva. Gli autori di questo progetto declinano ogni responsabilità per eventuali danni o perdite causati dall'uso improprio o malevolo di questo strumento. Controlla LICENSE per maggiori dettagli.
--api