
evilginx3 + gophish

これはリポジトリの公開・無料バージョンです。最新バージョンではありません。私は意図的に、GitHub Sponsors を通じて私をスポンサーしてくれる方のために、この公開バージョンを最新バージョンより遅らせています。つまり、このバージョンにはバグ修正や機能が不足している可能性があり、ここでバグ修正、機能追加、サポートを期待しないでください。最新バージョンにアクセスするには、スポンサーになる をご検討ください。
始める前に、私はKuba Gretzky氏と彼の作品を決して貶めるつもりはないことを明言しておきます。彼がevilginx3を公開してくれたことに個人的に感謝します。実際、彼の作品がなければこの作品は存在しません。また、素晴らしいGoPhishツールキットを開発・保守してくれているJordan Wright氏にも感謝しなければなりません。Kuba氏のGophishフォークも、彼自身の統合を作成した後、このプロジェクトの一部のインスピレーションとして使用されました。
GoPhish と evilginx3 の基本的な使い方を理解している必要があります。
私はこのソフトウェアの不正使用または不正な使用について一切の責任を負いません。このソフトウェアは、許可された侵入テストまたはレッドチームエンゲージメントでのみ使用されるものであり、操作者はソーシャルエンジニアリングを実施する明示的な書面による許可を得ているものとします。
ペネトレーションテスターまたはレッドチームの一員として、evilginx3が二要素認証/多要素認証をバイパス可能なプロキシ中間者攻撃フレームワークであることを聞いたことがあるかもしれません。これは少なくとも魅力的ですが、ソーシャルエンジニアリングエンゲージメントで使用しようとすると、いくつかの痛点があります。
トラッキングの欠如 - evilginx3は被害者ごとの一意のトラッキング統計(例:メール開封、リンククリックなど)を提供しません。これは、ソーシャルエンジニアリングエンゲージメントを契約する際にこれらの統計を必要とする/支払うクライアントにとって問題です。
完全なソーシャルエンジニアリングツールキットではない - evilginx3はプロキシ中間者攻撃機能のみを提供し、メール/SMSを介したソーシャルエンジニアリングキャンペーンに必要な全機能を提供するわけではありません。例えば、ターゲットにメールを送信したり、その機能を提供したりしません。
GUIがない - これ以上説明する必要はありますか?私たちは皆GUIを愛しており、ソーシャルエンジニアリングキャンペーンのデータを視覚的に表現することは非常に貴重です。オペレーターは、データの視覚的表現を表示することで、ソーシャルエンジニアリングキャンペーンの成功を徹底的に理解することができます。
このセットアップでは、GoPhishを使用してメールを送信し、evilginx3キャンペーン統計のダッシュボードを提供しますが、ランディングページには使用されません。GoPhishから送信されるフィッシングリンクはevilginx3のルアーパスを指し、evilginx3はランディングページに使用されます。これにより、貴重な統計を失うことなく、evilginx3を使用して2FA/MFAをバイパスする機能を維持できます。私が開発したローカルのWebSocket/HTTPサーバーを使ったリアルタイムのキャンペーンイベント通知が提供され、evilginx3からのトークン/クッキーを含む完全に使用可能なJSON文字列がGoPhish GUI(およびフィード)に直接表示されます。


evilginx3は外部からアクセス可能なアドレスでポート443(またはevilginx3設定で選択したポート)でリスンします。GoPhishはローカルでポート8080と3333でリスンします(ポート8080のフィッシングサーバーは使用されません)。Cloudflare Turnstileサーバーはローカルでポート80でリスンします。必要な設定を自動化するためにsetup.shが提供されています。このスクリプトを実行し、正しい値を入力すれば、すぐに使い始められるはずです。以下がセットアップのヘルプです。
Usage:
./setup <root domain> <subdomain(s)> <root domain bool> <feed bool> <rid replacement>
- root domain - キャンペーンに使用するルートドメイン
- subdomains - スペース区切りで指定するevilginx3サブドメインのリスト(1つのみの場合は1つ)
- root domain bool - ルートドメインをevilginx3にプロキシする場合はtrue、それ以外はfalse
- feed bool - ライブフィードを使用する予定がある場合はtrue、それ以外はfalse
- rid replacement - フィッシングURL内のgophishデフォルトの"rid"をこの値で置き換える
Example:
./setup.sh example.com "accounts myaccount" false true user_id
Cloudflare Turnstile統合は、Apache2を使用したリダイレクトルールとIPブラックリストに取って代わりました。Apache2のアプローチは、事前定義されたリダイレクトルールとIPブラックリストに依存していました。最終的にインフラを検出する特定のユーザーエージェント、ホスト、またはIPアドレスを見逃す可能性があります。これは通常、フィッシングインフラをスキャンするボットや自動ソフトウェアによって行われます。Cloudflare Turnstile技術は、現時点でボットに対する最良の防御の一つであり、実際のユーザーがサイトにアクセスしていることを確認します。
Turnstileタブを選択するevilginx3/templates/forbidden.html と evilginx3/templates/turnstile.html ファイルを自分の変更で編集するevilginx3を起動する際に、公開鍵と秘密鍵を:で区切ってturnstileフラグに含める。例:./evilginx3 -feed -g ../gophish/gophish.db -turnstile <PUBLIC_KEY>:<PRIVATE_KEY>
ブログ記事こちら。
もしCloudflare Turnstile機能用の静的HTMLページを含めると、誰のフィッシングインフラも同じページになり、静的なHTMLコードの検出につながります。そこでGo HTMLテンプレートの登場です。ガイドラインとしてevilginx3/templates/turnstile.htmlにスターターテンプレートを含めました。これは変更する必要があります。テンプレートコードの設定に関するルールは以下の通りです。これらのルールに従わないと、Cloudflare Turnstile機能が壊れる可能性があります。
{{.FormActionURL}}、{{.ErrorMessage}}、{{.TurnstilePublicKey}}テンプレート変数を含める必要があります。Turnstileチャレンジを送信するためのフォームアクションURLは{{.FormActionURL}}テンプレート変数でなければなりません。cf-turnstile divクラスのdata-sitekey値は{{.TurnstilePublicKey}}テンプレート変数でなければなりません。evilginx3/templates/turnstile.htmlに保存する必要があります。buttonと等しくなければなりません。既にsetup.shを一度実行し、プロジェクト全体でデフォルトのRId値を置き換えた場合に備えて、replace_rid.shがRId値を再度置き換えるために作成されました。
Usage:
./replace_rid <previous rid> <new rid>
- previous rid - 以前に置き換えられたrid値
- new rid - 以前のridを置き換える新しいrid値
Example:
./replace_rid.sh user_id client_id
setup.shを実行した後の次の手順は以下の通りです。
GoPhishを起動し、メールテンプレート、メール送信プロファイル、グループを設定するevilginx3を起動し、フィッシュレットとルアーを設定する(-gフラグでGoPhish sqlite3データベースのフルパスを指定する必要があります)GoPhishからキャンペーンを開始し、ランディングURLをevilginx3フィッシュレットのルアーパスにするQR Code Generator機能を使用すると、QRコードを生成してQRコードソーシャルエンジニアリングキャンペーンを展開できます。使用手順は以下の通りです。
{{.QR}}テンプレート変数を含めることができるようになりました。


この機能は現時点ではメールキャンペーンとHTMLメールテンプレートのみでサポートされています
ブログ記事こちら。
GoPhish全体の再構築が行われ、Twilioを使用したSMSキャンペーンサポートが提供されました。新しいevilgophishダッシュボードは以下のようになります。

setup.shを実行した後の次の手順は以下の通りです。
SMSメッセージテンプレートを設定する。SMSメッセージテンプレートを作成する際はTextのみを使用し、SMSメッセージ内にトラッキングリンクを含めないでください。Envelope SenderとSubjectは以下のように空白のままにします。
SMS Sending Profileを設定する。Twilioの電話番号、Account SID、Auth Tokenを入力します。
CSVテンプレートの値は同じままなので、CSVの列名は同じにし、ターゲットの電話番号をEmail列に配置します。Twilioは以下の電話番号形式を受け入れるため、これらの3つのいずれかである必要があります。
evilginx3を起動し、フィッシュレットとルアーを設定する(-gフラグでGoPhish sqlite3データベースのフルパスを指定する必要があります)GoPhishからキャンペーンを開始し、ランディングURLをevilginx3フィッシュレットのルアーパスにするブログ記事こちら。
リアルタイムのキャンペーンイベント通知は、ローカルのWebSocket/HTTPサーバーとライブフィードアプリによって処理されます。セットアップ手順は以下の通りです。
setup.shを実行する際に、feed boolにtrueを選択する
evilfeedディレクトリにcdし、./evilfeedでアプリを起動する
evilginx3を起動する際に、-feedフラグを指定してフィードを有効にする。例:
./evilginx3 -feed -g /opt/evilgophish/gophish/gophish.db
http://localhost:1337/にアクセスします。フィードダッシュボードは以下のようになります。
重要な注意点
JavaScriptを使用してイベントのWebSocketにフックしており、ページを更新する必要はありません。ページを更新すると、それまでのすべてのイベントが失われます。私は自分の裁量でこのリポジトリにフィッシュレットを追加します。このリポジトリの一部として私がフィッシュレットを作成することを期待しないでください。ご自身で作成することを想定しています。フィッシュレットに関する問題をこのリポジトリで開かないでください。
2023年5月10日にKuba Gretzky氏はevilginx 2.4.0をバージョン3.0.0に更新しました。ツールの変更に関する詳細なブログ記事はこちらです。evilginx3+mastery。最も注目すべき点は、フィッシュレットファイル形式の変更により、バージョン3.0.0より前のフィッシュレットはおそらく動作しなくなり、書き直す必要があることです。書き直す手間はかかるかもしれませんが、新しいフィッシュレットファイル形式には追加の利点があります。バージョン3.0.0のフィッシュレット形式のドキュメントはこちらにあります。Phishlet Format v3.0.0。レガシー形式のフィッシュレットは、このリポジトリのevilginx3/legacy_phishletsフォルダに引き続き保管されます。バージョン3.0.0互換のはに保存されます。すべてのレガシーがまだ形式に変換されているわけではありません。時間が許す限り、引き続き更新していきます。
インストールスクリプトはUbuntu Focal/Jammyでテストされており、ソースから最新のGoをインストールします。バイナリは、Go環境やインストール状況によってはビルドに失敗する可能性があります(つまり、このプロジェクトで組み合わせられている元のバージョンをインストールし、その後このバージョンをインストールしようとする場合など)。また、evilginx3がDNSを引き継げるようにDNSを変更します。その影響を理解し、確認する必要があります。新しい環境を推奨し、他のオペレーティングシステムではテストされていません。
キャンペーンを開始する前にトラッキングをテストすることは珍しくなく、そうすることをお勧めしますが、警告を残しておきます。evilginx3は、新しい被害者のブラウザごとにクッキーを作成し、セッションを確立します。同じブラウザ内で複数のキャンペーンと複数のフィッシングリンクをテストし続けると、新しいセッションの開始時にリクエストからRId値が解析され設定されるため、トラッキングプロセスが混乱します。これを行う場合、被害者は自分のリンク以外のフィッシングリンクにアクセスすることは決してなく、実際のキャンペーン中にこれが起こることは決してないため、実際の被害者をシミュレートしているとは言えません。これは、ツールの意図された使用方法に従っていないため、この件で問題を開かないように警告するものです。新しい被害者をシミュレートしたい場合は、新しいブラウザまたはシークレットモードのタブを使用してトラッキングプロセスをテストできます。
GoPhishは実際のフィッシングページでは決して使用されず、メールヘッダーも削除されているため、IOCを心配する必要はありません。
rid文字列は、オペレーターがsetup.shで選択します。SMSキャンペーンサポートが追加されました。evilginx3セッション/トークン用のCaptured Sessionキャンペーンイベントが追加されました。初期リリース以降の変更については、CHANGELOG.mdファイルを参照してください。
このリポジトリの公開バージョンでは、私が問題に応答することを期待しないでください。あなたは私をスポンサーしておらず、プロジェクトの開発に資金を提供していないため、サポートを期待するべきではありません。サポートを強化するには、スポンサーになる をご検討ください。
evilginx 3.x.x形式への変換このプロジェクトが時間とともに改善され成長することを望んでいます。改善案、新しいリダイレクトルール、ブラックリストに追加する新しいIPアドレス/ブロック、フィッシュレット、または提案があれば、プルリクエストを開いてください。
フィッシュレットevilginx3/phishletsフィッシュレット3.x.x