🔥

フィッシングサイトを探す方法

2023/02/22に公開
2

はじめに

インターネット上での不正なサイトに対する被害は年々増加しています。
特にフィッシングサイトは、誤って入力してしまうと個人情報の漏洩や財産の損失などの被害があります。
このようなフィッシングサイトを探すためには、便利なツールがいくつか存在します。
この記事では、フィッシングサイトを探す方法としてdnstwistを紹介します。

手法

フィッシングサイトは、正規のサイトと似た名前やアドレスを使って作られているものが多いです。
このような似た名前やアドレスを探すためには、正規のドメイン名を入力して、似た名前やアドレスを生成することができるツールが便利です。

Dnstwistの動作

dnstwistは、正規のドメイン名を入力して、似た名前やアドレスを生成することができるツールです。フィッシングサイトを探すためには非常に便利です。

dnstwistは、GitHubから無料でダウンロードすることができます。
https://github.com/elceef/dnstwist

使い方

インストール

gitから直接インストールする場合は

$ git clone https://github.com/elceef/dnstwist.git
$ cd dnstwist
$ pip install .

Mac OSの場合は以下のように簡単にインストールすることが出来ます。

$ brew install dnstwist

Dockerイメージも配布されているので、以下のようにホストマシンにインストールせずに利用することも出来ます。

$ docker pull elceef/dnstwist
$ docker run -it elceef/dnstwist

実行方法

IPアドレスが登録されているドメイン名のみを表示します。

$ dnstwist -r domain.name

独自の辞書ファイルを指定する場合

$ dnstwist --dictionary dictionaries/english.dict domain.name

探索アルゴリズムの指定

探索回数を最適化するために必要に応じてアルゴリズムを指定します。

$ dnstwist --fuzzers homoglyph,hyphenation domain.name

アルゴリズム一覧

起点となるfqdnがwww.example.comの場合

  • Bitsquatting
    • ハードウェア エラーによって解決するドメイン名が 1 ビット変化します
  • Homoglyph
    • ドメイン名の文字を似た文字に置き換えます
    • (例: exαmple.com)
  • Hyphenation
    • サブドメインのハイフンのドットを変更します
    • (例: www-example.com)
  • Insertion
    • ドメイン名に文字を挿入します
    • (例: exsample.com)
  • Omission
    • ドメイン名から文字の1つを削除します
    • (例: exmple.com)
  • Repetition
    • ドメイン名の文字の 1 つを繰り返します
    • (例: exampple.com)
  • Replacement
    • Homoglyphに似ていますが、ステルス性は低くなります。
    • ドメイン名の文字の 1 つをキーボードの元の文字に近い文字に置き換えます。
    • (e.g, exampke.com)
  • Subdomained
    • ドメイン名にドットを入れる
    • (例: ex.ample.com)
  • Transposition
    • ドメイン名の 2 文字を入れ替えます
    • (例: exmaple.com)
  • vowel-swap
    • ドメイン名の母音を置き換える
    • (例: exumple.com)

さいごに

dnstwistのようなスキャンが簡単に実行できるフィッシング対策ツールを公開しています。
アカウント登録不要なので触ってもらえると嬉しいです。

この記事を読んで、少しでもお役に立てたなら幸いです。何か質問やご意見がありましたら、お気軽にご連絡ください。

GitHubで編集を提案

Discussion

ぷらむらいす(PlumRice)ぷらむらいす(PlumRice)

分かりやすい記事ありがとうございます!
この手のフィッシングサイトを見つける研究みたことがありますが、難しいですよね。
このツールだと、元ドメインからちょっと弄るという手法ですが、経験的に、ドメインがかなり長いものもあるので、簡単には言い切れないのかなぁ。と思ったりしますね…。

例えば、tatsuiさんの出している。

これがいい例で、割と長めで書いてくるものもあるので、なかなか…という感が、大変ですよねぇ…

本当、この点の話って難しいですよね。

tatsuitatsui

コメントありがとうございます。
確かに長いドメインについては、スキャンでは不可能なのでurlscan pro等を使ってコンテンツの中身まで検査すれば見つけられるケースがあります。
https://urlscan.io/pricing/urlscanpro/
もちろん誰かがurlscanにurlをアップロードしてくれることが前提になりますが。

ちなみにドメインスキャンはフィッシングサイトだけでなく、自社の開発中のドメインを検出できるので、攻撃者の標的になるまえに検出して対策するという使い方もあります。