取得できる情報の中で最も重要と思われる情報とは、やはりユーザー名だろう。
システムへのログオンに関するセキュリティでは、パスワードの重要性がなにかと取りざたされるのだが、ユーザー名もパスワードと同等とまではいかないにしても、セキュアに扱うべきであると筆者は考えている。
ユーザー名が判明しないことには、ユーザー名を固定したブルートフォースアタックなどのパスワード推測を行うことはできない。極端ないい方かもしれないが、パスワードが判明したとしてもユーザー名が判明しなければログオンすることはできないのである。
ブルートフォースの手法の中には、リバースブルートフォースという、脆弱なパスワードを固定し、ユーザー名を推測するという手法も存在する。しかしユーザー名が容易に推測できなければ、この手法に対してもある程度の強度を保つことが可能である。
ブルートフォースとリバースブルートフォース、それぞれの手法を見ることでユーザー名もパスワード同様に攻撃(クラッキング)の対象になるということが分かるだろう。
根本的にいえば、狙われるのはユーザー名だけでもパスワードだけでもなく、その両方を合わせた「アカウント」であるため、ユーザー名、パスワードともにセキュアに扱うことが大前提であるのはいうまでもない。
さて、ペネトレーションテストでは、ユーザー名が判明した場合、どのようにパスワード推測を行うのかを見てみよう。
まず、ユーザー名が判明した場合は、Windowsに限ったことではないが、以下の2つのパターンのオンラインパスワードクラッキングを実施する。
つまり、容易に判明しそうなアカウントが存在するか否かの調査を行うわけである。
それでは、実際の調査の様子を追っていこう。
使用した情報は、先ほどLanSpyにてWindows 2000から取得できた8つのユーザー名をテキストファイル(今回は「userlist」という名前)に保存したもの。そして、使用したのは「Hydra」というツールである。
Administrator
ace
king
zoom
muman
topper
karoyama
joker
下図は、その実行結果ログである。
上図の赤ラインで囲われた個所に注目してほしい。
[139][smb] host: xxx.xxx.xxx.xxx login: zoom password:
[139][smb] host: xxx.xxx.xxx.xxx login: karoyama password: karoyama
これは、ユーザー名「zoom」のパスワードが設定されていない(空文字)ことと、ユーザー名「karoyama」のパスワードが「karoyama」であると判明したことを教えてくれている。
今回は、Nullパスワード、Joeパスワードについてのみのパスワードクラッキングを試みているが、ペネトレーションテストでは、この後、一般的によく使用される単語や文字列が記述された辞書ファイルを用いたオンラインパスワードクラッキングを行う。
しかし、ペネトレーションテストの現場では、そのフェイズに移る前、つまり、今回のようなNullパスワード、Joeパスワードでのオンラインパスワードクラッキングの段階でいくつかのユーザーのクラッキングに成功することが多いのが実情である。特にActive Directoryサーバなど、ユーザーが多数存在するサーバに対して検査を行った場合は、驚くほどの確率でこのような状態のユーザーに出会うかもしれない。
Copyright © ITmedia, Inc. All Rights Reserved.