概要
バイナリ(実行ファイル)解析用PythonパッケージAngrを中心とした、CTF用のコマンド類をまとめてインストールしたコンテナを作って、Imageファイルにしておくと何かと便利かなと思ったので、作り方を記録しておく。
手順
以下の作業はWindows10上のVirtualBoxで稼働するUbuntuで検証。
Ubuntu上でUbuntuコンテナを作成
[端末]を起動し、以下のコマンドを実行。
docker run -it --name ubuntu_base ubuntu
apt update
Ubuntuコンテナにいろいろinstall
python3
apt install python3
apt install python3-pip
Angr
pip3 install angr
イメージ作成
コンテナを停止し、状態を確認。Dockerイメージを作成
exit
docker ps
docker ps -a
docker commit ubuntu_base ubuntu4ctf1
作成結果を確認した後、イメージをファイルに出力。
出力ファイルを圧縮して、最終確認。
docker images
docker save ubuntu4ctf1 -o ubuntu4ctf1.tar
zip ubuntu4ctf1.zip ubuntu4ctf1.tar
ls -la ubuntu4ctf1*
コマンド追加
とりあえず、できたみたいなので、コマンドを追加してみる。
コンテナの状態を確認してから、再度コンテナを起動。
docker images
docker ps
docker ps -a
docker run -it --name ubuntu4ctf1_base ubuntu4ctf1
gdbの追加
apt install gdb
yを入力し[Enter]キーを押下。
6を入力し、[Enter]キーを押下。
[Enter]キーを押下。
79を入力し、[Enter]キーを押下。
その他
同じ要領で以下のコマンドをインストール
apt install strace
apt install ltrace
apt install netcat
apt install curl
apt install nmap
イメージ作成
exit
docker ps
docker ps -a
docker commit ubuntu4ctf1_base ubuntu4ctf2
作成結果を確認後、イメージをファイルに出力
docker images
docker save ubuntu4ctf2 -o ubuntu4ctf2.tar
zip ubuntu4ctf2.zip ubuntu4ctf2.tar
ls -la ubuntu4ctf2*
イメージからコンテナを作成
mkdir d_share
docker run -it --mount type=bind,src=$PWD/d_share,dst=/tmp/share --name ctf2 ubuntu4ctf2
別マシンの別OS上で稼働
CentOS8をインストールした環境には、Dockerと互換のpodmanがインストールされている。
作成したコンテナが正しく動作するか検証する。
以下の作業はWindows10上のVirtualBoxで稼働するCentOSで検証。
cp /tmp/ubuntu4ctf2.zip .
unzip ubuntu4ctf2.zip
podman images
podman ps -a
podman load -i ubuntu4ctf2.tar
podman images
podman ps -a
podman run -it ubuntu4ctf2
python3
import angr
exit()
参考URL