
(これは「樽の中の魚」のジョークです。私は駄洒落が好きです!)
HTMLを取り込み、フィッシングキャンペーンに適したHTMLソースを生成するPythonツール。
Cooperは、フィッシングキャンペーンで使用するためにターゲットのウェブサイトやメールを複製するプロセスを簡素化します。使用したいURLを見つけるか、メールの生の内容をダウンロードしてCooperに渡すだけです。Cooperはコンテンツを複製し、自動的にキャンペーンで使用できるように準備します。スクリプト、画像、CSSは相対リンクの代わりに直接リンクを使用するように変更され、リンクはフィッシングサーバーを指すように変更され、フォームはデータをあなたに送信するように更新されます――すべて数秒で完了します。Cooperはクロスプラットフォームで、macOS、Linux、Windowsで動作します。
wget でサイトを取得した後に、手動でリンクやフォームを編集する必要はもうありません。詳細な作業に集中できます。
Cooperには、さまざまな目的を持ついくつかのモジュールがあります:
pageはCooperの主要モジュールです。唯一必須の引数はターゲットURLを指定する-tです。オプションで--seleniumを追加すると、Requestsの代わりにSeleniumを使用できます。基本的に、出力がおかしかったり不完全だったりする場合(例えば、背景とスタイルだけなど)は、--seleniumを試してみてください。
一部のウェブサイトでは、HTMLコンテンツを生成するためにJavaScriptが必要です。出力がおかしい、または不完全な場合は、--seleniumを試してみてください。
さらに、-uを使用して、画像、スクリプト、スタイルシートのベースURLとして使用するURLを指定できます。Cooperは相対リンク(例:/wp-content/images/foo.bar)を完全なURLに置き換えます。
-tおよび-uには、常に正しいプロトコル(例:*http://www.example.com*)を含む有効なURLを指定してください。
全設定のリストは以下の通りです:
emailモジュールは、既存のメールを新しいフィッシングの基礎として使用したい場合に便利です。手動でエンコーディングやマルチパートMIMEメッセージを処理するのは面倒なため、Cooperに任せましょう。このモジュールはメッセージの内容を解析し、添付ファイルなどの不要な部分を破棄し、重要なメール本文(気にする必要があるプレーンテキストまたはtext/html部分)の完全にデコードされたバージョンを提供します。
全設定のリストは以下の通りです:
前述の通り、このモジュールは一回限りの使用です。必須かつ唯一の引数は、エンコードする画像ファイルを指定する-iです。独自のランディングページを作成している場合や、ページを編集して画像を追加する必要がある場合に便利です。埋め込むことにした場合は、このモジュールを試してみてください。指定されたファイルをBase64エンコードし、画像を埋め込むために必要なテキストを生成します。
CooperはウェブサイトのスクレイピングとHTMLの解析にいくつかのライブラリを必要とします。pipまたはpipenvを使用してすべてをインストールしてください。pip用のrequirements.txtと、pipenv仮想環境用のPipfileがあります。pipを使用する場合は、システム上でPython 3.9用の適切なもの(例:pip3、pip3.9)を使用してください。
Pythonバージョンを指定してpipを呼び出すことで、適切なバージョンが使用されることを確認できます:
python3 -m pip install -r requirements.txt
仮想環境を使用するとさらに簡単です:
pipenv installpipenv shellヘッドレスブラウザでのSelenium使用には、Google Chromeがインストールされていることと、以下のURLから適切なChromewebdriverファイルをダウンロードする必要があります:https://chromedriver.chromium.org/downloads
webdriverをダウンロードして、このプロジェクトのルートに展開します。別の場所に配置することもできますが、設定を更新する必要があります(次のセクションを参照)。
次に、設定ファイルをセットアップする必要があります。このリポジトリに同梱されているcooper.configファイルは、GoPhishで使用するために予め設定されています(URLは{{.URL}}に変更されるように設定されています)。デフォルトの設定では、Chrome webdriverをディレクトリのルートに配置することも前提としています。
設定ファイルは次のようになります:
[Replacement URLs]
landing_page_url_replacement: {{.URL}}
landing_page_form_action: {{.URL}}
email_replacement_url: {{.URL}}
[Browser]
driver_path: ./chromedriver
user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Safari/537.36
必要に応じて変更を加えてください。使用する様々なフィッシングプラットフォーム、追加の攻撃サーバー、または代替のユーザーエージェント用に複数の設定ファイルを作成できます。別の設定ファイルを使用するには、-cまたは--config引数と共にファイルを指定します。指定がない場合は、デフォルトでcooper.configファイルが使用されます。
[Replacement URLs]セクションには、Cooperがリンクやフォームアクションを置き換える際に使用するすべてのURLが含まれています。
landing_page_url_replacementは、ランディングページに使用されるURLです。訪問者がランディングページにリダイレクトされるようにフィッシングサーバーのIPに設定するか、別の場所に送信するように設定することをお勧めします。
landing_page_form_actionは、フォームが送信されたときにフォームデータを送信する先のURLです。
email_replacement_urlは、メールに使用されるURLで、フィッシングサーバーのドメインまたはIPアドレスに設定する必要があります。
これらのURLが何も設定されていない場合、CooperはそれらのURLを置き換えません。これは、ランディングページが実際のリンクを引き続き指すようにしたい場合に最も実用的です。ただし、ターゲットのウェブページが直接リンクではなく /home.php のような相対リンクを使用している場合、ランディングページが壊れたリンクでいっぱいになる可能性があることに注意してください。
[Browser]セクションは、ウェブブラウジングに関連する設定のためのものです。このセクションでは、別のドライバーファイルや場所を使用する場合に、SeleniumとCooperがブラウザのwebdriverを指すように設定します。ウェブブラウジングに使用されるユーザーエージェントもここで定義されます。Cooperにはデフォルトのユーザーエージェントがあり、設定ファイルで上書きできます。
画像はテンプレートに埋め込む前にBase64エンコードできます。これにより、テンプレートがウェブサイトの利用可能性や画像の配置場所に依存しなくなります。ウェブサイトの場合、追加されるサイズは(おそらく)無視できますが、メールでこのオプションを使用すると問題になる可能性があります。Outlookなどの一部のメールクライアントはBase64画像をサポートしていません。ターゲットのメールクライアントに注意してください。
HTTPサーバーオプションは、127.0.0.1:PORTにアクセスしてCooperの出力を簡単に確認できるようにするためのものです。HTMLファイルを直接開くこともできますが、それほどきれいではありません。
imgタグは次のようになります:<img src="https://raw.githubusercontent.com/chrismaddalena/cooper/HEAD/static1.squarespace.com/static/52ebedcae4b0ad4aad060b4a/t/533b687ae4b01d79d0ae12a3/1437187699809/?format=1500w"\>このプロジェクトに協力してくれたNinjasl0thとHagbardに特に感謝します!