ctfのための環境構築(ubuntu編)
はじめに
ctfのために構築した環境をメモしておく。 入れたツールはbinaryとpwn用。
OS
Ubuntu 18.0.4(64bit)をVirtualbox上に構築(ホストはwindows 10)。 Ubuntu 16.0.4(64bit)だといろいろエラーがでて面倒だったので最新版の18.0.4にした。
VM
vmware playerはvmware toolsがうまくインストールできず、面倒だったのでVirtual boxを使用した。
guest addtionsインストール
初回インストール時は「Please install the gcc make perl packages from your distribution.」と出たので、以下を実行してから再実行。
$ sudo apt-get update $ sudo apt-get install build-essential gcc make perl $ reboot
共用フォルダー設定
ゲストとホストとでファイルを相互にコピーできるように共用フォルダーを作成した。 本当はドラッグアンドドロップできるようにしたかったが、うまく動かなかった。
ツール
共通
git
$ sudo apt-get install git
java
$ sudo apt-get install default-jre
vim
$ sudo apt-get install vim
gdb
インストール
$sudo apt-get install gdb
設定(~/.gdbinit)
set disassembly-flavor intel set follow-fork-mode child set history save on set history filename ~/.gdb_history set history size 32768 set history expansion on define xall i r eip esp ebp eax x/5i $eip x/32xw $esp end document xall Stack and disas helper end define xenv x/20s *environ end document xenv Print the environment variables from the stack end
binary用
strace
$ sudo apt-get install strace
ltrace
$ sudo apt-get install ltrace
binutils
$ sudo apt-get install binutils
ghex
$ sudo apt-get install ghex
radare2
$ git clone https://github.com/radare/radare2 $ cd radare2 $ sudo sys/install.sh $ cd
dex2jar
$ wget http://sourceforge.net/projects/dex2jar/files/dex2jar-2.0.zip $ unzip $ cd dex2jar $ chmod u+x ./*.sh $ cd $ export PATH=$PATH:~/dex2jar-2.0
jd-gui
kali linuxには初めから入っているらしい。 windowsでも動くようなので無理にubuntuで動かす必要はないかも。
$ sudo apt-get install libgtk2.0-0:i386 $ sudo apt-get install libxxf86vm1:i386 $ sudo apt-get install libsm6:i386 $ sudo apt-get install lib32stdc++6 $ sudo apt-get install libatk-adaptor:i386 libgail-common:i386 $ sudo apt-get install libcanberra-gtk-module:i386 $ wget http://jd.benow.ca/jd-gui/downloads/jd-gui-0.3.5.linux.i686.tar.gz $ tar zxvf jd-gui-0.3.5.linux.i686.tar.gz $ export PATH=$PATH:~/jd-gui
pwn用
下準備
$ mkdir bin $ export PATH=~/bin:$PATH
checksec
$ git clone https://github.com/slimm609/checksec.sh.git $ cp checksec.sh/checksec $HOME/bin/checksec.sh
rp++
$ wget https://github.com/downloads/0vercl0k/rp/rp-lin-x64 -O $HOME/bin/rp
peda
$ sudo apt-get install build-essential gcc-multilib $ git clone https://github.com/longld/peda.git ~/peda $ echo "source ~/peda/peda.py" >> ~/.gdbinit
socat
$sudo apt-get install socat
pwntools
pipをpip install --upgrade pip
するとバージョン不整合がおきるのでやらない。
$ sudo apt-get install python2.7 python-pip python-dev git libssl-dev libffi-dev build-essential $ pip install pwntools