Discussione OSINT 2024 - Sherlock (remake)

Netcat

Utente Jade
17 Gennaio 2022
455
129
332
691
Ultima modifica:
Sherlock, un tool popolare per stalkerare enumerare i profili social delle persone, è uno strumento ben realizzato soprattutto dal punto di vista estetico, e per tale ragione ha riscosso una discreta fama.

Purtroppo viviamo in un mondo dove l'estetica conta più della sostanza (ed è anche grazie a questo purtroppo che molti cialtroni ottengono quello che vogliono, senza offesa per il creatore di Sherlock).
Quindi, con il concetto di sostanza in mente, ho fabbricato una versione dell'Osint che risolve alcuni problemi fondamentali della versione originale:
  • Aggiunta la feature di indicare più varianti dell'username per il crawling e l'enumerazione dei social media. Sì, perché supponiamo che vogliamo enumerare Marco Rossi: se il nostro script accetta in input solo un username, del tipo marco.rossi, andrà ad evitare tutte le "piccole variazioni" di quell'username, e se il Marco Rossi che cercavamo si chiamava marcorossi senza il puntino? Con l'aggiunta dell'abilità di fare scraping a più username alla volta, potremo precisare le piccole variazioni al costo di aumentare il rischio di falsi positivi e di lanciare più richieste al server, ma con il ritorno di poter scoprire se quella persona si è chiamata con una variazione diversa da "marco.rossi" su altri social media (avendo dunque accesso a più dati su costui)... È possibile che su Facebook la persona che cerchiamo sia "marco.rossi" ma su LinkedIN la stessa persona sia "marcorossi", andando a dare in input alla versione originale di Sherlock solo "marco.rossi", il tool non elencherà il profilo LinkedIN a causa della variazione;

  • Aggiunta la capacità di fare addizionalmente uno scraping generico, che comporta il lancio di una query più generica a Google. Supponiamo di aver scoperto che Mario Rossi lavora per Azienda S.p.A, e noi vogliamo saperne di più su quell'azienda, attraverso questa funzione possiamo andare a cercare addizionalmente i link delle risorse pubblicamente accessibili di quell'azienda, e magari facendo crawling ci accorgiamo anche di cose interessanti, come ad esempio se il sito di quest'azienda implementa PHP o WP;

  • Una funzione che vedo mancare in alcuni Osint open source, incluso Sherlock, è la capacità di scaricare PDF. Ultimamente, facendo scraping anche manualmente, vedo molti PDF vacanti in giro per il web. Alcuni di essi possono contenere informazioni interessanti a scopi d'osinting. Questa capacità è stata implementata nella mia versione di Sherlock, chiedendo all'user se vuole scaricare tutti i PDF rilevati durante il crawling, enumerandoli per tag. Avvertenza: prestare comunque attenzione a tutti i link enumerati qualora si cerchino PDF, non sempre i link che hostano PDF usano pratiche scorrette, come far terminare il link con il tag ".pdf". In questo caso, si dovrà procedere allo scraping manuale (comunque favorito, dato che qui andiamo ad enumerare tutti i link correlati alle parole chiave che forniamo in input).
Infine, dal momento che stiamo usando tecniche di scripting senza l'ausilio di un browser headless (spreca più risorse, non è un metodo adatto a chi ha macchine meno potenti) ho implementato una funzione che gestisce l'HTTP Error 429 (too many requests) che può essere comunque superato facendo attenzione a come si inviano le query, e in caso di ogni problema, anche con l'ausilio di una VPN. Sconsiglio la pratica di implementare funzioni che richiamano proxy free-to-run, in quanto 1 => sono insicuri, 2 => sono lenti, 3 => sono "sporchi" perché abusati da idioti (e Google giustamente li blocca) 4 => i proxy decenti costano.

Lo strumento che ho creato offre un quadro generale, senza tuttavia effettuare operazioni di scraping più profonde, come analizzare tutte le sottodirectory dei link trovati, o caccia agli indirizzi e-mail. Per esaminare più a fondo, in questo caso si dovrà procedere manualmente. Lo scopo principale, era di risolvere solo alcune lacune presenti nella versione originale di Sherlock, pur continuando a mappare un profilo generale della presenza di una persona (o di un ente) sul web.

Rispettoso della privacy, il mio tool fa osinting solo delle informazioni pubblicamente accessibili, enumerandole ed ottimizzandole per velocizzare operazioni di analisi. Se ti lamenti di essere "schedato" da questi programmini ... che possono arrivare ai tuoi dati strettamente confidenziali, solo se implementano qualche tipo di exploit dolorosissimo (che qui non c'è) ... c'è qualcosa che non va nel modo in cui gestisci la tua privacy digitale, e nella tua testa ovviamente.

Per testare lo script, serve Python 3.x (io ho usato 3.12) e servono le librerie "googlesearch-python" e "requests" (che probabilmente avete già, ma non si sa mai)
 

Allegati

  • osint.zip
    1.9 KB · Visualizzazioni: 12
  • Una funzione che vedo mancare in alcuni Osint open source, incluso Sherlock, è la capacità di scaricare PDF. Ultimamente, facendo scraping anche manualmente, vedo molti PDF vacanti in giro per il web. Alcuni di essi possono contenere informazioni interessanti a scopi d'osinting. Questa capacità è stata implementata nella mia versione di Sherlock, chiedendo all'user se vuole scaricare tutti i PDF rilevati durante il crawling, enumerandoli per tag. Avvertenza: prestare comunque attenzione a tutti i link enumerati qualora si cerchino PDF, non sempre i link che hostano PDF usano pratiche scorrette, come far terminare il link con il tag ".pdf". In questo caso, si dovrà procedere allo scraping manuale (comunque favorito, dato che qui andiamo ad enumerare tutti i link correlati alle parole chiave che forniamo in input).

Molto interessante! Riguardo questa funzionalità puoi controllare se la richiesta GET al link che finisce per .pdf ti risponde veramente con un file formato PDF tramite i primi 4 byte che devono essere %PDF (1178882085 in little-endian), se è altra roba inizierà sicuramente con <html> , doctype o altro. Poi se vuoi cercare per parole chiave potresti passare il contenuto del pdf a una delle tante librerie python che estraggono il testo ma se sono PDF con immagini serve una review manuale o un sistema OCR non tanto semplice.

Perché non fai direttamente una pull request per contribuire al progetto?

Penso che il tipo di modifiche sia off-topic rispetto allo scopo del progetto originale (a parte la prima feature), è più un fork con scopi di OSINT più ampi rispetto ai soli profili social.
 
Interessante , davvero.

Importante avere tool del genere da poter abbinare con maltego per ricerche OSINT avanzate.

Grazie Netcat !
lol
Messaggio unito automaticamente:

Maltego è 1000 volte meglio di sta roba oggettivamente, unica pecca è che lo devi configurare. Questo script è adatto per un fast sweep ma niente di paragonabile a maltego
 
lol
Messaggio unito automaticamente:

Maltego è 1000 volte meglio di sta roba oggettivamente, unica pecca è che lo devi configurare. Questo script è adatto per un fast sweep ma niente di paragonabile a maltego
Ma dire maltego è meglio in termini assoluti significa tutto e nada , dipende dalla versione , sulla CE (community ed) mancano dei tool seri di scrape da social e/o piattaforme di quel tipo , su quella premium non so.

Comunque il bello di maltego è che puoi aggiungere tool tuoi , quindi programmi del genere vanno a completarlo.

Sicuramente lo proverò sherlock e ti farò sapere