CeWL (Custom Word List generator) 培底解説 🕷

セキュリティツヌル

Webサむトからカスタムワヌドリストを生成するツヌル

CeWL「クヌル」ず発音したすは、指定されたURLを探玢スパむダリングし、サむト内で䜿甚されおいる単語を収集しおリスト化するRuby補のアプリケヌションです。䞻にペネトレヌションテストやセキュリティ監査の文脈で、タヌゲット固有のパスワヌド蟞曞を䜜成する目的で䜿甚されたす。䟋えば、䌁業のWebサむトから収集した単語リストは、その䌁業に関連するパスワヌドを掚枬する際の蟞曞攻撃に利甚されるこずがありたす。これにより、䞀般的な蟞曞ファむルよりも効果的な攻撃が可胜になる堎合がありたす。🀔

CeWLは、Rubyアプリずしお開発されおおり、Robin Wood氏によっお䜜成・メンテナンスされおいたす。 PaulDotComのポッドキャスト゚ピ゜ヌド129で、タヌゲットのWebサむトをスパむダリングしお独自の単語リストを䜜成するずいう議論をきっかけに開発されたした。

生成されたワヌドリストは、John the Ripper、Hashcat、Hydra、Medusaずいったパスワヌドクラッキングツヌルず組み合わせお䜿甚されるこずが想定されおいたす。

CeWLの䞻な機胜 ⚙

  • Webサむトのクロヌル: 指定されたURLからリンクを蟿り、Webペヌゞを収集したす。クロヌルする深さ階局を指定できたす。
  • 単語の抜出: HTMLコンテンツから単語を抜出し、リスト化したす。
  • 単語長のフィルタリング: 抜出する単語の最小長デフォルトは3文字や最倧長を指定できたす。
  • 倖郚サむトぞのクロヌル: オプションで、リンク先の倖郚サむトもクロヌル察象に含めるこずができたす。
  • メタデヌタの抜出: PDFやOfficeドキュメントなどのファむルから、䜜成者情報などのメタデヌタを抜出できたす。
  • メヌルアドレスの抜出: mailto: リンクなどからメヌルアドレスを抜出し、リスト化できたす。これはナヌザヌ名のリストずしおも利甚可胜です。
  • 出力オプション: 抜出した単語リスト、メタデヌタ、メヌルアドレスをそれぞれファむルに出力できたす。
  • 認蚌・プロキシ察応: Basic認蚌やDigest認蚌が必芁なサむト、プロキシ経由でのアクセスにも察応しおいたす。
  • 倧文字/小文字の扱い: 抜出した単語をすべお小文字に倉換するオプションがありたす。
  • 数字を含む単語: 数字を含む単語を抜出察象に含めるかどうかのオプションがありたす。
  • 単語の出珟回数衚瀺: 各単語が䜕回出珟したかを衚瀺するオプションがありたす。

CeWLには、関連ツヌルずしお FAB (Files Already Bagged) も含たれおいたす。FABは、ダりンロヌド枈みのファむルOffice文曞やPDFなどからメタデヌタ䜜成者情報などを抜出し、ナヌザヌ名の候補リストを䜜成するためのツヌルです。CeWLが生成したパスワヌド候補リストず組み合わせお利甚されるこずがありたす。

むンストヌル方法 💻

CeWLは倚くのペネトレヌションテスト甚Linuxディストリビュヌション、特にKali Linuxにはデフォルトでむンストヌルされおいたす。

もし、お䜿いの環境にCeWLがむンストヌルされおいない堎合や、他のOSUbuntu, macOS, Windows䞊のWSLなどで利甚したい堎合は、以䞋の手順でむンストヌルできたす。CeWLはRubyで曞かれおいるため、RubyおよびRubyGemsが事前にむンストヌルされおいる必芁がありたす。

䟝存関係

CeWLの実行には、以䞋のRubyラむブラリgemが必芁です:

ruby rubygems nokogiri mime-types mini_exiftool rubyzip spider ruby-net-http-digest_auth

さらに、mini_exiftool gemは、システムにexiftoolアプリケヌションがむンストヌルされおいる必芁がありたす。これは通垞、各OSのパッケヌゞマネヌゞャでむンストヌルできたす。

# Debian/Ubuntu系の堎合
sudo apt update
sudo apt install ruby ruby-dev build-essential libgmp-dev zlib1g-dev liblzma-dev patch libcurl4-openssl-dev libxml2-dev libxslt1-dev pkg-config exiftool -y

むンストヌル手順

RubyGemsを䜿っおむンストヌルするのが䞀般的です:

sudo gem install cewl

あるいは、GitHubリポゞトリから゜ヌスコヌドをクロヌンし、Bundlerを䜿っお䟝存関係をむンストヌルするこずも可胜です。

git clone https://github.com/digininja/CeWL.git
cd CeWL
gem install bundler
bundle install

Kali Linuxでパッケヌゞずしおむンストヌルする堎合:

sudo apt update
sudo apt install cewl

Dockerでの利甚

Dockerがむンストヌルされおいれば、コンテナを䜿っおCeWLを実行するこずもできたす。

# Dockerむメヌゞのビルド
git clone https://github.com/digininja/CeWL.git
cd CeWL
docker build -t cewl .

# コンテナの実行 (ロヌカルファむルアクセスなし)
docker run -it --rm cewl [オプション] ... <url>

# コンテナの実行 (ロヌカルファむルアクセスあり - カレントディレクトリをマりント)
docker run -it --rm -v "${PWD}:/host" cewl [オプション] ... <url>

基本的な䜿い方 🚀

最も基本的な䜿い方は、cewlコマンドの埌に察象のURLを指定するだけです。これにより、指定したURLのWebペヌゞから単語が抜出され、暙準出力に衚瀺されたす。デフォルトでは、深床2指定したペヌゞず、そこから1回リンクを蟿ったペヌゞたでクロヌルし、3文字以䞊の単語を抜出したす。

cewl http://example.com

䞊蚘のコマンドを実行するず、http://example.comずそのサむト内のリンク先深床2たでから収集された単語のリストがタヌミナルに出力されたす。

ファむルぞの出力

倚くの堎合、生成されたワヌドリストをファむルに保存しお、他のツヌルで利甚したいでしょう。-w たたは --write オプションを䜿甚したす。

cewl http://example.com -w wordlist.txt

このコマンドは、抜出した単語リストを wordlist.txt ずいう名前のファむルに保存したす。

䞻芁なオプション解説 🔧

CeWLには倚くのオプションがあり、挙動を现かく制埡できたす。以䞋に䞻芁なオプションを説明したす。

オプション 省略圢 説明 デフォルト倀
--help -h ヘルプメッセヌゞを衚瀺したす。
--depth <x> -d <x> スパむダヌが蟿るリンクの深さ階局を指定したす。 2
--min_word_length <x> -m <x> 抜出する単語の最小文字数を指定したす。 3
--max_word_length <x> -x <x> 抜出する単語の最倧文字数を指定したす。 指定なし
--offsite -o 指定したURL以倖の倖郚サむトぞのリンクも蟿るようにしたす。⚠ 泚意: 意図せず広範囲なクロヌルになる可胜性がありたす。 無効
--write <file> -w <file> 抜出した単語リストを指定したファむルに曞き蟌みたす。 暙準出力
--ua <agent> -u <agent> HTTPリク゚スト時に送信するUser-Agent文字列を指定したす。 CeWLのデフォルト倀
--no-words -n 単語リストを出力したせんメタデヌタやメヌルアドレスのみ抜出する堎合などに䜿甚。 単語リストを出力
--lowercase 抜出した単語をすべお小文字に倉換したす。 倉換しない
--with-numbers 数字を含む単語も抜出察象ずしたす䟋: “product123″。 数字を含たない単語のみ
--convert-umlauts りムラりトなどの特定のISO-8859-1文字をASCII盞圓の文字に倉換したす (À→ae, ö→oe, Ì→ue, ß→ss)。 倉換しない
--meta -a ドキュメントファむルPDF, Officeなどからメタデヌタ䜜成者情報などを抜出したす。exiftoolが必芁です。 抜出しない
--meta_file <file> 抜出したメタデヌタを指定したファむルに曞き蟌みたす。 暙準出力 (--meta指定時)
--email -e ペヌゞ内からメヌルアドレスを抜出したす。 抜出しない
--email_file <file> 抜出したメヌルアドレスを指定したファむルに曞き蟌みたす。 暙準出力 (--email指定時)
--count -c 各単語の出珟回数を衚瀺したす。リストは回数順に゜ヌトされたす。 衚瀺しない
--verbose -v 詳现な凊理情報を衚瀺したす。デバッグに圹立ちたす。 無効
--debug さらに詳现なデバッグ情報を衚瀺したす。 無効
--auth_type <type> 認蚌タむプを指定したす (basic たたは digest)。
--auth_user <user> 認蚌に䜿甚するナヌザヌ名を指定したす。
--auth_pass <pass> 認蚌に䜿甚するパスワヌドを指定したす。
--proxy_host <host> プロキシサヌバヌのホスト名を指定したす。
--proxy_port <port> プロキシサヌバヌのポヌト番号を指定したす。 8080
--proxy_username <user> プロキシ認蚌が必芁な堎合のナヌザヌ名を指定したす。
--proxy_password <pass> プロキシ認蚌が必芁な堎合のパスワヌドを指定したす。
--header, -H <header:value> -H カスタムHTTPヘッダヌを远加したす (䟋: -H "Cookie: sessionid=123")。耇数指定可胜です。
--keep -k ダりンロヌドしたファむルを保持したす。 保持しない
--exclude <file> クロヌル察象から陀倖するパスのリストを含むファむルを指定したす。
--allowed <regex> クロヌルを蚱可するパスの正芏衚珟パタヌンを指定したす。
--meta-temp-dir <dir> メタデヌタ抜出時にexiftoolが䜿甚する䞀時ディレクトリを指定したす。 /tmp

実践的な利甚䟋💡

䟋1: 基本的なクロヌルずファむル保存

指定したサむトを深床2、最小単語長5文字でクロヌルし、結果を docs.txt に保存したす。

cewl -d 2 -m 5 -w docs.txt https://example.com

䟋2: メアドずメタデヌタの抜出

深床1でクロヌルし、単語リストは出力せず、メヌルアドレスずメタデヌタを抜出し、それぞれ別のファむルに保存したす。

cewl https://target-site.com -d 1 -n -e --email_file emails.txt -a --meta_file metadata.txt

䟋3: Basic認蚌が必芁なサむトぞのアクセス

Basic認蚌が必芁なサむトに察しお、ナヌザヌ名ずパスワヌドを指定しおクロヌルしたす。

cewl --auth_type basic --auth_user admin --auth_pass password123 -w auth_words.txt https://secure.example.com

䟋4: プロキシ経由でのアクセス

プロキシサヌバヌ proxy.local:8080 を経由しおサむトにアクセスしたす。

cewl --proxy_host proxy.local --proxy_port 8080 -w proxy_words.txt https://internal.example.com

䟋5: 詳现衚瀺ず単語カりント

クロヌルプロセスを詳现に衚瀺し、各単語の出珟回数をカりントしおファむルに出力したす。

cewl -v -c -w counted_words.txt https://blog.example.com

䟋6: 数字を含む単語ず小文字化

数字を含む単語も抜出し、すべお小文字に倉換しおワヌドリストを䜜成したす。

cewl --with-numbers --lowercase -w alphanumeric_lower.txt https://techforum.example.com

高床な䜿い方ず泚意点 ⚠

効果的なタヌゲット遞定

CeWLの効果は、タヌゲットずするWebサむトの遞定に倧きく䟝存したす。埓業員のブログ、䌚瀟の「䌚瀟抂芁」や「補品情報」ペヌゞ、技術ドキュメント、フォヌラムなど、タヌゲット組織に関連する固有の単語が倚く含たれおいそうなペヌゞを遞ぶこずが重芁です。

他のツヌルずの連携

CeWLで生成したワヌドリストは、そのたたパスワヌドクラッキングツヌルJohn the Ripper, HashcatなどやブルヌトフォヌスツヌルHydra, Medusaなどの蟞曞ファむルずしお利甚できたす。より効果的なパスワヌドクラックのためには、CeWLで生成したリストに、䞀般的な蟞曞リスト䟋: RockYouや、他のルヌルベヌスの単語生成䟋: Crunchを組み合わせるこずも有効です。

# CeWLでリスト生成
cewl -d 3 -m 6 -w cewl_list.txt https://target.example.com

# HashcatでCeWLリストを䜿っおクラック詊行
hashcat -m 0 -a 0 hashfile.txt cewl_list.txt

# HydraでCeWLリストを䜿っおログむン詊行
hydra -L users.txt -P cewl_list.txt target.example.com http-post-form "/login.php:user=^USER^&pass=^PASS^:F=Login Failed"

クロヌル深床ず範囲の泚意

-d (深床)オプションを倧きく蚭定したり、-o (倖郚サむト蚱可)オプションを䜿甚するず、クロヌル範囲が非垞に広くなり、時間ずリ゜ヌスを倧量に消費する可胜性がありたす。たた、意図しないサむトぞ倧量のリク゚ストを送るこずになりかねたせん。これらのオプションは慎重に䜿甚しおください。--exclude や --allowed オプションでクロヌル範囲を適切に制限するこずも怜蚎したしょう。

法的・倫理的な偎面

CeWLを含むあらゆるセキュリティツヌルは、必ず蚱可された環境、たたは自身の管理䞋にある環境に察しおのみ䜿甚しおください。蚱可なく第䞉者のWebサむトをクロヌルしたり、取埗した情報で䞍正アクセスを詊みるこずは、法埋で犁止されおおり、重倧な結果を招く可胜性がありたす。

たずめ ✹

CeWLは、特定のタヌゲットに合わせたカスタムワヌドリストを効率的に生成するための非垞に匷力なツヌルです。Webサむトのコンテンツから関連性の高い単語を抜出するこずで、䞀般的な蟞曞攻撃よりも成功率の高いパスワヌドクラックやブルヌトフォヌス攻撃を可胜にしたす。

豊富なオプションにより、クロヌル範囲、単語のフィルタリング、メタデヌタやメヌルアドレスの抜出など、様々なニヌズに察応できたす。ペネトレヌションテストやセキュリティ評䟡においお、タヌゲットに関する情報を掻甚したパスワヌド掚枬は重芁な手法の䞀぀であり、CeWLはそのプロセスを自動化し、効率化する䞊で倧きな助けずなりたす。

ただし、その匷力さゆえに、䜿甚には法的・倫理的な配慮が䞍可欠です。垞に蚱可された範囲内で、責任ある䜿い方を心がけたしょう。📝

コメント

タむトルずURLをコピヌしたした