urlcrazy は、正規サイトに似せた偽ドメインを調査するための OSINT(公開情報を利用した情報収集)ツールです。
フィッシングサイトやタイポスクワッティングの調査に利用できます。
タイポスクワッティング(Typosquatting):URLの打ち間違い(タイプ間違い)を悪用して紛らわしいURLで待ち構えて偽サイトに誘導する手法です。URLハイジャッキングとも呼ばれます。
基本機能
まずはターゲットURLによく似た紛らわしいURLを作成します。
そして作成した紛らわしいURLが実在するかどうかを調べます。
ヘルプ
kali ー 01-Reconnaissance ー Web Scanning ー urlcrazy
でヘルプが開きます。


ヘルプ画面の中段にはどのような偽URL(紛らわしいURL)を作成出来るかが記載されています。
| 変形手法 | 意味 | 例 |
|---|---|---|
| Character omission | 文字の省略 | google.com → gogle.com |
| Character repeat | 文字の重複 | google.com → gooogle.com |
| Adjacent character swap | 隣接する文字の入れ替え | google.com → goolge.comAdjacent |
| Adjacent character replacement | 隣接キーなどを利用した文字の置換 | キーボード上で近い文字への置換 |
| Double character replacement | 同じ文字の重複などに関連する変形 | 実際の候補は生成結果で確認 |
| Adjacent character insertion | 文字の間への追加 | google.com → googgle.comMissing |
| Missing dot | ドットの省略 | www.google.com → wwwgoogle.com |
| Strip dashes | ハイフンの削除 | my-site.com → mysite.comInsert |
| Insert dash | ハイフンの挿入 | google.com → goo-gle.com |
| Singular or pluralise | 単数形・複数形の変形 | 単語末尾への s の追加など |
| Common misspellings | よくあるスペルミス | 正規の綴りに似た誤記 |
| Vowel swaps | 母音の入れ替え | a と eなどの置換 |
| Homophones | 同音異義語などを利用した変形 | 発音が似ている単語への置換 |
| Bit flipping | 文字のビットを変えた変形 | 文字コード上のビット変化 |
| Homoglyphs | 見た目が似た文字への置換 | ラテン文字と類似する別文字の利用 |
| Wrong top level domain | TLDの変更 | .com → .net |
| Wrong second level domain | ドメインの第2レベル部分の変形 | 登録可能なドメイン名の変更 |
オプション
ヘルプに記載されたオプションです。
| オプション | 機能 | 使用例 |
|---|---|---|
-k 配列 | キーボード配列を指定 [ qwerty (default), azerty, qwertz, dvorak] | urlcrazy -k qwerty example.com |
-p | Googleを利用してドメインの人気度を調査 | urlcrazy -p example.com |
–r | DNS名前解決を行わない(DNS問合せを省略) *ネットワークにかかる負荷が減少するので、このオプションは推奨されます | urlcrazy -r example.com |
-i | 無効なドメイン名も表示 | urlcrazy -i example.com |
-f 出力形式 | 出力形式を指定 [ human readable (), JSON, CSV ] | urlcrazy -f CSV example.com |
-o ファイル名 | 結果をファイルに保存 | urlcrazy -o result.txt example.com |
-n | 色付き表示を無効化 | urlcrazy -n example.com |
-d | デバッグ情報を表示 | urlcrazy -d example.com |
-h | ヘルプを表示 | urlcrazy -h |
-v | バージョンを表示 | urlcrazy -v |
実行
まずは、架空のURL候補を作成します。
“-r” オプションを付加することにより、実在するかどうかに関係なく紛らわしいURLを生成してみます。
urlcrazy -r ターゲットurl
ここでは例として “example.com” をターゲットとしています。

結果解釈
9行目に2065の候補を生成したとあります。
この下に2065個の生成された紛らわしいURLが表示されます。
この2065個のURLは、ここで勝手に作っただけで、実在するかどうかはこの時点では不明です。
実在するかどうかを調べるには、 “-r” オプションを外してDNS問合せを行い、IPアドレスの実在を確認します。
“-r” オプションを外して実行すると、2分ほどで結果が出ました。

IPアドレスなどのDNSサーバ情報を調べるだけで、実際にそのIPに接続しに行ってるわけではないようです。
まとめ
urlcrazyはターゲットのURLと紛らわしいURLを自動生成するツールです。
パスワードなどの候補単語を自動的に集めてきて辞書を作成するツールがありますが(Cewl, Crunch)それに近いです。
でも実際にDNS名前解決まで行う所が違います。
参考:ファイルディスクリプタの上限数について
ヘルプや実行結果の最上段にファイルディスプリプタの数が不足する可能性についての警告があります。

ファイルディスクリプタ
ある1つのプロセスが開くファイル/ソケットへの接続経路に付与される通し番号です。
デフォルトでは0番は標準入力、1番は標準出力、2番は標準エラー出力に最初から割り当てられています(変更も可能)
それ以後の番号は別なファイル/ソケットにアクセスする度に順次割り振られていきます。
そしてその数の上限はデフォルトでは1024です。
デフォルトの上限数の確認方法
ulimit -a

デフォルトではファイルディスクリプタは1024に設定されていますが(8行目)、プロセスによっては数多くのDNSに問い合わせする関係で、それでは足りない可能性があります。
"ulimit” は、ユーザーやプロセスが使用できるシステムリソース(同時オープンファイル数やメモリ、CPUなど)の上限を確認・設定するためのコマンドです。
暴走したプロセスによるリソース枯渇を防ぐ役割があります。
上限数の変更
以下の方法でファイルディスクリプタの上限数を変更することができます。
ulimit -n 数字
下の例では10000に変更しています。

この変更操作はそのシェル(ターミナルウインドウ)に限定されます。
(別のシェルではデフォルトの1024のままです)


コメント