概要
tryhackme(ハッキング練習サイト)で遊ぶにはKali Linuxが欲しくなりますね。
Mac だとUTM(仮想環境ソフト)を使うのがお手軽でしょうか。無料だし
しかし、今回はdockerで遊んでみることにします。
tryhackmeで遊ぶには、VPNに接続する必要があります。
DockerコンテナからOpenVPNに接続するには、一手間必要なのでそちらを紹介します!
OpenVPN接続できるコンテナ作成方法
Docker環境の構築方法記事にしております。
こちも参考にしてみください。
まずは、Kali Linuxのイメージをダウンロードします。
docker pull kalilinux/kali-rolling
下記コマンドを実行し、コンテナを作成します。
docker run -it --cap-add=NET_ADMIN --device=/dev/net/tun --name kalilinux kalilinux/kali-rolling
上記コマンド 補足
docker run -it –cap-add=NET_ADMIN –device=/dev/net/tun –name コンテナ名 dockerイメージ
作成が完了したらコンテナに入ります。
docker exec -it kalilinux /bin/bash
下記コマンドでアップデート後、OpenVPNをインストールします。
apt update
apt-get upgrade
OpenVPNのインストール
apt install openvpn
そしたらホストのターミナルより、XXXXX.ovpnファイルコンテナに転送します。
XXXXX.ovpnがあるディレクトリに移動後(cdコマンド)、下記コマンドを実行します。
homeに転送することにします。
XXXXX.ovpnは、try hack meのAccessページよりダウンロード入手できます。
1.右上のアカウントアイコンを押す
2.XXXXX.ovpnをダウンロード!
下記リンクの公式ページでも解説しているので、参考にしてみると良いでしょう。
docker cp ./XXXXX.ovpn kalitest:/home
下記コマンドで接続します!
openvpn ./XXXXX.ovpn
成功!
メッセージ:Protocol options: explicit-exit-notify 3
接続状態になります。
あとは別のターミナルを立ち上げ、そこから同じコンテナに入れば色々できるというわけです。
色々やっちゃってください〜
ちゃんと接続できるかは、なんでも良いのでtry hack me でマシンを立ち上げpingを送信してみてください。
※pingを実行するのにパッケージのインストールが必要なので注意!
apt-get install iputils-ping net-tools
失敗例
下記コマンドで作成したコンテナからOpenVPNに接続してみます。
docker run -it -d --name kalitest -p 80:80 -p 443:443 -p 1194:1194 kalilinux/kali-rolling
作成が完了したらコンテナに入ります
docker exec -it kalitest /bin/bash
下記コマンドでアップデート後、OpenVPNをインストールします。
apt update
apt-get upgrade
OpenVPNのインストール
apt install openvpn
そしたらホストのターミナルより、XXXXX.ovpnファイルコンテナに転送します。
XXXXX.ovpnがあるディレクトリに移動後、下記コマンドを実行します。
homeに転送することにします。
docker cp ./XXXXX.ovpn kalitest:/home
下記コマンドで接続を開始しますが、、、
openvpn ./XXXXX.ovpn
エラーメッセージ
ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
接続に失敗です。
デフォルトだとブリッジモードになるので、ホストのネットワークから隔離されるため発生するエラーです。
ブリッジモード(デフォルト): コンテナは仮想ブリッジネットワークに接続され、他のコンテナやホストネットワークとの通信が可能になります。
ホストモード: コンテナはホストマシンのネットワーク名前空間を共有するため、ホストのネットワークインターフェースとIPアドレスに直接アクセスできます。
なしモード: コンテナは他のコンテナとホストネットワークから隔離され、ネットワーク接続は明示的に設定されない限り行われません。
カスタムネットワーク: コンテナはユーザー定義のネットワークに接続され、ネットワーク設定と通信に関するより詳細な制御が可能になります。
Gemini
https://docs.docker.jp/index.html
bridge
: デフォルトのネットワーク・ドライバです。ネットワーク作成時にドライバを指定しなければ、このネットワークになります。 通常、ブリッジ・ネットワークは、アプリケーションがスタンドアロン・コンテナ内で動作する時、このコンテナが通信するために使います 。詳しくは ブリッジ・ネットワーク をご覧ください。
まとめ
仮想環境もいいのですが、個人的にはdockerの方が手軽なので今回紹介してみました!
try hack meはセキュリティについて楽しく学べるのでおすすめです。
一応注意ですが、ハッキングは犯罪なので悪用厳禁です。(try hack meで遊ぶのはOK)
管理人は一切の責任を持ちません。