
公開されたClickOnceデプロイメントの識別を目的としたGolang製検索エンジンスクローパー
Less SmartScreen More Caffeine: ClickOnce (Ab)Use for Trusted Code Execution カンファレンスプレゼンテーション / ブログ記事 に合わせて、0xthirteen と私がリリースしたツールです。
公開されている ClickOnce アプリケーションを検索エンジンからスクレイピングするために、通常の HTTP リクエストに加えて chromedp の両方を使用する Golang 製 Web スクレイパーです。AWS API Gateway のソース IP ローテーションと、トラブルシューティング用の HTTP プロキシ指定に対応しています。現在、スクレイピングに対応している検索エンジンは Google と Swisscows です。
ClickonceHunter の機能は config.yml によって制御されます。現在、アプリケーションが実行されるモードは2つあります:
awsapigateway フィールドにそれらを設定します検索エンジンリクエストに関連する config.yml の値は次のとおりです:
config.yml 内のその他の関連値は次のとおりです:
Swisscows のスクレイピングは、chromedp プロジェクトを使用した Chrome DevTools プロトコルを利用して実装されています。Swisscows 検索エンジンで行われる検索には CSRF に似た整合性チェックが含まれており、X-Request-Signature および X-Request-Nonce ヘッダーの形で現れます。各 dork リクエストについて、ヘッドレス Chromium ブラウザーを使用して getSwissSecrets() 関数で Swisscows のランディングページにアクセスし、これらのヘッダーが識別されたときに listenForSwissSecrets() 関数でリッスンイベントを作成します。その後、これらのヘッダーが dork リクエストに設定され、整合性チェックを通過します。
HTTP プロキシオプションは、実装されている検索エンジンが必然的にレスポンス形式やリクエストに使用する API エンドポイントを変更した場合に、ユーザーがこの問題をトラブルシューティングできるようにするために追加されました。PR は歓迎します!
検索に対するマルチスレッド / goroutine サポートは実装されていませんでした。公開されている ClickOnce アプリケーションを見つけるという目的には、必要ではないと思われたからです。