前回までのあらすじ


セキュリティ監査を任されることとなったオレは、とりあえず外部(インターネット)からの攻撃を試みた。


しかし、これといった脆弱性は存在しなかったため、内部(イントラネット)からの攻撃にシフトすることにした。



まず、カンタンにその企業の当時の環境を説明しておこう。


その企業のイントラネットは大きく分けて3つのセグメントに分かれていた。


内訳は、第1フロアのネットワーク、第2フロアのネットワーク、そしてサーバルームのネットワークだ。


第1フロア・第2フロアのネットワークには社員のPCが接続され、サーバルームにはサーバ類が接続されていた。


アカウントとコンピュータはActive Directoryによって管理されていた。



まず最初に目をつけたのは社員のPCに関するある共通点だった。


それはローカルマシンのAdministratorに、統一された周知のパスワードを使用していることだ。


オレに渡されていたThinkPadも例に漏れず、小文字のアルファベット6文字の統一パスワードだった。


そこでオレはまず「runas /user:thinkpad\administrator cmd」を実行し、そのパスワードを入力してみた。
(thinkpadはホスト名)


Audit01

(クリックで拡大)


すると、狙いどおりコマンドプロンプトがローカルのAdministrator権限で立ち上がった。


Audit02

(クリックで拡大)



ここですかさずコマンドプロンプトから「compmgmt.msc」を実行し、[コンピュータの管理] をローカルのAdministrator権限で起動した。
(ちなみに、Administrator権限で実行されていることは [タスクマネージャ] の [プロセス] タブで確認できる)


ここでコンピュータの管理を起動したのには2つの理由があった。


1つは自分のドメインアカウントをローカルのAdministratorsグループに所属させること。


Audit02

(クリックで拡大)


これでこのマシンに自由にツールをインストールし、実行できるようになる。


そしてもう1つは [別のコンピュータへ接続] の機能を使って、他のマシンの設定を変更すること。


Audit03
(クリックで拡大)


これを使えば、他のマシンのサービスを起動したり、新しいユーザや共有フォルダを作成することもできる。


いくつかのマシンでtelnetサービスを起動し、先程のコマンドプロンプトでtelnetを実行してログインしてみた。


しかし、もちろん気付いている人は一人もいなかった



-つづく-



か・い・せ・つ。


まずいただけないのは、ローカルのAdministratorのパスワードが一般社員に知られてしまっていること。


これではいつでも権限を昇格し、マシンを意のままに使用されてしまうことになる。


そして、すべてのPCでローカルのAdministratorが同じパスワードを設定されているのもマズい。


2台のマシンに同じ名前で同じパスワードのローカルユーザが存在する場合、その権限を使用すれば認証を抜けて相互にアクセス出来てしまう
(これはUNIX系OSも同じ)


環境が許すならローカルのAdministratorは無効にしてしまうべきだろう。


ちなみにrunasコマンドを使わずにローカルのAdministratorでログインして同じことをしても結果は変わらない。


が、NetEnumのようにログインしているユーザを検知できるツールも存在する為、当時は攻撃者の観点であえてこの手法をとった。

(効果があったかは疑問だが)




※あ、勝手に監査の真似事とかやると犯罪者になります。この件は合意の元でやってたんだから勘違いしないでよねっ