Open10

[Docker]KaliLinux on VNC (for Mac)

ピン留めされたアイテム
NeoTechNeoTech

やりたいこと

CTF 用の環境をつくりたい
Kali Linux を GUI で使いたい
Docker 上に環境を作りたい

環境

macOS 14.1.1(Sonoma)
Docker on Desktop がインストール済み

NeoTechNeoTech

Dockerのインストール

省略

Kali Linux のimageを取得

MacのTerminalを起動

$ sudo systemctl start docker
$ docker pull kalilinux/kali-rolling

または、
「Kitematic」をダウンロードして、
kali-rollingのイメージをダウンロードしても良い

コンテナ起動

$ sudo docker run -itd --rm kalilinux/kali-rolling

Dockerのソフト上でも、
imageとコンテナが作成されている

NeoTechNeoTech

Kaliのコンテナにログイン

docker exec -it [CONTAINER_ID] zsh

起動中のコンテナIDは、

doker ps

などで確認可能

ツールなどインストール

apt update
apt install -y zsh
apt install -y kali-linux-core kali-defaults kali-tools-web

kaliユーザー作成

「ctrl 」を押しながら
「P」キー → 「Q」キーの順番に押して
コンテナを起動したままログアウトする

adduser kali
usermod -G sudo kali
NeoTechNeoTech

コンテナにログイン

docker attach [CONTAINER_ID]

GUIとVNCをインストール

・GUI→kali-desktop-xfce
・VNC→x11vnc
をインストール

apt install -y kali-desktop-xfce x11vnc xvfb novnc dbus-x11

諸々インストール済みのコンテナをイメージとして新規保存

今後、再度作る手間を省くためにイメージとして保存しておく

dockerコマンドは「ctrl 」を押しながら「P」キー → 「Q」キーでログアウトして実行

イメージの名前は今回は「kali-xfce 」(適宜お好みで)

docker commit CONTAINER_ID kali-xfce

元のイメージは削除(任意)

docker container stop [CONTAINER_ID]
NeoTechNeoTech

保存したイメージから再接続する際はここから実行

コンテナ起動

・ポート 5905:5900
・コンテナ名 kali-xfce
・kaliユーザー名 kali

docker run -p "5905:5900" -it --rm kali-xfce zsh -c 'su - kali'

コンテナにログイン状態になる

設定

コンテナにログイン状態で実行

export DISPLAY=:1
Xvfb :1 -screen 0 1280x720x24 &


この状態で、下記のコマンドをそのまま入力して実行

GUIとVNC起動

startxfce4 & x11vnc -display :1 -xkb -forever -shared -repeat -listen 0.0.0.0 -nopw -reopen

NeoTechNeoTech

ボリュームの永続化

コンテナは終了しちゃうと初期化されるため、
少なくともホームディレクトリだけは永続化する。

docker volume create kali-xfce
NeoTechNeoTech

noCVNでの接続

できていないので調査必要。
とりあえず、結果は残す
また、これをやるとVNCViewerでのインストールもできなくなるかもしれない。
その場合は、途中保存したイメージからコンテナ作成からやり直すことになるかも?

noVNC サーバー構築

Quick Tutorial: How to Install Git on Kali Linux
kali linuxでVNCサーバーにnovncで接続する

コンテナ上で実行

 git clone https://github.com/novnc/noVNC.git 
cd noVNC/utils
./novnc_proxy --vnc localhost:5900

実行すると表示されるURLにブラウザからアクセス

http://3e4667ce2ca5:6080/vnc.html?host=3e4667ce2ca5&port=6080

(再現できなかったので、以上のコマンド以外にも何かやらないと、
下記のようにアクセスできないかもしれない。調査必要)



画面開くがTSLの証明がないとかで無理

Tiger VCNでもやってみた

Failed to connect to server #1392
How To Install tigervnc-viewer on Kali Linux

sudo apt -y install tigervnc-viewer
vncviewer

→TigerVNC Viewer v1.13.1
Built on: 2024-01-06 19:53
Copyright (C) 1999-2022 TigerVNC Team and many others (see README.rst)
See https://www.tigervnc.org for information on TigerVNC.
Can't open display:

で無理。