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

askubuntu.com

共用フォルダー設定

ゲストとホストとでファイルを相互にコピーできるように共用フォルダーを作成した。 本当はドラッグアンドドロップできるようにしたかったが、うまく動かなかった。

qiita.com

ツール

共通

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 

poppycompass.hatenablog.jp

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

www.zombie-hunting-club.com

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

参考資料