
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を入力します。