
Golang-Suchmaschinen-Scraper zur Identifizierung veröffentlichter ClickOnce-Bereitstellungen
Tool, das in Kombination mit der Less SmartScreen More Caffeine: ClickOnce (Ab)Use for Trusted Code Execution Konferenzpräsentation / Blogbeitrag von 0xthirteen und mir veröffentlicht wurde.
Golang-Webscraper, der sowohl chromedp als auch normale HTTP-Anfragen nutzt, um Suchmaschinen nach veröffentlichten ClickOnce-Anwendungen zu durchsuchen. Unterstützt die Rotation der Quell-IP über das AWS API Gateway sowie die Angabe eines HTTP-Proxys zur Fehlersuche. Derzeit werden die Suchmaschinen Google und Swisscows zum Scraping unterstützt.
Die Funktionalität von ClickonceHunter wird über config.yml gesteuert. Die Anwendung kann derzeit in zwei Modi ausgeführt werden:
awsapigateway-Felder in der Konfiguration einFür Suchmaschinenanfragen relevante Werte in der config.yml-Datei sind:
Weitere relevante Werte in der config.yml-Datei sind:
Das Swisscows-Scraping wurde mithilfe des Chrome-DevTools-Protokolls mit dem chromedp-Projekt implementiert. Bei Suchanfragen auf der Suchmaschine Swisscows sind CSRF-ähnliche Integritätsprüfungen enthalten, die in Form der X-Request-Signature- und X-Request-Nonce-Header auftreten. Für jede Dork-Anfrage wird ein Headless-Chromium-Browser verwendet, um mit der Funktion getSwissSecrets() zur Swisscows-Landingpage zu navigieren. Mit der Funktion listenForSwissSecrets() wird ein Listener-Ereignis erstellt, das ausgelöst wird, wenn diese Header identifiziert werden. Die Header werden dann für unsere Dork-Anfrage gesetzt, um die Integritätsprüfung zu bestehen.
Die HTTP-Proxy-Option wurde hinzugefügt, um den Nutzern bei der Fehlersuche zu helfen, falls/wenn die implementierten Suchmaschinen zweifellos ihre Antwortformatierung oder die für Anfragen verwendeten API-Endpunkte ändern. PRs sind willkommen!
Multithreading-/Goroutine-Unterstützung für die durchgeführten Suchanfragen wurde nicht implementiert. Für den Zweck, veröffentlichte ClickOnce-Anwendungen zu finden, schien es nicht notwendig.