実践3 商用製品にも引けを取らない多機能パスワードクラッカー Cain and Abelであらゆるパスワードを奪取せよ! 文 TTS Cain & Abel は Windows GUI で動くパスワードクラッカー 貧者の L0phtCrack と称 されるその機能は Windows のログオンパスワードのクラックをはじめ スニッフィングに よるパスワード取得 さらには無線 LAN アクセスポイントの WEP キー解析など実に多彩だ 定番パスワードクラッカー Cain & Abel Cain & Abel は クラッカーにとってはすでに定番ともいえるパスワードクラッキングツールだ Windows の GUI で操作できることもあり 初心者や CUI が苦手なユーザーなどでも簡単に使用できる Cain & Abel でのパスワードの取得は 単純にローカル環境 ( ハードディスク ) に保存されているアカウント情報から 暗号化パスワードやハッシュ値をブルートフォースや辞書でクラックする機能 そしてネットワーク上をスニッフィングおよび中間者攻撃することでアカウント情報を取得するといった機能が備わっている 具体的な例をいくつか挙げると Outlook Express や Windows Mail に保存されたメールアカウント IE で保存した Web サイトアカウント Windows のログオンパスワードや MD5 ハッシュ値などのクラッキング POP3/HTTP/FTP/SMB といった暗号化されていない各種サービスアカウントと中間者攻撃を利用することで HTTPS/POP3S/FTPS などのアカウントを取得するといったこともできる また 別途 AirPcap( 無線 LAN パケットキャプチャーデバイス ) を使用することで 無線 LAN アクセスポイントのパケットインジェクションから WEPキークラックまでの一連の操作を行うことも可能だ UDP Table を参照できるようにしたり NT Hashes Dumper を利用して Windows のログオンパスワードをクラッキングするといったことを可能にする 具体的な例は後述するのでそちらを参照してほしい Windows 7 への対応状況は? Cain & Abel の Windows 7 への対応だが 原稿執筆時点の最新バージョン v4.9.35 でオフィシャルサイトのダウンロードページには Cain & Abel v4.9.35 for Windows NT/2000/XP としか記載されていないものの Windows Vista や Windows 7 上でも問題なく動作するようだ 最新版では NTLM hashes Dumper や Wireless Password Decoder などの 64 ビット OS への対応 Windows 7 上の Windows Live Mail アカウント取得に対応したことなどが記載されており 念のため Windows 7 Ultimate 64 ビット版上でも Cain & Abel の簡単な動作チェックを行ったが クライアントとしての基本的な動作は問題なかった ただし これはターゲットとしてのテストではない 今回の記事でのターゲットはユーザー数の多い Windows XP に限定しているのでその点に注意してほしい Cain と Abel それぞれの役割 Cain & Abel はその名前のとおり 2 つのプログラムから構成されており Cain がメインプログラムとして GUI でのパスワードクラッカーやスニッファーなどとして機能する Abel は バックグラウンドのプログラム (NT サービス ) として別途組み込むことで ローカルおよびリモートからのシェル ( コマンドプロンプト ) 操作や Route Tables の編集 そして TCP/ インストールも簡単 Cain & Abel の導入 ( インストール ) には難しい点はない 基本的にインストーラーにしたがって進んでいけばよいだけだ Cain & Abel のインストールが完了すると 続いてパケットドライバー WinPcap のインストールが開始されるので すでに WinPcap がインストールされている場合を除き こちらも併せてインストールする 206
インストール完了後に Cain を起動すると Windows ファイアウォールが有効だと Cain のいくつかの機能が正常に動作しない といった警告が表示されることがあるが これは v4.9.35 で新たに追加された検出機能で Windows ファイアウォールを無効にすれば出なくなる Windows ファイアウォールが有効な場合 図のような警告が 出る Cain & Abel の基本機能 Cain のメイン画面が下の図である はじめて利用する場合には若干わかりづらいかもしれないが ツールバーの下部にあるタブを切り替えることで 各機能を利用することができる ここでは Cain のベーシックな機能である Password Decoders Password Crackers Sniffer の 3 つの操作方法について簡単に解説しておこう Password Decoders ハードディスク内に保存されているアカウント情報などを取得する場合には Decoders タブのまま 目的とするパスワード種別を選択する 仮に IE で保存したパスワードを取得したいのであれば IE7 Passwords を選択し ツールバーの + アイコンをクリックすると保存されたアカウント情報が表示される Windows 7 の場合には同様の操作をしても表示されないが Credential Manager を選択して + アイコンをクリックすると Web サイトや Windows Live のアカウントなど 資格情報コンテナに保存された情報 ( コントロールパネル 資格情報マネージャー ) が閲覧できる Password Crackers パスワードクラッカーは Crackers タブをクリッ クして左ペインの中からクラックしたいパスワードの種別を選択する 一例として MD5 ハッシュ値をクラックしてみよう 例としてクラックする MD5 ハッシュは Tools メニューにある Hash Calculator で生成できるので これを使用して 1111 などの簡単なものにしておけばいいだろう 生成された MD5 ハッシュ値をコピーして 左ペインの MD5 Hashes を選択 次に 右ペインを右クリックしてメニューから Add to list ハッシュ値をペーストする リストに現れた MD5 ハッシュ値を右クリックして 辞書アタックやブルートフォースアタックなどを選択してクラッキングを行う Sniffer スニッファーをはじめてテストする場合には自身のパスワードを取得してみるとわかりやすい スニッフィングを行うには あらかじめ Configure メニューの Sniffer タブで利用する NIC を選択しておく 次に Sniffer タブをクリックし 下部に出現するタブの中から Passwords を選択する あとはツールバーのスニッファーボタンをクリックすればスニッフィングが開始される メールクライアントや FTP クライアントなど暗号化されていない通信でテストすると 左ペインの FTP や POP3 などの数字が増えパスワードが取得できているはずだ クラック可能なパスワードやプロトコルなどタブごとに異なる内容が表示される左ペイン 機能を切り替えるタブパスワードの解析結果などが表示される右ペイン Cain のメイン画面 ツールバーの下部にあるタブを切り替えることで 各機能へアクセスできる 207
Cain で Windows ログオンパスワードをクラックする では 実践的に Cain & Abel を使用する例をい くつか紹介していこう はじめに Windows ログオン パスワードが設定されている Windows XP へログオ ンし そのコンピューターに設定されたユーザーのパ スワードをクラックするというシナリオだ ここでは実 際のクラッキングを想定して別のツールも併用した例 を示す 自分だったらどのように侵入するかを考えて みるのもおもしろいだろう Password Crackers を使用してログオンパスワードをクラッキング はじめに管理者権限で Windows へログオンする ために Offline NT Password & Registry Editor というツール (LiveCD) でブートし Administrator アカウントのパスワードをリセットする このツールの 使い方は簡単なので割愛するが これで管理者としてのログオンが可能になる 続いて Cain で 前述した Password Crackers を使用して他ユーザーのパスワードクラックを開始する Cracker タブをクリックし 左ペインから LM&NTML Hashes を選択し ツールバーの + アイコンでハッシュを追加する + アイコンをクリックするとデフォルトでは Import Hashes from local system が選択されているが ローカルから取り込むのであれば そのまま Next ボタンをクリックすればよい 右ペインにハッシュが追加されたら 次にクラックしたいアカウントを右クリックしてクラックを開始する クラッキングは Brute-Force Password Cracker/ Dictionary Password Cracker/Cryptanalysis/ RainbowCrack-Online の 4 つから選択できる ブルートフォースアタックで Windows のログオンパスワードをクラックする Offline NT Password でブートし Administrator アカウン トのパスワードをリセット Cracker タブをクリックし 左ペインから LM&NTLMHashes を選択し ツールバーの + アイコンでハッシュを追加する ここでは User01 がターゲット クラックしたいアカウントを右クリックしてクラックを開始する ここではブルートフォースアタックを選択した ブルートフォースアタックでクラッキングに成功した例 下の ウインドウにパスワードの 111111 が表示されている 208 Offline NT Password & Registry Editor http://pogostick.net/~pnh/ntpasswd/
Abel を使ってリモート PC のパスワードをクラックする 前ページでは Windows ログオンパスワードが設定されている Windows XP へログオンし ユーザーのアカウントパスワードをクラックした 続いて そのコンピューターと接続されているローカルネットワーク上のリモートコンピューター (Windows XP) のユーザーアカウントをクラックしてみよう 利用するのは冒頭で解説した Abel である Abel は ネットワークで接続されたターゲットコンピューターへリモートからインストールすることが可能だ Abel の NT Hashes Dumper を利用すれば リモートコンピューターのハッシュを出力できるので 前述したローカルコンピューター上でのクラッキングと同様にユーザーアカウントパスワードのクラッキングが可能になる なお リモートコンピューターに Abel を組み込むにはターゲットのコンピューターへ管理者権限を持つユーザーとして接続できることが前提となる Abel の NT Hashes Dumper を使ってリモート PC のパスワードをクラックする Cain の Network タブをクリックして Entire Network にある Microsoft Windows Network のワークグループを展開 ローカルネットワーク上のターゲットとなるコンピューターを選択する 接続が完了したら Services を右クリックして Abel をイ ンストール インストールが完了するとターゲットコンピューターに新たに Abel のメニューが追加され Console や Hashes LSA Secrets Routes といったサブメニューが利用できるようになる Hashes をクリックして出力されたハッシュのアカウントを選択して Send To Cracker もしくは Send All To Cracker で Cracker へ送る あとはローカルコンピューター上でのクラッキングと同様だ 209
ARP ポイズニングでリモート PC のパスワードをゲットする ターゲットの存在するローカルネットワークに侵入できたのであれば 次に Cain のスニッファー機能を利用して ターゲットの利用するサービスのアカウントパスワードを入手する このあたりはクラッカーの気持ちになってテストすることで 防御策を練る際の参考になるはずだ Cain のスニッファー機能に関しては前述したとおりNIC を指定して スニッファーボタンをクリックすればよいのだが これで取得できるのは リピーターハブなどのように 1 つのポートから入力されたフレームをすべてのポートに中継するネットワーク環境だけだ 現状では 入力されたフレームをすべてのポートへ送信するのではなく そのフレームの宛先となるノードの MAC アドレスを確認し 該当するポートのみにフレームを送信する スイッチングハブ の環境下がほとんであるため リピーターハブと同様にすべてのノードにパケットを中継する一部の無線 LAN アクセスポイントなど以外では攻撃に成功しない せで得られた IP アドレスと MAC アドレスのマッピングはキャッシュされ キャッシュされているノード宛の通信では問い合わせは行わずに直接通信できるようになっている ARP ポイズニングは このキャッシュされた IP アドレスと MAC アドレスのマッピングを新しいものに書き換え 通信はクラッカーのコンピューターを介するようにしてしまう攻撃だ ARP ポイズニングでターゲットの通信経路に入り込めれば スニッフィングだけでなく中間者攻撃もできるため 偽の証明書を用いて SSL 通信のアカウント情報などを取得することや DNS スプーフィング ( 偽の DNS 情報 ) することも可能になる Cain では ARP ポイズニングを行い SSL 通信のアカウント情報を取得することも DNSスプーフィングを行うことも可能だ つまり Gmail などのような SSL 通信アカウントを利用して安心しているユーザーのパスワードも取得できる可能性があるわけだ ARP ポイズニングでスニッフィングと中間攻撃を可能にする そこで使われるのが ARP ポイズニングと呼ばれる 手口である ARP プロトコルは IP アドレスと MAC アドレス を関連付けるために利用されるプロトコルで 例えば ノード A の MAC アドレスをノード B が知りたい場合 に ブロードキャストで MAC アドレスの問い合わせ を行い ノード A からの MAC アドレス応答で B は A の MAC アドレスを知ることができる しかし このような問い合わせを通信のたびに行う と無駄な通信が増えてしまうため すでに問い合わ ARP ポイズン ルーティングの設定とポイズニングの開始方法 Cain を起動して Sniffer タブをクリックし 下部の Hosts タブを選択する 次に + ボ タンでネットワーク上のホストをスキャンする ( レン ジ指定も可 ) スキャンが完了したら ARP タ ブをクリックし 右上のペインで + ボタンをクリック し クラッカーのコンピューターがデフォルトゲート ウェイ (192.168.1.1) とターゲットクライアントを 中継するように設定を行う ここでは ターゲットを 192.168.1.91-WindowsXP としている 設定が完了したら ツールバーのスニッファーボタ ユーザー 1 およびユーザー 2 のインターネット接続はクラッカーのコンピューターを経由するよう ARP テーブルが改ざんされる このため DNS を改ざんして他のサーバーへジャンプさせたり 偽の SSL 証明書を利用した情報の採取などが可能になる ARP ポイズニングで通信をクラッカーのコンピューターを介するよう変更してしまう 210
ARP ポイズニングでリモート PC からパスワードを奪取する ネットワーク上のホストをスキャンする ターゲットの通信がクラッカーのコンピューターを中継するよ うに設定する スニッファーボタンの横にある APR ボタンを クリックすればポイズニング開始だ Use Spoofed IP and MAC addresses で詐称し 存 在を隠ぺいすることも可能だ こちらは詐称前 こちらが詐称後 192.168.1.1 の MAC アドレスが変更さ れていることがわかる DNS スプーフィングもドメイン 名と IP アドレスを指定するだけ で簡単に実行できる ターゲットが SSL 通信でのアクセスを行うと APR-Cert へ自動的に偽の証明書が作 成され ストアされる ンの横にある APR ボタンをクリックすればポイズニングが開始される ターゲットの ARP テーブルのキャッシュを参照 ( コマンドプロンプトで arp -a ) すると クラッカーのパソコンの MAC アドレスとともに 2 つ同じ MAC アドレスが表示され攻撃がバレる可能性があるが これは Configure の ARP Poison Routing にある Use Spoofed IP and MAC addresses を使い ネットワーク上に割り当てられていない IP アドレスと偽造された MAC アドレスを使用するよう設定すれば ARP テーブルを確認しても MAC アドレスが二重にならず 存在を隠ぺいすることができる ARP ポイズニングが成功し ターゲットとゲートウェ イの通信経路に入り込めれば あとは放置しておけ ばスニッフィングでターゲットのアカウント情報が入手 できる 暗号化されていない通信のアカウント取得は Sniffer タブ Passwords で確認できる 前述したように Cain では SSL 通信のアカウン ト情報を取得することも可能だ ARP ポイズニング に成功していれば 特別な設定をしなくとも放置して おけば 自動的に偽の証明書での中間者攻撃を行っ てくれる SSL 通信のパスワードを取得できる可能性もある 211