前回までのあらすじ
セキュリティ監査を任されることとなったオレは、とりあえず外部(インターネット)からの攻撃を試みた。
しかし、これといった脆弱性は存在しなかったため、内部(イントラネット)からの攻撃にシフトすることにした。
まず、カンタンにその企業の当時の環境を説明しておこう。
その企業のイントラネットは大きく分けて3つのセグメントに分かれていた。
内訳は、第1フロアのネットワーク、第2フロアのネットワーク、そしてサーバルームのネットワークだ。
第1フロア・第2フロアのネットワークには社員のPCが接続され、サーバルームにはサーバ類が接続されていた。
アカウントとコンピュータはActive Directoryによって管理されていた。
まず最初に目をつけたのは社員のPCに関するある共通点だった。
それはローカルマシンのAdministratorに、統一された周知のパスワードを使用していることだ。
オレに渡されていたThinkPadも例に漏れず、小文字のアルファベット6文字の統一パスワードだった。
そこでオレはまず「runas /user:thinkpad\administrator cmd」を実行し、そのパスワードを入力してみた。
(thinkpadはホスト名)
(クリックで拡大)
すると、狙いどおりコマンドプロンプトがローカルのAdministrator権限で立ち上がった。
(クリックで拡大)
ここですかさずコマンドプロンプトから「compmgmt.msc」を実行し、[コンピュータの管理] をローカルのAdministrator権限で起動した。
(ちなみに、Administrator権限で実行されていることは [タスクマネージャ] の [プロセス] タブで確認できる)
ここでコンピュータの管理を起動したのには2つの理由があった。
1つは自分のドメインアカウントをローカルのAdministratorsグループに所属させること。
(クリックで拡大)
これでこのマシンに自由にツールをインストールし、実行できるようになる。
そしてもう1つは [別のコンピュータへ接続] の機能を使って、他のマシンの設定を変更すること。
これを使えば、他のマシンのサービスを起動したり、新しいユーザや共有フォルダを作成することもできる。
いくつかのマシンでtelnetサービスを起動し、先程のコマンドプロンプトでtelnetを実行してログインしてみた。
しかし、もちろん気付いている人は一人もいなかった。
-つづく-
か・い・せ・つ。
まずいただけないのは、ローカルのAdministratorのパスワードが一般社員に知られてしまっていること。
これではいつでも権限を昇格し、マシンを意のままに使用されてしまうことになる。
そして、すべてのPCでローカルのAdministratorが同じパスワードを設定されているのもマズい。
2台のマシンに同じ名前で同じパスワードのローカルユーザが存在する場合、その権限を使用すれば認証を抜けて相互にアクセス出来てしまう。
(これはUNIX系OSも同じ)
環境が許すならローカルのAdministratorは無効にしてしまうべきだろう。
ちなみにrunasコマンドを使わずにローカルのAdministratorでログインして同じことをしても結果は変わらない。
が、NetEnumのようにログインしているユーザを検知できるツールも存在する為、当時は攻撃者の観点であえてこの手法をとった。
(効果があったかは疑問だが)
※あ、勝手に監査の真似事とかやると犯罪者になります。この件は合意の元でやってたんだから勘違いしないでよねっ。