iOS_の画像

Metasploitable3のdockerコンテナ化

勢いでMetasploitable3関係の記事を連投しています。こういう時ってあれですよね。他にやることあってもついついやってしまいますよね。エンジニアの性?的な?

vagrantはとても便利だし、手元に環境作りたいだけならこれで何の不自由も無いのですが、あくまで大規模な演習環境を目指してます。授業等で30人以上が一気に使える環境を作るとなると、やはり仮想マシンを立ち上げてって言うのはリソース足りなくなっちゃうし、各自のデバイス上で構築する場合もコンテナでできちゃうならずっと手軽に使い捨ての環境ができるだろうということで、dockerでも使えるようにしてみようと思います。

環境はmac上でやってますが、特に環境は関係なさそうな。
まずは既に作ってあるmetasploitable3の環境にログインして、ルート以下のファイルをtarで固めてみます。ただ、/bootとか/procとか、コンテナにはいらないだろうなと言うところは除外するため、適当なテキストファイルでリストを作ってそれを除外する感じでやってみます。
こちらを参考にしました。

この辺はもうそのまま見習ってしまいましょう。後で使いたいものが出てきたらその時はまた。

$ cat /tmp/exc.txt
/boot/*
/dev/*
/mnt/*
/proc/*
/sys/*
/tmp/*

$ sudo tar czpf /tmp/metasp3containerimage.tar.gz / -X /tmp/exc/txt

意外に早く終わった。容量は1.2GBぐらい。とりあえずSCPで取り出します。

$ scp /tmp/metasp3containerimage.tar.gz <User>@<Host IP>:~/

これでホスト側のユーザーディレクトリにコピーできたので、dockerコンテナイメージとしてインポートしてみます。

$ cat metasp3containerimage.tar.gz | docker import - r/metasploitable3
$ docker images
REPOSITORY           TAG       IMAGE ID        CREATED          SIZE
r/metasploitable3    latest    92035ed454cd    9 seconds ago    2.96GB

3GB近いイメージになってしまいましたが・・・・とりあえず出来上がったので、まずはとりあえずサービスとか何も考え無しに試し起動。

$ docker run -it --rm -d --name metasploitable3test r/metasploitable3 /bin/bash
$ docker ps
CONTAINER ID    IMAGE                COMMAND        CREATED          STATUS        PORTS    NAMES
94e56c0d6b53    r/metasploitable3    "/bin/bash"    6 seconds ago    Up 4 seconds           metasploitable3test

起動したあー。まあそりゃするだろうよっていう感じですが、一瞬で起動するのはやっぱり快感。あとはVMでも動いてるサービスを確認して、起動スクリプト作るかDockerfile作ってしまえば良いですね。試しに、metasploitable2のコンテナ用に作ってあったスクリプトをコンテナにコピーして実行したら、apacheは動いてくれました。DBとか動いてないのでdrupalとかは動いてないけど、chatとかphpmyadminとか、Webアプリ部分の起動は確認できたので、あとはちょっとずつサービス動くようにしていけたら問題無さそう。

画像1

ちなみに、dockerのネットワークはブリッジとか結構いじってしまってるので、このままやっても同じようにはならないかもしれませんが、コンテナ化までは問題無いと思います。


この記事が気に入ったらサポートをしてみませんか?