前回までのあらすじ
セキュリティ監査を任されることになったオレは、社員の全PCといくつかのサーバの掌握に成功する。
しかし、基幹系のサーバには未だ侵入することができずにいた。
てっとりばやくドメインを攻略するには、やはりドメインコントローラに侵入することが肝要だ。
しかし既知の脆弱性を検知できない以上、何か他の手を打つしかない。
そこでオレは少し思案を巡らせてみた。
PCはドメインコントローラに問い合わせられない場合でも、ドメインアカウントでログインすることができる。
(場合によっては不可)
ということはドメインアカウントのパスワードはローカルにもキャッシュされるのではないか。
この予想は大当たりで、暗号化されたパスワードは確かにローカルにもキャッシュされていた。
これはMSCACHEと呼ばれるものだ。
さっそくMSCACHEについて調べてみたが、これが一筋縄ではいかないことが分かった。
なぜならこれを効果的にクラックする方法がなかったからだ。
MSCACHE自体を取り出すのは造作もないことなのだが、暗号化にはsaltが使われていた。
このsaltはまさに料理における塩のようなもので、"ひとつまみ"(ランダム)という分量が非常に厄介なのだ。
正確な塩(salt)の分量が分からなければ、残りのレシピ(パスワード)を割り出すことはできない。
調査の結果、どうやらsaltにはユーザ名とドメイン名が使われているらしかった。
(間違ってたらスマン。なんせ情報が少なくて)
つまり、同じパスワードでもアカウントやドメインによってこのMSCACHEの値は変化することになる。
これは、Rainbow Tableを自分で生成するか、ブルートフォースまたは辞書攻撃を行なわなければならないことを意味していた。
要するに、どれを選ぶにせよ時間がかかるということだ。
(オレはドメインのAdministratorのパスワードが13文字だということを以前聞いた覚えがあったので、どの方法も現実的ではないと判断した。)
結局オレはMSCACHEによるクラックを諦め、別の方法を考えるしかなかった。
-つづく-
ほんのちょっと解説。
まぁ、今回はひとつの失敗談でしたとさ(笑
ちなみにMSCACHEではそのPCに一度でもログインしたアカウントの最後にログインした時のパスワードしかキャッシュされない。
実はMSCACHEはローカルに保存しない設定にすることもでき、この場合はドメインコントローラに問い合わせできない状況ではドメインアカウントではログインできない。
あと、Rainbow Tableは必ずしも自分で生成する必要はない。
偶然同じドメイン名とユーザ名をsaltにしたRainbow Tableがあれば、それをダウンロードすればいい。
(ユーザ名はAdministratorでいいとして、ドメイン名が一致する確率ってどんなもんだろな。笑)
それでなくても生成を代行してくれるような心優しい(?)方々もネット上にはいるので、必要があれば依頼してみるのも手なのかもしれない。
保証はできないけど。
※あ、勝手に監査の真似事とかやると犯罪者になります。この件は合意の元でやってたんだから勘違いしないでよねっ。