evilginx2を使用し中間者攻撃(Man In The Middle Attack)を検証する

スポンサーリンク

evilginx2を使用し中間者攻撃(Man In The Middle Attack)を検証してみます。

evilginx2(https://github.com/kgretzky/evilginx2)は、セッションCookieとともにログイン資格情報をフィッシングする(不正利用する)ために使用される中間者攻撃(Man In The Middle Attack)フレームワークです。これにより、2要素認証保護を迂回(バイパス)することができるため、不正アクセスなどが可能となったりします。

evilginx2は、GOのバージョン1.14.0以上が必要になりますので、事前にインストール(https://golang.org/doc/install)しておく必要があります。

なお、サイバーセキュリティ対策や情報セキュリティ教育が目的でツールを利用しますので、悪用・違法行為が目的はございません。ツールを利用することで発生したトラブルや損失、損害(ウイルス感染など)に対して、一切責任を負いません。

■PC環境

Windows 10 Pro

・お名前.com(教育のためのフィッシングサイトドメイン取得)

クラウドホスティングサービス:DigitalOcean(https://vpshikaku.com/digital-ocean%E3%81%AE%E8%A8%AD%E5%AE%9A-%E4%BD%BF%E3%81%84%E6%96%B9/)(Ubuntu 20.04(LTS) x64を使用)

※DigitalOceanは、上記のURL先で紹介している紹介リンク経由で登録すると、60日間有効な100ドル分の利用権利(無料クーポン)がもらえます。

※なお、DigitalOceanは本来は有料サービスとなります。

■DigitalOceanに登録する

こちらのサイト(https://vpshikaku.com/digital-ocean%E3%81%AE%E8%A8%AD%E5%AE%9A-%E4%BD%BF%E3%81%84%E6%96%B9/)で紹介している「紹介リンク」経由し登録すると、60日間有効な100ドル分の利用権利(無料クーポン)がもらえますので、このリンクを経由してDigitalOceanに登録します。

DigitalOceanに登録の際には、クレジットカードの入力か、PayPalの入力が必要となります。

インスタンスの作成

DigitalOceanに登録すると、管理画面の上部に「Create」をクリックし、「Droplets」をクリックします。

クリックすると「Create Droplets(ドロップレットの作成)」のページが表示されますので、今回は「Ubuntu 20.04(LTS) x64」を選択し、「Choose a plan」は「Basic」に選択。「Choose a datacenter region(データセンターの地域選択)」は、「Singapore(シンガポール)」に選択します。

「Select additional options」は、全てのオプションにチェックを入れます。その後「Authentication」は「SSH keys」を選択し「New SSH key」をクリックし、新しくSSH keysを設定します。Windows10のSSH設定は、Windows PowerShellコマンドプロンプトから「ssh-keygen」で設定することができます。Windows10に標準でOpenSSHがインストールされていますので、これを利用します。

設定後、「Create Droplets(ドロップレットの作成)」の一番下にある「Create Droplet」ボタンをクリックすると、インスタンスの作成が開始され、しばらくすると完了となります。

完了すると、インスタンスIPアドレスが発行されます。これがevilginx2を使用する場合は大事になります。

SSH接続を行う

#PS C:\Users\user> ssh -i ~/.ssh/xxx_key root@(作成したインスタンスipアドレス

完了後、Windows PowerShellコマンドプロンプトを起動し、sshキー(秘密鍵・公開鍵)を使用し、作成したインスタンスSSH接続を試みます。今回はPowerShellを使用しています。

■evilginx2のインストール

#apt update
#apt install git

#apt install git make

#apt install golang-go

#cd /opt

接続後、引き続きPowerShellを使用し上記のコマンドを入力し、Enterキーを押します。aptのアップデートや、Git,Goのインストールを行います。

#git clone https://github.com/kgretzky/evilginx2.git

その後に、上記のコマンドを入力し、Enterキーを押します。リポジトリをクローンします。

Cloning into 'evilginx2' ... remote: Enumerating objects: 2679, done. remote: Counting objects: 100% (5/5), done. remote: Compressing objects: 100% (5/5), done. remote: Total 2679 (delta 0), reused i (delta o), pack-reused 2674 Receiving objects: 100% (2679/2679), 3.71 MiB 2.00 MiB/s, done. Resolving deltas: 100% (1328/1328), done.
#cd evilginx2

クローン後、上記のコマンドを入力し、Enterキーを押します。「evilginx2」ディレクトリに移動します。

#make

移動後、上記のコマンドを入力し、Enterキーを押します。

#make install

その後に、上記のコマンドを入力し、Enterキーを押します。これでインストールと起動の準備は完了となります。

■evilginx2の起動

#evilginx

起動するために、上記のコマンドを入力し、Enterキーを押します。

Enterキーを押すと、evilginx2が起動します。今回はバージョン「2.4.2」を使用します。

:config domain xxx.com(取得したドメイン
:config ip xxx.xxx.xxx.xxx(作成したインスタンスipアドレス

起動後、上記のコマンドを入力し、Enterキーを押します。Enterキーを押した後に、教育のため取得しておいた中間者攻撃(Man In The Middle Attack)用のドメインと、DigitalOceanで作成したインスタンスipアドレスを入力し、設定を行います。

設定後、この時にDigitalOceanの「Networking」の「domain」で「Add a domain」の項目がありますので、確認します。確認後「Enter domain」を表示されている欄に、今回はお名前.comで取得したドメインを入力し、「作成したインスタンス」を選択し、「Add Domain」でドメインを追加します。

追加後、追加したドメインの詳細ページで「Create new record」をクリックし、DNSレコードを追加します。

static.facebook.xxx.com(取得したドメインfacebook.xxx.com(取得したドメイン) m.facebook.xxx.com(取得したドメイン) www.facebook.xxx.com(取得したドメイン

追加する場合は、上記のようなサブドメインを追加します。追加する際は、「作成したインスタンスipアドレス)」を選択し、「Create Record」ボタンをクリックし、追加します。

追加後、お名前.comの「DNS設定/転送設定」から取得したドメインを選択し「次へ」ボタンをクリックし、「DNSレコード設定を利用する」の「設定する」ボタンで、「DNSレコード設定」画面を表示させます。表示後、上記のようにサブドメインの設定などを行います。

※「DNSレコード設定」の反映には時間がかかります。

acme: Error -> One or more domains had a problema [m.facebook.xxxx.xxx] acme: error: 400 :: urn:ietf:params: acme: error: dns :: DNS problem: NXDOMAIN looking up for m.facebook.xxxx.xxx - check that a DNS record exists for this domain, url: xxxx.xxx] acme: error: 400 :: urn:ietf:params: acme: error: dns :: DNS problem: N/DOMAIN up A for static.facebook.whitehathacker.xyz - check that a DNS record exists for this domain, url: [www.facebook.xxxx.xxx] acme: error: 400 :: urn:ietf:params: acme: error:dns :: DNS problem: NXDOMAIN looking up A for www.facebook.xxxx.xxx - check that a DNS record exists for this domain, url:

なお、この設定を行わないと、上記のエラーが発生します。

設定後、PowerShellの画面(evilginx2起動中)に戻ります。

:phishlets hostname facebook facebook.xxxx.xxx

フィッシングするWebサイトの設定を行うため、上記のコマンドを入力し、Enterキーを押します。今回は「facebook.xxx.com(取得したドメイン)」を設定しましたので、偽のfacebookを利用したフィッシングの検証を行います。

:phishlets enable facebook

Enterキーを押した後に、上記のコマンドを入力し、Enterキーを押します。フィッシングするWebサイトを有効にします。

setting up certificates for phishlet "facebook'... [02:46:51] [war] failed to load certificate files for phishlet 'facebook', domain 'facebook. whitehathacker.xyz': open / oot/.evilginx/crt/facebook.xxx.xxxx/facebook.crt: no such file or directory [02:46:51] [inf] requesting SSL/TLS certificates from Letsencrypt... [02:47:16) [+++] successfully set up SSL/TLS certificates for domains www.facebook. xxx.xxxx m.facebook, xxx.xxxx static.facebook, xxx.xxxx]

Enterキーを押すと、「successfully set up SSL/TLS certificates for domains」と表示されれば、セットアップが完了となります。

:lures create facebook

完了後、フィッシングする行為を相手に送信するリンクを取得するため、上記のコマンドを入力し、Enterキーを押します。

:lures edit 0(id) redirect_url https://www.facebook.com/

さらに、上記のコマンドを入力し、Enterキーを押します。ユーザーを元のfacebookページにリダイレクトするように、リダイレクトURLを指定します。

:lures get-url 0

指定後、上記のコマンドを入力し、Enterキーを押します。送信するリンクを取得します。

Enterキーを押すと、URLが発行されます。発行されたURLをWebブラウザで開いてみます。今回はGooglechromeを使用します。

WebブラウザでURLをアドレスバーに貼り付けてアクセスすると、偽のFacebookログインページが表示されました。ここでポイントなのが、URLが今回中間者攻撃(Man In The Middle Attack)用に取得したドメインであるところです。

パスワードが不正使用される可能性があります 偽のサイトでパスワードを入力しました。Chrome を使って不正利用への対策がで きます。パスワードを変更し、Google にアカウントの状況を通知するには、[アカウン トを保護] をクリックしてください。

表示された後にGoogleChromeでは、上記のポップアップが表示されました。これはGoogleChromeの不正対策が実施されている証で、今回中間者攻撃(Man In The Middle Attack)用のWebサイトはすぐに偽のサイトだと判別されます。なかなか優秀です。

なお、今回はサイバーセキュリティ対策や情報セキュリティ教育が目的ですので、ポップアップの「無視する」ボタンをクリックします。

クリック後、偽のFacebookログインページに、実際にメールアドレスとパスワードを入力し、「ログイン」ボタンをクリックしてみます。

ログインすると、ログインの承認が必要ですと表示され、オプションで今回は「コードをメールアドレスに送信」を選択し、メールアドレスを入力し、承認コードの送信を行いました。送信後、メールアドレスに本当にメールが届き、承認コードが表示され、承認コードを入力すると、Facebookにログインできました。ここでポイントは、ログインした後のURLも、今回のために取得した中間者攻撃(Man In The Middle Attack)用のドメインが表示されています。

ログイン後、PowerShellの画面(evilginx2起動中)に戻ります。

:sessions
:sessions [id]

戻った後に、上記のコマンドを入力し、Enterキーを押します。

Enterキーを押すと、先ほど偽のFacebookにログインした情報(セッションCookie)が記録されていました。

今回は、偽のFacebookを利用した中間者攻撃(Man In The Middle Attack)の検証を行いましたが、evilginx2はInstagramTwitterなどのフィッシングするWebサイトを作れます。このようなWebサイトが作れるということは、サイバー攻撃者は、InstagramTwitterなどの有名サイトを利用しフィッシングを行おうとしていますので、「facebook.xxx.com」や「faceboook.com」などの怪しいサイトは開かないようにした方が良いということが言えます。

追記:後日、Facebookをログインすると、下記のメッセージが表示されました。

「○○○○さん、アカウントがロックされました」 「あなたのアカウントに不審なアクティビティがありました。誰かが無断でアカウントを使用した可能性があります。」

利用していたFacebookアカウントがロックされてしまいました。これもFacebookのセキュリティ対策であり、正常な反応です。ロックされてしまったため、再度パスワードの設定などを行い、ロックを解除しました。