Premessa
Gli HTTP favicon sono spesso utilizzati da bug bounty hunter e red teamer per individuare servizi fraudolenti.
Sebbene l’utilizzo di favicon hash sia comune nella comunità “red”, un numero significativo di blue teamer non li utilizza affatto e questo è un peccato in quanto, tra le loro altre funzioni, possono fornirci un modo semplice per identificare gli indirizzi che ospitano siti di phishing. Dopotutto questo è stato il motivo per cui le ricerche degli hash dei favicon sono state introdotte in Shodan.
Ad esempio, si può mostrare come rilevare dei siti che ospitano pagine di phishing, cercando di impersonarsi come portali di accesso per Office 365 e altri servizi Microsoft. Ovviamente lo stesso principio funziona per qualsiasi altro servizio.
Si potrebbe quindi calcolare gli hash utilizzati da sistemi specifici di un’azienda che si sta cercando di proteggere (ad esempio favicon da un sito Web aziendale) e utilizzare periodicamente queste ricerche su Shodan e/o altri servizi per implementare un meccanismo di rilevamento/protezione del marchio per il phishing.
Nella pratica
Con uno script in python è possibile calcolare il MurmurHash di una qualsiasi risorsa, nel nostro esempio andremo a calcolarlo prendendo come fonte i byte restituiti dalla richiesta alla risorsa remota https://c.s-microsoft.com/favicon.ico
import requests
import mmh3
import base64
response = requests.get('https://c.s-microsoft.com/favicon.ico')
favicon = base64.encodebytes(response.content)
hash = mmh3.hash(favicon)
print(hash)
Lanciando lo script si ha questo risultato
Andando ad eseguire una ricerca su Shodan possiamo vedere un cospicuo numero di risultati tra siti legittimi e siti illegittimi.
Con una ricerca più approfondita si possono andare a filtrare meglio i risultati, ad esempio utilizzando questa stringa andremo ad estendere la nostra ricerca per cercare solo indirizzi di pagine web che assomigliano a portali di accesso (http.html:”Sign in”) e che non sono ospitate su infrastrutture Microsoft (-org:”Microsoft Corporation” -org:”Microsoft Azure “) ma eseguono un server Web Apache (prodotto:”Apache httpd”).
http.favicon.hash:-2057558656 -org:"Microsoft Corporation" -org:"Microsoft Azure" product:"Apache httpd" http.html:"Sign in"
Come si può vedere dal risultato, gli host trovati sono nettamente inferiori e – presumibilmente – molti dei quali illegali
Come volevasi dimostrare, prendendo il primo della lista, il risultato è il seguente
EOF
Interessante utilizzo della favicon!