Grazie alle Dork di Google è possibile carpire informazioni interessanti contenute arbitrariamente o involontariamente in siti web, documenti e file indicizzati da Big G.
Spesso, però, accade che anche su GitHub vengano condivise involontariamente informazioni riservate o sensibili all’interno delle reporitories. Per esempio, durante l’upload automatizzato di un progetto, può capitare che vengano caricati i file di configurazione che VOI avete modificato, nel cui interno sono contenute informazioni come user ID, password, indirizzi IP o indirizzi email.
Credenziali SFTP (Sublime Text Editor)
Il plugin SFTP dell’editor di testo “Sublime Text Editor” salva le credenziali di accesso al server “sicuro” in un file chiamato “sftp-config.json
” .
Il protocollo SFTP (Secure File Transfer Protocol) è stato disegnato per trasferire file in modo sicuro, attraverso un tunnel SSH, ma le credenziali di accesso tramite l’editor di testo possono essere estratte dalle reporitories con la dork:
filename:sftp-config.json password
I risultati sono inaspettati: più di 9.000 risultati
Il contenuto non è meno stupefacente. Ci sono addirittura password di root
.
Ok, queste sono credenziali di reti private (subnet 192.168.0.0/16). Ma si trovano anche credenziali di accesso a risorse pubbliche?
Ahimé, sì.
Credenziali Amason AWS
Le credenziali di accesso al cloud storage AWS di Amazon contengono due parametri: aws_access_key_id
e aws_secret_access_key
.
Dork:
filename:credentials aws_access_key_id
Anche qui numerosi risultati, quasi 14.000.
I falsi positivi possono essere numerosi, considerato che i parametri sono inseriti anche in file di configurazione vuoti, in modo da essere poi popolati.
Cerchiamo chiavi segrete e ID più promettenti:
File .netrc (LINUX)
Il file .netrc
o _netrc
è responsabile del salvataggio di credenziali utilizzabili a riga di comando.
Salvare le credenziali (stile password manager) in un file ne permette l’inserimento automatico, invece che inserirle manualmente ogni volta.
.netrc
si trova nella directory HOME utente (indicata con una tilde) e la sintassi del file è genericamente la seguente:
machine <indirizzo host remoto> login <login> password <password>
Dork:
filename:.netrc password filename:_netrc password
Ho spalancato gli occhi, c’è un login di un portale naga.gov… Sarà reale o solo un test?
Anche qui, non mancano riferimenti a risorse pubbliche e ad indirizzi esterni:
Chiave API Shodan
Non vuoi spendere soldi per acquistare una chiave API di Shodan? Nessun problema: gli sviluppatori ne hanno dimenticate quante ne vuoi!
Le API Shodan sono invocabili con una semplice chiamata web, pertanto si possono trovare script scritti in qualsiasi linguaggio con al loro interno una chiave API non offuscata con la Dork:
"shodan_api_key"
Qui si trovano un po’ meno risultati, quasi 1.200 file.
Vediamo se c’è comunque qualche informazione interessante:
Credenziali FileZilla FTP Client
Il famoso client FTP salva le credenziali in un file XML (sì, lo so, che cosa poco furba). Sarà stato caricato da sviluppatori distratti da qualche parte?
filename:filezilla.xml host pass
Assolutamente sì.
Chiavi private RSA/DSA
No, dai, chiavi private? Ma chiunque sappia cosa sia una chiave privata deve sapere che vanno tenute… beh, private!
Ebbene…
filename:id_rsa filename:id_dsa extension:pem private
Senza parole… Ci sono più file chiamati id_rsa
che chiavi AWS.
Quante di queste sono vere e proprie chiavi private e non righe di esempio?
… possiamo dire molte.
Cronologia comandi Linux
Nel caso in cui un utente abbia caricato il suo sistema Linux o la sua cartella HOME su GitHub, per fare un backup o qualsiasi altro motivo, potrà darsi che si sia dimenticato di cancellare la sua cronologia comandi, presente nel file .bash_history
, che di norma contiene gli ultimi 500 comandi eseguiti.
filename:.bash_history
Ciò mi ha fatto pensare ad un’altra Dork, derivata dalla precedente:
filename:.bash_history git config --global user
Questa Dork troverà tutti i file .bash-history
di utenti che hanno configurato Git per sottomettere codice e repositories.
Troverò qualcosa?
Mi sa proprio di sì.
Chiavi private PUTTY
Quando si esegue puttygen.exe e si genera una nuova coppia di chiavi, la chiave privata viene salvata dentro un file di estensione PPK.
Il file PPK ha al suo interno la dicitura “PRIVATE-LINES:”, seguito dal numero di linee componenti la chiave privata generata.
Possono essere recuperate le chiavi caricare su GitHub con:
extension:ppk private
Credenziali HTTP (APACHE)
Apache salva le credenziali per le connessioni HTTP all’interno di un file chiamato .htpasswd.
Il salvataggio cifrato è possibile (si può MD5, bcrypt o SHA1), ma è opzionale, perciò il file sarà quasi sicuramente in chiaro.
filename:.htpasswd
Dump di database con all’interno indirizzi email
Andiamo a cercare dati un po’ più interessanti.
Abbiamo visto che ci sono delle funzioni delle Dork che permettono di specificare l’estensione dei file, extension
, vediamo se si riesce a trovare qualche informazione per costruire una spam list.
extension:sql email
Così facendo troverò tutti i file SQL (database) che hanno al loro interno uno o più indirizzi email, dato che, per comodità e facilità di lettura, vengono quasi sempre salvati in una colonna chiamata semplicemente “email”.
Jackpot. 1 milione e mezzo di risultati. Riuscirà un fantomatico spammer a costruire la sua spam list per mandare in giro i suoi messaggi indesiderati?
Conclusioni
Non si potrà mai fare un elenco completo di queste Dork e dei file che si possono trovare.
Questo articolo è stato scritto principalmente per due motivi:
- Sensibilizzare gli sviluppatori e ricordare di prestare sempre la maggior attenzione possibile quando si espongono file online, anche se si tratta di dummies o file di test (come molte occorrenze sopra), in quanto il rischio che di fianco ad un
[email protected]
ci sia un indirizzo email reale è concreto e lo potete constatare personalmente; - Far venire la curiosità ai miei lettori riguardo la ricerca e l’arte dello “scraping” di informazioni su fonti aperte (OSINT).
Conoscete altri file dove vengono salvate informazioni sensibili? Provate a cercarli su GitHub, magari qualcuno se ne è lasciato scappare qualcuno!