├── .travis.yml └── linux-ctf ├── Vagrantfile ├── conf ├── setup.conf └── tools.conf ├── lib └── utils.sh ├── setup.sh └── tools ├── common └── vim │ └── install └── ctf ├── angr └── install ├── apktool └── install ├── binwalk └── install ├── capstone └── install ├── checksec └── install ├── foremost └── install ├── foresight └── install ├── frida └── install ├── gdb └── install ├── ltrace └── install ├── metasm └── install ├── metasploit └── install ├── netzob └── install ├── nmap └── install ├── peda └── install ├── pwntools └── install ├── qemu └── install ├── radare2 └── install ├── scalpel └── install ├── scapy └── install ├── sqlmap └── install └── strace └── install /.travis.yml: -------------------------------------------------------------------------------- 1 | dist: trusty 2 | 3 | install: 4 | - bash linux-ctf/setup.sh 5 | -------------------------------------------------------------------------------- /linux-ctf/Vagrantfile: -------------------------------------------------------------------------------- 1 | # -*- mode: ruby -*- 2 | # vi: set ft=ruby : 3 | 4 | Vagrant.configure(2) do |config| 5 | config.vm.define "ctf-linux32", primary: true do |ctf32| 6 | ctf32.vm.box = "ubuntu/trusty32" 7 | end 8 | 9 | config.vm.define "ctf-linux64" do |ctf64| 10 | ctf64.vm.box = "ubuntu/trusty64" 11 | end 12 | 13 | config.ssh.forward_x11 = true 14 | config.vm.provider "virtualbox" do |vb| 15 | vb.memory = "2048" 16 | end 17 | 18 | 19 | config.vm.provision "file", source: "tools", destination: "tools" 20 | config.vm.provision "file", source: "conf", destination: "conf" 21 | config.vm.provision "file", source: "lib", destination: "lib" 22 | config.vm.provision "file", source: "setup.sh", destination: "setup.sh" 23 | config.vm.provision "shell", path: "setup.sh", privileged: false 24 | end 25 | -------------------------------------------------------------------------------- /linux-ctf/conf/setup.conf: -------------------------------------------------------------------------------- 1 | 2 | export LOCAL_PATH="/usr/local" 3 | export SRC_LOCAL_PATH="${LOCAL_PATH}/src" 4 | export BIN_LOCAL_PATH="${LOCAL_PATH}/bin" 5 | 6 | export OPT_PATH="/opt" 7 | 8 | export SYSTEM_RUBY_VERSION="ruby-2.1.3" 9 | export SYSTEM_RUBY_GEMSET="global" 10 | 11 | sudo mkdir -p ${LOCAL_PATH} ${BIN_LOCAL_PATH} ${SRC_LOCAL_PATH} ${OPT_PATH} -------------------------------------------------------------------------------- /linux-ctf/conf/tools.conf: -------------------------------------------------------------------------------- 1 | common/vim 2 | ctf/apktool 3 | #ctf/angr 4 | ctf/binwalk 5 | ctf/capstone 6 | ctf/checksec 7 | ctf/foremost 8 | ctf/foresight 9 | ctf/frida 10 | ctf/gdb 11 | ctf/ltrace 12 | #ctf/metasm 13 | #ctf/metasploit 14 | ctf/netzob 15 | ctf/nmap 16 | ctf/peda 17 | ctf/pwntools 18 | ctf/qemu 19 | ctf/radare2 20 | ctf/scalpel 21 | ctf/scapy 22 | ctf/sqlmap 23 | ctf/strace 24 | -------------------------------------------------------------------------------- /linux-ctf/lib/utils.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sudo apt-get install -y --no-install-recommends wget tar unzip git subversion python-pip python-dev > /dev/null 4 | 5 | function install-packages { 6 | packages=$@ 7 | sudo apt-get install -y --no-install-recommends $packages > /dev/null 8 | } 9 | 10 | function install-pip { 11 | pip=$@ 12 | sudo pip install $@ > /dev/null 13 | } 14 | 15 | function download-git { 16 | git_url=$1 17 | git_name=$(basename $1 | cut -d . -f1) 18 | sudo git clone --depth 1 $1 ${SRC_LOCAL_PATH}/${git_name} > /dev/null 19 | P=${SRC_LOCAL_PATH}/${git_name} 20 | } 21 | 22 | function download-svn { 23 | svn_url=$1 24 | svn_name=$(basename $1 | cut -d . -f1) 25 | sudo svn co $1 ${SRC_LOCAL_PATH}/${git_name} > /dev/null 26 | P=${SRC_LOCAL_PATH}/${git_name} 27 | } 28 | 29 | function download-url { 30 | url=$1 31 | name=$(basename $1) 32 | ext=$(basename $1 | cut -d . -f2-) 33 | sudo wget $1 -O ${SRC_LOCAL_PATH}/${name} -o /dev/null > /dev/null 34 | cd ${SRC_LOCAL_PATH} ; extract ${name} > /dev/null ; cd - 35 | P=${SRC_LOCAL_PATH}/${name} 36 | } 37 | 38 | function make-install { 39 | opts=$@ 40 | sudo ./configure --prefix=${LOCAL_PATH} ${opts} || echo "./configure is not needed">/dev/null 41 | sudo make > /dev/null 42 | sudo make install > /dev/null 43 | } 44 | 45 | function extract() 46 | { 47 | if [ -f $1 ] ; then 48 | case $1 in 49 | *.tar.bz2) 50 | sudo tar xvjf $1 51 | ;; 52 | *.tar.gz) 53 | sudo tar xvzf $1 54 | ;; 55 | *.bz2) 56 | sudo bunzip2 $1 57 | ;; 58 | *.rar) 59 | sudo unrar x $1 60 | ;; 61 | *.gz) 62 | sudo gunzip $1 63 | ;; 64 | *.tar) 65 | sudo tar xvf $1 66 | ;; 67 | *.tbz2) 68 | sudo tar xvjf $1 69 | ;; 70 | *.tgz) 71 | sudo tar xvzf $1 72 | ;; 73 | *.zip) 74 | sudo unzip $1 75 | ;; 76 | *.Z) 77 | sudo uncompress $1 78 | ;; 79 | *.7z) 80 | sudo 7z x $1 81 | ;; 82 | *) 83 | echo "'$1' cannot be extracted via extract" 84 | ;; 85 | esac 86 | else 87 | echo "'$1' is not a valid file" 88 | fi 89 | } 90 | -------------------------------------------------------------------------------- /linux-ctf/setup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | BASE_PATH=$(pwd) 4 | 5 | set -e 6 | set -o pipefail 7 | set -x 8 | 9 | sudo apt-get update > /dev/null 10 | #sudo apt-get upgrade -y > /dev/null 11 | 12 | source conf/setup.conf 13 | source lib/utils.sh 14 | 15 | for tool in `cat conf/tools.conf | egrep -v ^#`; do 16 | echo -e "\e[1mInstalling... ${tool}\e[0m" 17 | 18 | conf=${BASE_PATH}/tools/${tool}/conf 19 | install=${BASE_PATH}/tools/${tool}/install 20 | 21 | if [ -f $conf ]; then 22 | source $conf > /dev/null 23 | fi 24 | 25 | if [ -f $install ]; then 26 | source $install >/dev/null 27 | fi 28 | done 29 | -------------------------------------------------------------------------------- /linux-ctf/tools/common/vim/install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | install-packages \ 4 | vim 5 | 6 | download-git https://github.com/amix/vimrc.git ; \ 7 | sudo ln -f -s ${P}/vimrcs/basic.vim /etc/vim/vimrc -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/angr/install: -------------------------------------------------------------------------------- 1 | #/bin/bash -e 2 | 3 | VIRTUAL_ENV=/opt/virtualenv/angr 4 | 5 | install-packages \ 6 | virtualenvwrapper \ 7 | python2.7-dev \ 8 | build-essential \ 9 | libxml2-dev \ 10 | libxslt1-dev \ 11 | libffi-dev \ 12 | cmake \ 13 | libreadline-dev \ 14 | python-qt4 \ 15 | python-sip \ 16 | python-pygraphviz 17 | 18 | sudo mkdir -p $VIRTUAL_ENV/lib/python2.7/site-packages/ ; \ 19 | sudo virtualenv $VIRTUAL_ENV 20 | sudo ln -s /usr/lib/python2.7/dist-packages/PyQt4 $VIRTUAL_ENV/lib/python2.7/site-packages/ ; \ 21 | sudo ln -s /usr/lib/python2.7/dist-packages/sip.so $VIRTUAL_ENV/lib/python2.7/site-packages/ ; \ 22 | sudo ln -s /usr/lib/pymodules/python2.7/pygraphviz $VIRTUAL_ENV/lib/python2.7/site-packages/ 23 | 24 | download-git https://github.com/angr/angr-dev ; cd ${P} ; \ 25 | sudo ./setup.sh -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/apktool/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | install-packages \ 4 | default-jre 5 | 6 | download-url https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool ; \ 7 | sudo mv ${P} ${BIN_LOCAL_PATH} 8 | 9 | download-url https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.0.2.jar ; \ 10 | sudo mv ${P} ${BIN_LOCAL_PATH}/apktool.jar 11 | 12 | sudo chmod 755 ${BIN_LOCAL_PATH}/apktool ${BIN_LOCAL_PATH}/apktool.jar -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/binwalk/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | download-git https://github.com/devttys0/binwalk.git ; cd ${P} ; \ 4 | sudo pip install -e . -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/capstone/install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | install-pip \ 4 | capstone 5 | -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/checksec/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | download-git https://github.com/slimm609/checksec.sh ; cd ${P} ; 4 | ls -s $PWD/checksec $BIN_LOCAL_PWD -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/foremost/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | download-url http://foremost.sourceforge.net/pkg/foremost-1.5.7.tar.gz ; cd ${SRC_LOCAL_PATH}/foremost-1.5.7 ; \ 4 | make-install 5 | -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/foresight/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | download-git https://github.com/ALSchwalm/foresight ; cd ${P} ; \ 4 | sudo python setup.py install 5 | -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/frida/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | install-pip \ 4 | frida -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/gdb/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | install-packages \ 4 | gdb \ 5 | gdb-multiarch -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/ltrace/install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | install-packages \ 4 | ltrace -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/metasm/install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | download-git https://github.com/jjyg/metasm.git ; cd ${P} ; \ 4 | echo "TODO" 5 | -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/metasploit/install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | MSF_PATH=${OPT_PATH}/metasploit-framework 4 | SYSTEM_RUBY_VERSION="ruby-2.1.3" 5 | SYSTEM_RUBY_GEMSET="global" 6 | 7 | MSF_PASSWORD=$(< /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-32}) 8 | MSF_PASSWORDTESTUSER=$(< /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-32}) 9 | 10 | sudo gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3 11 | curl -L https://get.rvm.io | sudo bash -s stable 12 | source /etc/profile.d/rvm.sh 13 | export rvmsudo_secure_path=1 14 | echo "export rvmsudo_secure_path=1" >> ~/.bash_profile 15 | 16 | RVM_BIN=`which rvm` 17 | 18 | sudo $RVM_BIN autolibs enable 19 | sudo $RVM_BIN install $SYSTEM_RUBY_VERSION --auto-dotfiles 20 | sudo $RVM_BIN use $SYSTEM_RUBY_VERSION@$SYSTEM_RUBY_GEMSET --default --create 21 | 22 | sudo git clone https://github.com/rapid7/metasploit-framework ${MSF_PATH} 23 | sudo $RVM_BIN install $(cat ${MSF_PATH}/.ruby-version) --auto-dotfiles 24 | cd ${MSF_PATH}; rvmsudo bundle install 25 | -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/netzob/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | install-packages \ 4 | python-dev \ 5 | python-impacket \ 6 | python-setuptools \ 7 | build-essential \ 8 | python-numpy \ 9 | libpcap-dev 10 | 11 | install-pip \ 12 | bintrees \ 13 | bitarray \ 14 | netaddr \ 15 | pcapy 16 | 17 | download-git https://dev.netzob.org/git/netzob ; cd ${P} ; \ 18 | sudo python setup.py build ; \ 19 | sudo python setup.py develop --user ; \ 20 | sudo ln -fs $PWD/netzob $BIN_LOCAL_PATH -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/nmap/install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | install-packages \ 4 | g++ \ 5 | autoconf \ 6 | libssl-dev 7 | 8 | download-svn https://svn.nmap.org/nmap ${SRC_LOCAL_PATH}/nmap ; cd ${P} ; \ 9 | make-install -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/peda/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | download-git https://github.com/longld/peda.git ; cd ${P} ; \ 4 | echo "source ${P}/peda.py" >> ~/.gdbinit -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/pwntools/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | install-pip \ 4 | pwntools -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/qemu/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | install-packages \ 4 | g++ \ 5 | libtool \ 6 | libglib2.0-dev \ 7 | pkg-config \ 8 | zlib1g-dev \ 9 | libpixman-1-dev \ 10 | libfdt-dev 11 | 12 | 13 | download-git git://git.qemu-project.org/qemu.git ; cd ${P} ; \ 14 | make-install -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/radare2/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | download-git https://github.com/radare/radare2.git ; cd ${P} ; \ 4 | make-install 5 | 6 | download-git https://github.com/radare/radare2-bindings.git -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/scalpel/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | 3 | install-packages \ 4 | scalpel -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/scapy/install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | install-pip \ 4 | scapy 5 | -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/sqlmap/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | install-packages \ 4 | libsqlite3-dev \ 5 | libmysqlclient-dev \ 6 | libpq-dev 7 | 8 | install-pip \ 9 | mysql \ 10 | psycopg2 \ 11 | pysqlite \ 12 | python-ntlm 13 | 14 | download-git https://github.com/sqlmapproject/sqlmap.git ; cd ${P} ;\ 15 | sudo ln -fs ${PWD}/sqlmap.py ${BIN_LOCAL_PATH} -------------------------------------------------------------------------------- /linux-ctf/tools/ctf/strace/install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | install-packages \ 4 | strace --------------------------------------------------------------------------------