トップ    編集凍結 差分バックアップ添付複製名前変更リロードPages that link to here   新規一覧単語検索最終更新
   最終更新のRSS

目次

パスクラック(パスワードクラック)攻撃とは

パスワードによって認証が行われているサーバに侵入するためのもっとも単純な方法は、そのパスワードを知ることです。 そのパスワードを知るために行われる手段をいわゆるパスクラックといいます。

その手段としては大きく2つ、マシン内で行われるローカルパスクラックと、外部サーバに向かって行われるリモートパスクラックに分けられます。

ローカルパスクラック

UNIXのログインパスワードクラック

UNIX・Linux・BSD等Linux系のシステムではパスワードはDES、もしくはMD5という方式でハッシュされて格納されています。

過去はハッシュは基本的にユーザなら誰でも閲覧可能な/etc/passwdファイル内に書き込まれて保存されていたのですが、現在ではパスワード部分だけがroot権限がないと閲覧できないファイル(Linux系だと/etc/shadow、BSDだと/etc/master.passwd が多い)に分離され、保存されていることが多くなっています。

例:最近の/etc/passwdファイル

xのところにかつてはパスワードハッシュが書き込まれていました。

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
bogus:x:501:501::/home/bogus:/bin/bash
yamamoto:x:502:502::/home/yamamoto:/bin/bash
takuji:x:503:503::/home/takuji:/bin/bash

例:/etc/shadowファイル

1つめの:と2つめの:に挟まれたところがパスワードハッシュです。$1$なのでMD5ですね。次の8文字はsaltと呼ばれるもので、次の$は区切りで、最後の22文字がsaltとパスワードを合わせてハッシュした値で、a-zA-Z0-9./ の64通りの文字からランダムに選ばれます。

root:$1$ikCRnArv$lQDcAyxYIMxy2rlr.5NS7/:12957:0:99999:7:::
bin:$1$wLHbZR8p$aqdhvM5TA6UMnOQHXkAVI1:12957:0:99999:7:::
bogus:$1$pheDVcKm$gA1Lmb3WzrdldmZc2wH3X.:12957:0:99999:7:::
yamamoto:$1$eHXYVxmy$p83O9Fkk.VXZzw26aZpOc0:12957:0:99999:7:::
takuji:$1$qQRiexyz$h5UgYwHci1Gfr4k0Hav3Q0:12957:0:99999:7:::

そのpasswd(もしくはshadow)ファイルを取得し、中に書かれているハッシュを解析することで、ユーザのパスワードを知ることができます。

パスワード解析の原理は原理は簡単なことです。自分が用意した「aaa」のようなパスワードをハッシュにしたものと、解析したいパスワードハッシュを照合し、その2つが同じであれば、自分が用意したパスワードは解析したいパスワードパスワードと言えるということです。

ただし、LinuxでもFreeBSDでも目の前にマシンがあるならばシングルユーザーモードで入れば、こんなかったるいことしなくてもrootになれるので、お忘れなく。

主なツール

John the GUIを使ったJohn the Ripperの使い方(1)

Windowsのログインパスワードクラック

WindowsではSAMファイルにパスワードハッシュが格納されています。
これを解析することでユーザのパスワードを知ることが可能です。

主なツール

その他ローカルファイルのパスクラック

掲示板のパスワードやApacheの.htaccessファイルなどDESやRC5で暗号化されたパスワードについても、その暗号化されたパスワードを取得できれば、John the Ripperなどのパスワードクラッカーでクラックすることも可能。

そのほかに閲覧や変更にパスワードがかけられたzipやpdfファイルのパスワードを解析するツールも存在している。

ツール紹介

リモートパスクラック

telnetやpop3サーバなど認証が必要なサーバをネットワーク経由でパスクラックすることも可能です。

サーバーに応じてそれぞれユーザ名、パスワードを推測して正規のリクエストを発行することでログインできることもあるのですが(ユーザーroot、パスワードrootなんかをとりあえず入れてみたら当たったということもあると思います)、外部からなので速度に問題があるだけでなく、数回認証の失敗を繰り返すとそれ以上そのホストからはアクセスできないようになるサーバも多いので、成功率はあまり高くないといえます。

主なツール

パスクラックの手法

ここではパスクラックの手法について説明していきます。
パスクラックのやり方として大きくはブルートフォースクラックと辞書クラックに分けられます。

ブルートフォースクラック

ブルートフォースクラックは可能性のあるすべてのパスワードを総当たりで試す方法です。 自転車のチェーンロックなど数字を合わせるタイプの鍵の番号を忘れてしまったときに「0000」から「0001」、「0002」〜「1234」と試していくやり方と原理的には変わりません。
この方法を使うと最終的には必ずパスワードを見つけることができるのですが、予測がつかないのと、方法とパスワードによっては死ぬまで終わらないということになりかねません。

辞書クラック

辞書クラックはパスワードに使われてそうな単語を考えて辞書ファイルという形で持ち、その単語をパスワードとして当てはめていく方法です。ブルートフォースで目くら滅法に試すよりは効率がいいのですが、鉄オタの管理人の鉄道関連のパスワードにアニメ用語の辞書では当てられませんが、パソオタの付けているパスワードにPC用語辞書でクラックすると簡単に当てられる、というように、辞書の内容に左右されるのと、その対象が"$=rG(!5yY"のようなランダムなパスワードを使用していた場合、全くの無駄に終わる危険がありますが、passwordpasswodrpassowdrのように辞書の単語を変形させて当てはめていく手法もありますので、それで対応できる場合もあります。

Rainbow クラック

これまでのパスワードクラックはリアルタイムに渡されたパスワードをパスワードクラッカーが暗号化して解析したいパスワードを照合するというという方式でしたが、リアルタイムに計算するので時間効率が悪いという欠点がありました。
その欠点を補うべく、先にパスワードを暗号化したものをテーブル(これをrainbow tableという)として持ち、それを用いてパスワードをクラックする方法があります。このテクニック(time-memory trade-off テクニック)を使ったクラック方法Rainbowクラックといいます。劇的な高速化が可能ですが、パスワードの桁が増えただけテーブルが莫大な大きさ(LMハッシュ用のすべての文字列で64ギガらしい)になるのが欠点です。

EPFL

主なツール

オンラインでパスワードクラックできるサイト

トップ    編集凍結 差分バックアップ添付複製名前変更リロードPages that link to here   新規一覧単語検索最終更新
   最終更新のRSS
Last-modified: 2012-03-26 (月) 14:26:31 (905d)