概要
M1MacでHack the Box攻略用のKali-linuxをDocker-compose上で動作させます。
完了形は、Docker上のKali-linuxでHack the BoxのOpenVPNを接続し、10.10.10.10に導通を確認したら成功です。
環境など
macOS, Docker Desktop, Docker-composeのバージョンは以下の通りです。
➜ workspace git:(main) ✗ sw_vers
ProductName: macOS
ProductVersion: 14.6.1
BuildVersion: 23G93
➜ workspace git:(main) ✗ docker version
Client:
Version: 27.2.0
API version: 1.47
Go version: go1.21.13
Git commit: 3ab4256
Built: Tue Aug 27 14:14:45 2024
OS/Arch: darwin/arm64
Context: desktop-linux
Server: Docker Desktop 4.34.0 (165256)
Engine:
Version: 27.2.0
API version: 1.47 (minimum version 1.24)
Go version: go1.21.13
Git commit: 3ab5c7d
Built: Tue Aug 27 14:15:41 2024
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: 1.7.20
GitCommit: 8fc6bcff51318944179630522a095cc9dbf9f353
runc:
Version: 1.1.13
GitCommit: v1.1.13-0-g58aa920
docker-init:
Version: 0.19.0
GitCommit: de40ad0
➜ workspace git:(main) ✗ docker-compose version
Docker Compose version 2.29.2
Docker-composeの準備
まず、作業ディレクトリを確保します。Terminalで以下のコマンドを実行してください。
mkdir workspace
cd workspace
touch Dockerfile
touch docker-compose.yml
mkdir HTB
作成した、Dockerfile
とdocker-compose.yml
に以下のコードをコピペしてください。
FROM kalilinux/kali-rolling:arm64
# Update package list and install essential packages
RUN apt update && apt upgrade -y && apt install openvpn -y
# Set the working directory
WORKDIR /root/workspace
version: "3.8"
services:
kali:
image: kalilinux/kali-rolling:arm64
container_name: kali_container
cap_add:
- NET_ADMIN
ports:
- "1337:1337/udp"
- "443:443/tcp"
devices:
- /dev/net/tun
volumes:
- ./workspace:/root/workspace # ホストの./workspaceをコンテナの/root/workspaceにマウント
tty: true
stdin_open: true
restart: unless-stopped
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
docker-compose.yml
を格納しているディレクトリで以下のコマンドを実行し、KaliのBashに入ってください。
docker-compose up -d
docker exec -it kali_container /bin/bash
以下からはKali上で実行するコマンドです。
apt install sudo -y
sudo apt upgrade -y
sudo apt update -y
sudo apt install kali-tools-top10 -y
sudo apt install openvpn -y
Hack the boxのOpenVPNに接続する
HTBのHomeにアクセスし、画像の矢印→の通りに操作して下さい。
まずは、「CONNECT TO HTB」をクリック
「Machines」をクリック
「OpenVPN」をクリック
1つ目は「US」か「EU」、2つ目は適当で、3つ目はUDPとTCPも好み、4つ目でダウンロードする。
するとlab_{username}.ovpn
というファイルが手に入る。そして、先ほど作成したworkspace/HTB
に保存してください(Macで操作して大丈夫です)。
KaliでOpenVPNに接続する
KaliのBashで以下のコマンドを実行してください。lab_{username}.ovpn
のファイル名を変更することだけ気をつけてください。
sudo sysctl net.ipv6.conf.all.disable_ipv6=0
cd /root/workspace/HTB
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun
sudo openvpn lab_{username}.ovpn
VPNのログが表示され続けられるため、タブを消去せず、新しいTerminalを開いてKaliに入ってください。
cd workspace
docker exec -it kali_container /bin/bash
cd /root/workspace/HTB
curl 10.10.10.10
curl 10.10.10.10
でHTMLからflag{??????????_????????}
が取れたら成功です。お疲れ様でした。
上手くいかない時
- Dockerのバージョンが低くてだめだった場合は以下の「Use the new Virtualization framework」にチェックボックスを入れてみてください。
- HTBのOpenVPNのサーバーを変更してみてください。通信方式が若干異なるので画像以外でも試してみてください。
おわりに
Qiitaで記事を書き慣れていないため、改善点などがあったらコメントしてください。また、上手くVPNが繋がらなかった時も、是非コメントしてください!解決して、より良い記事にして行きましょう!