6
206 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 キー クラックまでの一連の操作を行うことも可能だ。 Cain & Abel はその名前のとおり 2 つのプログラ ムから構成されており、Cain がメインプログラムとし て、GUI でのパスワードクラッカーやスニッファーな どとして機能する。Abel は、 バックグラウンドのプ ログラム(NT サービス)として別途組み込むことで、 ローカルおよびリモートからのシェル(コマンドプロン プト)操作や Route Tables の編集、そして TCP/ UDP Table を参照できるようにしたり、NT Hashes Dumper を利用して Windows のログオンパスワード をクラッキングするといったことを可能にする。 具体 的な例は後述するのでそちらを参照してほしい。 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 のイン ストールが完了すると、 続いてパケットドライバー、 WinPcap のインストールが開始されるので、すでに WinPcap がインストールされている場合を除き、こ ちらも併せてインストールする。 定番パスワードクラッカー“Cain & Abel” Cain と Abel、 それぞれの役割 3 商用製品にも引けを取らない多機能パスワードクラッカー Cain and Abelであらゆる パスワードを奪取せよ ! Cain & AbelはWindows GUIで動くパスワードクラッカー。貧者のL0phtCrackと称 されるその機能は、Windowsのログオンパスワードのクラックをはじめ、スニッフィングに よるパスワード取得、さらには無線LANアクセスポイントのWEPキー解析など実に多彩だ。 Windows 7 への対応状況は? インストールも簡単 文● TTS

Cain and Abelであらゆる 3 パスワードを奪取せよ! では、実践的にCain & Abelを使用する例をい くつか紹介していこう。はじめにWindowsログオン

Embed Size (px)

Citation preview

Page 1: Cain and Abelであらゆる 3 パスワードを奪取せよ! では、実践的にCain & Abelを使用する例をい くつか紹介していこう。はじめにWindowsログオン

206

 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キークラックまでの一連の操作を行うことも可能だ。

 Cain & Abel はその名前のとおり2 つのプログラムから構成されており、Cain がメインプログラムとして、GUI でのパスワードクラッカーやスニッファーなどとして機能する。Abel は、バックグラウンドのプログラム(NT サービス)として別途組み込むことで、ローカルおよびリモートからのシェル(コマンドプロンプト)操作や Route Tables の編集、そして TCP/

UDP Table を参照できるようにしたり、NT Hashes Dumper を利用して Windows のログオンパスワードをクラッキングするといったことを可能にする。具体的な例は後述するのでそちらを参照してほしい。

 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 のインストールが完了すると、続いてパケットドライバー、WinPcap のインストールが開始されるので、すでにWinPcap がインストールされている場合を除き、こちらも併せてインストールする。

定番パスワードクラッカー“Cain & Abel”

Cain と Abel、それぞれの役割

3実践

商用製品にも引けを取らない多機能パスワードクラッカー

Cain and Abelであらゆるパスワードを奪取せよ !

Cain & AbelはWindows GUIで動くパスワードクラッカー。貧者のL0phtCrackと称されるその機能は、Windowsのログオンパスワードのクラックをはじめ、スニッフィングによるパスワード取得、さらには無線LANアクセスポイントのWEPキー解析など実に多彩だ。

Windows 7 への対応状況は?

インストールも簡単

文● TTS

Page 2: Cain and Abelであらゆる 3 パスワードを奪取せよ! では、実践的にCain & Abelを使用する例をい くつか紹介していこう。はじめにWindowsログオン

207

  インストー ル 完 了 後 に Cain を 起 動 すると「Windows ファイアウォールが有効だと、Cain のいくつかの機能が正常に動作しない」といった警告が表示されることがあるが、これは v4.9.35 で新たに追加された検出機能で、Windowsファイアウォールを無効にすれば出なくなる。

Windows ファイアウォールが有効な場合、図のような警告が出る

Cain & Abel の基本機能 Cain のメイン画面が下の図である。はじめて利用する場合には若干わかりづらいかもしれないが、ツールバーの下部にあるタブを切り替えることで、各機能を利用することができる。 ここでは、Cain の ベーシックな機 能である、Password Decoders、Password Crackers、Snifferの 3 つの操作方法について簡単に解説しておこう。

 ハードディスク内に保存されているアカウント情報などを取得する場合には「Decoders」タブのまま、目的とするパスワード種別を選択する。仮に IEで保存したパスワードを取得したいのであれば、IE7 Passwordsを選択し、ツールバーの「+」アイコンをクリックすると保存されたアカウント情報が表示される。 Windows 7 の場合には同様の操作をしても表示されないが、「Credential Manager」を選択して「+」アイコンをクリックすると、Web サイトや Windows Live のアカウントなど、資格情報コンテナに保存された情報(コントロールパネル→資格情報マネージャー)が閲覧できる。

 パスワードクラッカーは「Crackers」タブをクリッ

クして左ペインの中からクラックしたいパスワードの種別を選択する。一例として、MD5 ハッシュ値をクラックしてみよう。 例としてクラックする MD5 ハッシュは Tools メニューにあるHash Calculator で生成できるので、これを使用して「1111」などの簡単なものにしておけばいいだろう。生成された MD5 ハッシュ値をコピーして、左ペインの MD5 Hashes を選択。次に、右ペインを右クリックしてメニューから「Add to list」→ハッシュ値をペーストする。リストに現れた MD5ハッシュ値を右クリックして、辞書アタックやブルートフォースアタックなどを選択してクラッキングを行う。

 スニッファーをはじめてテストする場合には自身のパスワードを取得してみるとわかりやすい。スニッフィングを行うには、あらかじめ Configure メニューのSnifferタブで利用するNIC を選択しておく。次に、

「Sniffer」タブをクリックし、下部に出現するタブの中から「Passwords」を選択する。あとはツールバーのスニッファーボタンをクリックすればスニッフィングが開始される。メールクライアントや FTPクライアントなど暗号化されていない通信でテストすると、左ペインの「FTP」や「POP3」などの数字が増えパスワードが取得できているはずだ。

Password Decoders

Password Crackers

Sniffer

Cain のメイン画面。ツールバーの下部にあるタブを切り替えることで、各機能へアクセスできる

クラック可能なパスワードやプロトコルなどタブごとに異なる内容が表示される左ペイン

機能を切り替えるタブ

パスワードの解析結果などが表示される右ペイン

Page 3: Cain and Abelであらゆる 3 パスワードを奪取せよ! では、実践的にCain & Abelを使用する例をい くつか紹介していこう。はじめにWindowsログオン

208

 では、実践的に Cain & Abel を使用する例をいくつか紹介していこう。はじめに Windows ログオンパスワードが設定されているWindows XP へログオンし、そのコンピューターに設定されたユーザーのパスワードをクラックするというシナリオだ。ここでは実際のクラッキングを想定して別のツールも併用した例を示す。自分だったらどのように侵入するかを考えてみるのもおもしろいだろう。

 はじめに管理者権限で 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 つから選択できる。

Cain で Windows ログオンパスワードをクラックする

Password Crackersを使用してログオンパスワードをクラッキング

ブルートフォースアタックでクラッキングに成功した例。下のウインドウにパスワードの「111111」が表示されている

ブルートフォースアタックで Windows のログオンパスワードをクラックする

Offline NT Password でブートしAdministrator アカウントのパスワードをリセット

クラックしたいアカウントを右クリックしてクラックを開始する。ここではブルートフォースアタックを選択した

「Cracker」タブをクリックし、左ペインから「LM&NTLMHashes」を選択し、ツールバーの「+」アイコンでハッシュを追加する。ここではUser01がターゲット

※ Offline NT Password & Registry Editor http://pogostick.net/~pnh/ntpasswd/

Page 4: Cain and Abelであらゆる 3 パスワードを奪取せよ! では、実践的にCain & Abelを使用する例をい くつか紹介していこう。はじめにWindowsログオン

209

Hashes をクリックして出力されたハッシュのアカウントを選 択 し て、Send To Cracker もしくは、Send All To CrackerでCracker へ送る。あとはローカルコンピューター上でのクラッキングと同様だ

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のワークグループを展開。ローカルネットワーク上のターゲットとなるコンピューターを選択する

インストールが完了するとターゲットコンピューターに新たにAbel のメニューが追加され、Console や Hashes、LSA Secrets、Routesといったサブメニューが利用できるようになる

接続が完了したら「Services」を右クリックして Abel をインストール

Page 5: Cain and Abelであらゆる 3 パスワードを奪取せよ! では、実践的にCain & Abelを使用する例をい くつか紹介していこう。はじめにWindowsログオン

210

 ターゲットの存在するローカルネットワークに侵入できたのであれば、次に Cain のスニッファー機能を利用して、ターゲットの利用するサービスのアカウントパスワードを入手する。このあたりはクラッカーの気持ちになってテストすることで、防御策を練る際の参考になるはずだ。 Cain のスニッファー機能に関しては前述したとおりNIC を指定して、スニッファーボタンをクリックすればよいのだが、これで取得できるのは、リピーターハブなどのように、1 つのポートから入力されたフレームをすべてのポートに中継するネットワーク環境だけだ。現状では、入力されたフレームをすべてのポートへ送信するのではなく、そのフレームの宛先となるノードの MAC アドレスを確認し、該当するポートのみにフレームを送信する「スイッチングハブ」の環境下がほとんであるため、リピーターハブと同様にすべてのノードにパケットを中継する一部の無線 LAN アクセスポイントなど以外では攻撃に成功しない。

 そこで使われるのが ARP ポイズニングと呼ばれる手口である。 ARP プロトコルは、IP アドレスとMAC アドレスを関連付けるために利用されるプロトコルで、例えばノード A の MAC アドレスをノード B が知りたい場合に、ブロードキャストで MAC アドレスの問い合わせを行い、ノード A からの MAC アドレス応答で、Bは A の MAC アドレスを知ることができる。 しかし、このような問い合わせを通信のたびに行うと無駄な通信が増えてしまうため、すでに問い合わ

せで得られた IP アドレスとMAC アドレスのマッピングはキャッシュされ、キャッシュされているノード宛の通信では問い合わせは行わずに直接通信できるようになっている。 ARP ポイズニングは、このキャッシュされた IP アドレスとMAC アドレスのマッピングを新しいものに書き換え、通信はクラッカーのコンピューターを介するようにしてしまう攻撃だ。ARP ポイズニングでターゲットの通信経路に入り込めれば、スニッフィングだけでなく中間者攻撃もできるため、偽の証明書を用いて SSL 通信のアカウント情報などを取得することや、DNS スプーフィング(偽の DNS 情報)することも可能になる。 Cain では、ARP ポイズニングを行い、SSL 通信のアカウント情報を取得することもDNSスプーフィングを行うことも可能だ。つまり、Gmail などのような SSL 通信アカウントを利用して安心しているユーザーのパスワードも取得できる可能性があるわけだ。

 Cain を起動して、「Sniffer」タブをクリックし、下部の「Hosts」タブを選択する。次に「+」ボタンでネットワーク上のホストをスキャンする(レンジ指定も可)。スキャンが完了したら「ARP」タブをクリックし、右上のペインで+ボタンをクリックし、クラッカーのコンピューターがデフォルトゲートウェイ(192.168.1.1)とターゲットクライアントを中継するように設定を行う。ここでは、ターゲットを

「192.168.1.91-WindowsXP」としている。 設定が完了したら、ツールバーのスニッファーボタ

ARPポイズニングでリモートPCのパスワードをゲットする

ARPポイズニングでスニッフィングと中間攻撃を可能にする

ARPポイズン・ルーティングの設定とポイズニングの開始方法

ユーザー 1 ユーザー 2 クラッカー

DNS SpoofARP Spoof

Web サーバー ルーター

スウィッチングハブ

インターネット

中間者攻撃の例

ARPポイズニングで通信をクラッカーのコンピューターを介するよう変更してしまう

ユーザー 1 およびユーザー2 のインターネット接続はクラッカーのコンピューターを経由するよう ARP テーブルが改ざんされる。このためDNS を改ざんして他のサーバーへジャンプさせたり、偽の SSL 証明書を利用した情報の採取などが可能になる。

Page 6: Cain and Abelであらゆる 3 パスワードを奪取せよ! では、実践的にCain & Abelを使用する例をい くつか紹介していこう。はじめにWindowsログオン

211

こちらが詐称後。192.168.1.1 の MAC アドレスが変更されていることがわかる

ンの横にある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 ポイズニングに成功していれば、特別な設定をしなくとも放置しておけば、自動的に偽の証明書での中間者攻撃を行ってくれる。

ARP ポイズニングでリモート PC からパスワードを奪取する

ネットワーク上のホストをスキャンする

「Use Spoofed IP and MAC addresses」で詐称し、存在を隠ぺいすることも可能だ。こちらは詐称前

ターゲットの通信がクラッカーのコンピューターを中継するように設定する。スニッファーボタンの横にある APR ボタンをクリックすればポイズニング開始だ

SSL通信のパスワードを取得できる可能性もある

ターゲットが SSL 通信でのアクセスを行うとAPR-Cert へ自動的に偽の証明書が作成され、ストアされる

DNS スプーフィングもドメイン名とIP アドレスを指定するだけで簡単に実行できる