Guida Gmail OSINT

0xbro

Super Moderatore
24 Febbraio 2017
4,466
179
3,769
1,825

Gmail OSINT: tutto ciò che devi sapere​

Facendo delle challange OSINT su HackTheBox mi sono imbattuto in una sfida particolare in cui era richiesto di trovare la flag partendo da una email di Google. Estenuato dalla lunga ricerca per nulla produttiva, decido di cercare se esistano delle tecniche specifiche per Gmail, scoprendo degli articoli davvero molto interessanti, che vi lascio di seguito:​

NB: I contenuti di questa Release quindi sono ispirati dai due articoli sopra citati e si prestano come una rielaborazione in lingua italiana per tutti coloro che hanno difficoltà con l'inglese
Google.png

Il funzionamento 'nascosto' di Google​

Google, come tanti altri siti e programmi, lavora per la quasi totalità del tempo tramite ID. Ogni utente, ogni post, ogni email, ogni cosa corrisponde in verità a un id univoco. I metodi per ricavare questi id sono davvero tanti: tramite le richieste effetuate dal sito (intercettandole con un proxy), tramite i codice sorgente, attraverso links, ecc. Tutti questi id, se studiati, analizzati e collegati tra di loro, possono creare delle enormi reti di informazioni (anche se occorrono notevoli competenze e parecchio tempo).
Nelle nostre analisi, nello specifico, ci concentreremo sull'ottenimento dello userID (codice univoco di una persona) e del contactID (codice univoco di un contatto). Come potete immaginare questi due identificativi sono legati tra di loro e, una volta trovato uno, potremo trovare l'altro, e vice versa.

Cosa si può fare con gli ID​

La domanda che sorge spontanea è: "Cosa posso fare con questi id una volta che li ho ottenuti?".
La risposta è semplice: lavorando principalmente con questi codici, è possibile scovare tutti i contenuti pubblici di una persona, senza doverli andare a cercare in giro per il web. E' possibile vedere le foto di Google, le recensioni online, forse addirittura le posizioni gmail o i canali google collegati (non ho ancora certezza di questo).

Ottenere gli ID​

Come detto precedentemente, per ottenere gli Id ci sono diversi modi. Il mio preferito, che è anche uno dei più comodi, parte dai nostri contatti su Google (è necessario però che la email della "vittima" sia abbinata ai servizi google, in modo da avere un id associato).​
Contact.png

Una volta scelto il contatto, dovremo aprire la sua scheda e analizzare il codice sorgente generato, cercando i valori dei campi data-sourceid e data-personid:​
Contact-2.png

SourceCode.png


Gli id hanno una struttura ben definita, risulta quindi facile capire se ciò che abbiamo davanti sia un vero id oppure no (capita che a volte il data-sourceid estratto non sia "originale"... non ho ancora capito il motivo, ma ottenendo comunque il data-personid il problema è superabile):​




Nei due articoli sopra citati viene detto anche che è possibile recuperare l'id di una persona tramite il suo canale YouTube (non so se sia ancora fattibile... se sì fatemi sapere!) oppure tramite le richieste dirette a contacts.google.com contenenti l'end-point batchexecute, inviate durante il caricamento della pagina dei contatti.​
batchexecute.png

Google API: ottenere ciò che ci serve​

Come accennato sopra, non sempre riusciremo ad ottenere il data-sourceid, ma quasi sempre riusciremo a ottenere il data-personid. Per nostra fortuna questi due identificativi sono "collegati", e Google ci mette pure a disposizione lo strumento per ottenere l'id mancante: le Google API!​



Ora che abbiamo trovato l'UserID, possiamo controllare i dati pubblici di quella persona!

Dati Pubblici: buona visione!​

Arrivati a questo punto non ci resta altro da fare che controllare se e quali dati siano presenti pubblicamente online! Sebbene suppongo ci siano molte più richieste effettuabili, per il momento gli URL che ho trovato interrogabili sono:​

Photo Albums​

Codice:
https://get.google.com/albumarchive/{userID}
(Non aspettatevi che tutti abbiano un album di foto, ndr).
Sebbene non sempre si trovino contenuti, può capitare talvolta che degli utenti oltre alle foto carichino addirittura le coordinate di dove questa è stata scattata, come mostrato negli articoli in cima alla guida.​

Google Maps​

Google Maps e Google Reviews sono entrambi accessibili tramite GMaps, e si può indagare su qualunque utente semplicemente richiedendo l'URL corretto:
Codice:
https://www.google.com/maps/contrib/{userID}
Quando questo URL viene aperto, di default mostra le foto che sono state caricate con le informazioni sulla posizione. Le recensioni degli utenti sono accessibili tramite l'opzione a sinistra.​

YouTube Account​

Non tutti lo sanno ma è possibile, tramite le API e tramite la giusta ricerca, scoprire l'account YouTube di una persona partendo semplicemente dalla sua email. Per farlo, basta utilizzare il seguente URL (non ne ho verificato il funzionamento):
Codice:
https://www.youtube.com/feeds/videos.xml?user={accountName}
Il risultato sarà un feed RSS che potrà contenere più o meno informazioni. Per richiamarlo sarà però necessario disporre dell'accountName che, nella maggior parte dei casi, è la parte di email precedente a '@gmail.com'. Nel caso non fosse quella, è possibile comunque recuperarla tramite le API di google.
RSS.png

Conclusioni​

Abbiamo potuto vedere come sia possibile eseguire attività di OSINT su praticamente qualunque piattaforma, addirittura Google. Sebbene possa sembrare una grave falla, in verità questo è il normale funzionamento di Google e i dati ottenuti, ci tengo a precisarlo, sono tutti PUBBLICI, per cui non ci sono reali problemi. Il meccanismo probabilmente varierà nel corso del tempo, poichè potrebbero venir aggiunti o cambiati diversi id, ma il funzionamento di base sono sicuro che resterà lo stesso per molto tempo. Ciò che conta davvero è riuscire ad analizzare le richieste che vengono effettuate e mettere assieme i pezzi.

Sono convinto che oltre a alle informazioni mostrare nella guida sia possibile recuperarne molte di più, ciò che serve però è tempo e tanta ricerca. Nel caso dovessi scoprire nuove tecniche ve lo farò sapere, perfavore fate lo stesso anche voi in caso aveste novità!​

A presto
[AWESOME]angle-double-right[/AWESOME] 0xbro