
Scraper per motori di ricerca in Golang pensato per l'identificazione di distribuzioni ClickOnce pubblicate.
Strumento rilasciato in combinazione con la presentazione conference Less SmartScreen More Caffeine: ClickOnce (Ab)Use for Trusted Code Execution presentazione conference / articolo del blog di 0xthirteen e me stesso.
Web scraper in Golang che utilizza sia chromedp che normali richieste HTTP per fare scraping dei motori di ricerca alla ricerca di applicazioni ClickOnce pubblicate. Include il supporto per la rotazione degli IP sorgente dell'API gateway AWS e la possibilità di specificare un proxy HTTP per la risoluzione dei problemi. I motori di ricerca Google e Swisscows sono attualmente supportati per lo scraping.
Il funzionamento di ClickonceHunter è controllato da config.yml. Ci sono attualmente due modalità in cui l'applicazione può essere eseguita:
awsapigateway all'interno della configurazioneValori nel file config.yml rilevanti per le richieste ai motori di ricerca includono:
Altri valori rilevanti nel file config.yml includono:
Lo scraping di Swisscows è stato implementato utilizzando il protocollo Chrome DevTools con il progetto chromedp. Ci sono controlli di integrità simili a CSRF inclusi nelle ricerche effettuate sul motore di ricerca Swisscows, che si presentano sotto forma degli header X-Request-Signature e X-Request-Nonce. Per ogni richiesta dork, viene utilizzato un browser chromium headless per navigare alla pagina iniziale di Swisscows usando la funzione getSwissSecrets(), e viene creato un evento in ascolto con la funzione listenForSwissSecrets() per quando questi header vengono identificati. Gli header vengono poi popolati per la nostra richiesta dork per superare il controllo di integrità.
L'opzione del proxy HTTP è stata aggiunta per aiutare gli utenti a risolvere questo problema per quando i motori di ricerca implementati cambieranno senza dubbio la formattazione delle risposte o gli endpoint API utilizzati per effettuare le richieste. Le PR sono benvenute!
Il supporto al multithreading / alle goroutine per le ricerche effettuate non è stato implementato. Ai fini della ricerca di applicazioni ClickOnce pubblicate, non sembrava necessario.