├── Dockerfile ├── README.md ├── enviornment ├── bash │ ├── .bash_prompt │ └── .bashrc ├── tmux │ ├── .tmux.conf │ └── .tmux │ │ └── zoom └── vim │ ├── .vimrc │ └── install.sh └── hackerbox /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:18.04 2 | MAINTAINER zbasque@asu.edu 3 | 4 | # ----- Setup Enviornment ----- # 5 | # get basics 6 | USER root 7 | RUN apt-get update && apt-get install -y sudo sshfs bsdutils python3-dev \ 8 | libpq-dev pkg-config zlib1g-dev libtool libtool-bin wget automake autoconf coreutils bison libacl1-dev \ 9 | qemu-user qemu-kvm socat \ 10 | postgresql-client nasm binutils-multiarch llvm clang \ 11 | libpq-dev parallel libgraphviz-dev \ 12 | build-essential libxml2-dev libxslt1-dev git \ 13 | libffi-dev cmake libreadline-dev libtool netcat net-tools 14 | 15 | # rename main user to pwndevil 16 | USER root 17 | RUN useradd -s /bin/bash -m pwndevil 18 | CMD su - pwndevil 19 | 20 | # create a cool looking terminal 21 | WORKDIR /tmp 22 | RUN git clone https://github.com/pwndevils/pwnbox.git 23 | WORKDIR /tmp/pwnbox 24 | RUN git checkout master 25 | WORKDIR /home/pwndevil 26 | RUN cp /tmp/pwnbox/enviornment/bash/.bashrc /home/pwndevil/ && \ 27 | cp /tmp/pwnbox/enviornment/bash/.bash_prompt /home/pwndevil/ 28 | 29 | # install sudo 30 | RUN apt-get update && \ 31 | apt-get install sudo -y && \ 32 | echo "pwndevil ALL=NOPASSWD: ALL" > /etc/sudoers.d/pwndevil 33 | 34 | # install ipython3 35 | RUN apt-get install ipython3 -y 36 | 37 | # install angr 38 | RUN apt-get install python3-pip -y 39 | 40 | USER pwndevil 41 | RUN pip3 install --user angr 42 | 43 | # install CTF-Tools reqs 44 | USER root 45 | RUN apt-get install -y build-essential libtool g++ gcc \ 46 | texinfo curl wget automake autoconf python python-dev git subversion \ 47 | unzip virtualenvwrapper sudo git virtualenvwrapper ca-certificates 48 | 49 | # setup vim to be awesome 50 | RUN apt-get install vim -y 51 | 52 | USER pwndevil 53 | RUN mkdir /home/pwndevil/.vim/ && \ 54 | cp /tmp/pwnbox/enviornment/vim/.vimrc /home/pwndevil/.vimrc 55 | RUN git clone https://github.com/VundleVim/Vundle.vim.git /home/pwndevil/.vim/bundle/Vundle.vim 56 | # vim -E -u NONE -S /home/angr/.vim/vundle.vim +PluginInstall +qall > /dev/null 57 | # printf '\nworkon angr\n' >> /home/angr/.bashrc 58 | # #python3 /home/angr/.vim/bundle/youcompleteme/install.py --all 59 | RUN vim +PluginInstall +qall &>/dev/null 60 | # #/bin/bash /tmp/pwnbox/enviornment/vim/install.sh 61 | 62 | 63 | # ----- RE Tools ----- # 64 | USER root 65 | 66 | # install gdb 67 | RUN apt-get update && \ 68 | apt-get install gdb -y 69 | 70 | # install radare2 71 | WORKDIR /tmp 72 | RUN git clone https://github.com/radare/radare2.git && \ 73 | ./radare2/sys/install.sh 74 | 75 | # install wine & winedbg 76 | RUN apt-get update && \ 77 | apt-get install wine-stable -y 78 | 79 | 80 | # ----- PWN Tools ----- # 81 | USER pwndevil 82 | 83 | # install pwndbg 84 | RUN git clone https://github.com/pwndbg/pwndbg && \ 85 | cd pwndbg && \ 86 | ./setup.sh 87 | 88 | # install pwntools3 89 | RUN pip3 install --user pwntools 90 | RUN pip3 uninstall six -y && pip3 install --user six # fix for pwn bug 91 | 92 | # install ropper 3 93 | RUN pip3 install ropper 94 | 95 | # install ROPGadget 3 96 | RUN pip3 install --user ROPGadget 97 | 98 | 99 | # ----- Crypto Tools ----- # 100 | 101 | # install sage and numpy 102 | RUN pip3 install --user sagemath numpy 103 | 104 | 105 | # ----- CTF Tools @zardus ----- # 106 | 107 | # get the ctf tools repo 108 | RUN cd /home/pwndevil/ && git clone https://github.com/zardus/ctf-tools && \ 109 | cd ctf-tools 110 | 111 | # ----- Extra Tools ----- # 112 | USER root 113 | RUN apt-get update && apt-get install -y \ 114 | tmux \ 115 | xclip 116 | 117 | # ----- Terminator Tmux ----- # 118 | RUN mv /tmp/pwnbox/enviornment/tmux/.tmux.conf /home/pwndevil/.tmux.conf 119 | RUN mv /tmp/pwnbox/enviornment/tmux/.tmux /home/pwndevil/.tmux 120 | 121 | # sick sparky and team logo print! 122 | RUN echo "echo 'pwnbox is brought to you by: \n'" >> /home/pwndevil/.bashrc 123 | RUN echo 'base64 -d <<< "IF8gIChgLScpICAgICAuLT4gICA8LS4gKGAtJylfICBfKGAtJykgICAgKGAtJykgIF8gICAgICAoYC0nKSAgXyAgICAgICAgICAgICAgKGAtJykuLT4gCiBcLS4oT08gKSAoYChgLScpL2ApICAgXCggT08pICkoIChPTyApLi0+ICggT08pLi0vICAgICBfKE9PICkgKF8pICAgICAgPC0uICAgICggT08pXyAgIAogXy4nICAgIFwsLWAoIE9PKS4nLCwtLS4vICwtLS8gIFwgICAgLidfICgsLS0tLS0tLiwtLS4oXy8sLS5cICwtKGAtJyksLS0uICkgIChfKS0tXF8pICAKKF8uLi4tLScnfCAgfFwgIHwgIHx8ICAgXCB8ICB8ICAnYCctLi5fXykgfCAgLi0tLSdcICAgXCAvIChfLyB8ICggT08pfCAgKGAtJykvICAgIF8gLyAgCnwgIHxfLicgfHwgIHwgJy58ICB8fCAgLiAnfCAgfCkgfCAgfCAgJyB8KHwgICctLS4gIFwgICAvICAgLyAgfCAgfCAgKXwgIHxPTyApXF8uLmAtLS4gIAp8ICAuX19fLid8ICB8LicufCAgfHwgIHxcICAgIHwgIHwgIHwgIC8gOiB8ICAuLS0nIF8gXCAgICAgL18pKHwgIHxfLyh8ICAnX18gfC4tLl8pICAgXCAKfCAgfCAgICAgfCAgICwnLiAgIHx8ICB8IFwgICB8ICB8ICAnLScgIC8gfCAgYC0tLS5cLSdcICAgLyAgICB8ICB8Jy0+fCAgICAgfCdcICAgICAgIC8gCmAtLScgICAgIGAtLScgICAnLS0nYC0tJyAgYC0tJyAgYC0tLS0tLScgIGAtLS0tLS0nICAgIGAtJyAgICAgYC0tJyAgIGAtLS0tLScgIGAtLS0tLScg"' >> /home/pwndevil/.bashrc 124 | RUN echo "echo '\n\n'" >> /home/pwndevil/.bashrc 125 | RUN echo 'base64 -d <<< "ICAgICAgICAgICAgICYmICAgICAgICAgICAgICAKICAgICAgICAmJiAmJiYmJiAgICAgICAgICAgICAKICAgICAgICAmJiYmJiYmLCwmICAgICAgICAgICAKICAgICAgICAgJiYsLCYsLCYsJiAgICAgICAgICAKICAgICAmJiYgJiYsLCwsLCwsLCYgICAgICAgICAKICAgICYmJiYmJiYmLCwsLCYmJiwmICAgICAgICAKICAmJiYmJiYmJiYsLC4mJiYmJiwmICAgICAgICAKICAgICYmJiAgJiYsLCwsLCYsLCYmICAgICAgICAKJiYgICYmJiYmICYmJiYmJiwmJiYmICAgICAgICAKJiYmJiAgJiYsJiYmJiYmJiYmJiYmICAgICAmJiAKICAgICYmJiYmJiwmJiYmJiYmJiYmJiYmICYmJiAKICAgICYmJiAmJiYmLCYmJiYmJiYmJiYmJiYmJiAKICAmJiYmJiAgJiYmJiYsJiYmJiYmJiYmJiYmJiAKICYmJiAmJiYmJiYmJiAgJiwgJiYmICYmJiYmICAKICAgICAmJiYmJiAgICAgICYmJiYgICAgJiYgICAKICAgICAgICAgICAgICAgICAmJiwsICwsJiAgICAKICAgICAgICAgICAgICAgICAgICYsLCYgICwsICAKICAgICAgICAgICAgICAgICAgICwsICYsJiAgICYKICAgICAgICAgICAgICAgICAgICAmLCAgJiwmICAKICAgICAgICAgICAgICAgICAgICAgICwgICAmJg=="' >> /home/pwndevil/.bashrc 126 | RUN echo "\necho '\n\n'" >> /home/pwndevil/.bashrc 127 | 128 | 129 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # pwnbox 2 | pwnbox is a dockerized environment for quick reversing and pwning. Essentially, a command line VM for pwning. 3 | 4 | ## Installation 5 | Install [Docker](https://docs.docker.com/v17.12/install/). 6 | Since Docker is compatible with Windows, Linux, and OS X--with some caveats--pwnbox should be compatible with most OSes. 7 | once installed, run: 8 | ```bash 9 | docker pull pwndevils/pwnbox 10 | ``` 11 | 12 | ## Usage 13 | pwnbox follows all the same rules as a normal docker container. 14 | To run pwnbox: 15 | ```bash 16 | docker run -it --rm pwndevils/pwnbox 17 | ``` 18 | which will start the container, and delete it after usage. 19 | 20 | ### Mounting Volumes 21 | Often, we want to save data generated in pwnbox or simply use data stored on our host machine. 22 | To mount a volume from your host computer into pwnbox do: 23 | ```bash 24 | docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -it --rm -v /path/in/host/:/path/in/pwnbox/ pwndevils/pwnbox 25 | ``` 26 | 27 | 28 | -------------------------------------------------------------------------------- /enviornment/bash/.bash_prompt: -------------------------------------------------------------------------------- 1 | # .bashrc_tmp 2 | 3 | temp=$(tty) ; 4 | TTY=${temp:9} 5 | 6 | bash_prompt() { 7 | local RET=$? # set return value of last command MUST BE FIRST 8 | # emphasized (bolded) colors 9 | local RED="\[\033[0;31m\]" 10 | local BOLDRED="\[\033[1;31m\]" 11 | 12 | local GREEN="\[\033[1;32m\]" 13 | local BLUEGREEN="\[\033[38;5;81m\]" 14 | 15 | local BLUE="\[\033[1;34m\]" 16 | local LIGHTBLUE="\[\033[38;5;33m\]" 17 | local MAGENTA="\[\033[1;35m\]" 18 | 19 | local NONE="\[\033[0m\]" # unsets color to term's fg color 20 | 21 | local VENV="" 22 | if [ ! -z ${VIRTUAL_ENV+x} ]; 23 | then local VENV=" ${BLUEGREEN}[$(basename $VIRTUAL_ENV)]${NONE}"; 24 | fi 25 | # local TOPDIRS="$(basename $(dirname $PWD))/$(basename $PWD) " 26 | local RET_STR="${GREEN}\n$ " 27 | 28 | [ $RET -ne 0 ] && RET_STR="${BOLDRED}($RET) " 29 | 30 | PS1="${RED}\u@${LIGHTBLUE}\h:${VENV}${LIGHTBLUE}\w ${RET_STR}${NONE}" 31 | 32 | } 33 | PROMPT_COMMAND=bash_prompt 34 | 35 | 36 | -------------------------------------------------------------------------------- /enviornment/bash/.bashrc: -------------------------------------------------------------------------------- 1 | # ~/.bashrc: executed by bash(1) for non-login shells. 2 | # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) 3 | # for examples 4 | 5 | # If not running interactively, don't do anything 6 | case $- in 7 | *i*) ;; 8 | *) return;; 9 | esac 10 | 11 | # don't put duplicate lines or lines starting with space in the history. 12 | # See bash(1) for more options 13 | HISTCONTROL=ignoreboth 14 | 15 | # append to the history file, don't overwrite it 16 | shopt -s histappend 17 | 18 | # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) 19 | HISTSIZE=5000 20 | HISTFILESIZE=20000 21 | 22 | export TERM=xterm-256color 23 | 24 | # check the window size after each command and, if necessary, 25 | # update the values of LINES and COLUMNS. 26 | shopt -s checkwinsize 27 | 28 | # If set, the pattern "**" used in a pathname expansion context will 29 | # match all files and zero or more directories and subdirectories. 30 | #shopt -s globstar 31 | 32 | # make less more friendly for non-text input files, see lesspipe(1) 33 | [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" 34 | 35 | # enable color support of ls and also add handy aliases 36 | if [ -x /usr/bin/dircolors ]; then 37 | test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" 38 | alias ls='ls --color=auto' 39 | #alias dir='dir --color=auto' 40 | #alias vdir='vdir --color=auto' 41 | 42 | alias grep='grep --color=auto' 43 | alias fgrep='fgrep --color=auto' 44 | alias egrep='egrep --color=auto' 45 | fi 46 | 47 | # some more ls aliases 48 | alias ll='ls -alhF' 49 | alias la='ls -A' 50 | alias l='ls -CF' 51 | 52 | # Alias definitions. 53 | # You may want to put all your additions into a separate file like 54 | # ~/.bash_aliases, instead of adding them here directly. 55 | # See /usr/share/doc/bash-doc/examples in the bash-doc package. 56 | 57 | if [ -f ~/.bash_aliases ]; then 58 | . ~/.bash_aliases 59 | fi 60 | 61 | # enable programmable completion features (you don't need to enable 62 | # this, if it's already enabled in /etc/bash.bashrc and /etc/profile 63 | # sources /etc/bash.bashrc). 64 | if ! shopt -oq posix; then 65 | if [ -f /usr/share/bash-completion/bash_completion ]; then 66 | . /usr/share/bash-completion/bash_completion 67 | elif [ -f /etc/bash_completion ]; then 68 | . /etc/bash_completion 69 | fi 70 | fi 71 | # set PATH so it includes user's private bin if it exists 72 | if [ -d "$HOME/bin" ] ; then 73 | PATH="$HOME/bin:$PATH" 74 | fi 75 | 76 | if [ -f ~/.bash_prompt ]; then 77 | source ~/.bash_prompt 78 | else 79 | # set variable identifying the chroot you work in (used in the prompt below) 80 | if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then 81 | debian_chroot=$(cat /etc/debian_chroot) 82 | fi 83 | 84 | PS1='${debian_chroot:+($debian_chroot)}\[\033[01;35m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' 85 | fi 86 | 87 | #source /usr/share/virtualenvwrapper/virtualenvwrapper.sh 88 | 89 | if [ -f ~/.extra_bash_cfg ]; then 90 | source ~/.extra_bash_cfg 91 | fi 92 | 93 | -------------------------------------------------------------------------------- /enviornment/tmux/.tmux.conf: -------------------------------------------------------------------------------- 1 | #set tmux to split and move like Terminator 2 | bind-key -n C-E split-window -h 3 | bind-key -n C-O split-window -v 4 | bind-key -n 'M-Up' select-pane -U 5 | bind-key -n 'M-Left' select-pane -L 6 | bind-key -n 'M-Right' select-pane -R 7 | bind-key -n 'M-Down' select-pane -D 8 | # Window resizer like Terminator 9 | unbind C-x 10 | bind-key -n C-x run-shell ". ~/.tmux/zoom" 11 | 12 | # Make sure the mouse is useable 13 | set -g mouse on 14 | 15 | # Turn the status off 16 | set -g status off 17 | 18 | # Make the colors good 19 | set -g default-terminal "screen-256color" 20 | 21 | # Set copy and paste 22 | set -g mouse on 23 | bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'" 24 | bind -n WheelDownPane select-pane -t= \; send-keys -M 25 | bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M 26 | bind -T copy-mode-vi C-WheelUpPane send-keys -X halfpage-up 27 | bind -T copy-mode-vi C-WheelDownPane send-keys -X halfpage-down 28 | bind -T copy-mode-emacs C-WheelUpPane send-keys -X halfpage-up 29 | bind -T copy-mode-emacs C-WheelDownPane send-keys -X halfpage-down 30 | 31 | # To copy, left click and drag to highlight text in yellow, 32 | # once you release left click yellow text will disappear and will automatically be available in clibboard 33 | # # Use vim keybindings in copy mode 34 | setw -g mode-keys vi 35 | # Update default binding of `Enter` to also use copy-pipe 36 | unbind -T copy-mode-vi Enter 37 | bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -selection c" 38 | bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard" 39 | -------------------------------------------------------------------------------- /enviornment/tmux/.tmux/zoom: -------------------------------------------------------------------------------- 1 | #!/bin/bash -f 2 | currentwindow=`tmux list-window | tr '\t' ' ' | sed -n -e '/(active)/s/^[^:]*: *\([^ ]*\) .*/\1/gp'`; 3 | currentpane=`tmux list-panes | sed -n -e '/(active)/s/^\([^:]*\):.*/\1/gp'`; 4 | panecount=`tmux list-panes | wc | sed -e 's/^ *//g' -e 's/ .*$//g'`; 5 | inzoom=`echo $currentwindow | sed -n -e '/^zoom/p'`; 6 | if [ $panecount -ne 1 ]; then 7 | inzoom=""; 8 | fi 9 | if [ $inzoom ]; then 10 | lastpane=`echo $currentwindow | rev | cut -f 1 -d '@' | rev`; 11 | lastwindow=`echo $currentwindow | cut -f 2- -d '@' | rev | cut -f 2- -d '@' | rev`; 12 | tmux select-window -t $lastwindow; 13 | tmux select-pane -t $lastpane; 14 | tmux swap-pane -s $currentwindow; 15 | tmux kill-window -t $currentwindow; 16 | else 17 | newwindowname=zoom@$currentwindow@$currentpane; 18 | tmux new-window -d -n $newwindowname; 19 | tmux swap-pane -s $newwindowname; 20 | tmux select-window -t $newwindowname; 21 | fi 22 | -------------------------------------------------------------------------------- /enviornment/vim/.vimrc: -------------------------------------------------------------------------------- 1 | set nocompatible " be iMproved, required 2 | filetype off " required 3 | 4 | " set the runtime path to include Vundle and initialize 5 | set rtp+=~/.vim/bundle/Vundle.vim 6 | call vundle#begin() 7 | " alternatively, pass a path where Vundle should install plugins 8 | "call vundle#begin('~/some/path/here') 9 | 10 | " let Vundle manage Vundle, required 11 | 12 | 13 | " The following are examples of different formats supported. 14 | " Keep Plugin commands between vundle#begin/end. 15 | " plugin on GitHub repo 16 | Plugin 'tpope/vim-fugitive' 17 | " plugin from http://vim-scripts.org/vim/scripts.html 18 | " Plugin 'L9' 19 | " Git plugin not hosted on GitHub 20 | Plugin 'git://git.wincent.com/command-t.git' 21 | 22 | " git repos on your local machine (i.e. when working on your own plugin) 23 | "Plugin 'file:///home/gmarik/path/to/plugin' 24 | 25 | "mahaloz plugins 26 | "You complete me auto completer 27 | Plugin 'valloric/youcompleteme' 28 | Plugin 'VundleVim/Vundle.vim' 29 | Plugin 'airblade/vim-gitgutter' 30 | Plugin 'editorconfig/editorconfig-vim' 31 | Plugin 'itchyny/lightline.vim' 32 | Plugin 'junegunn/fzf' 33 | Plugin 'junegunn/fzf.vim' 34 | Plugin 'mattn/emmet-vim' 35 | Plugin 'scrooloose/nerdtree' 36 | "Plugin 'terryma/vim-multiple-cursors' 37 | "Plugin 'tpope/vim-eunuch' 38 | "Plugin 'tpope/vim-surround' 39 | Plugin 'scrooloose/syntastic' 40 | Plugin 'scrooloose/nerdcommenter' 41 | 42 | " make LaTex for vim 43 | Plugin 'lervag/vimtex' 44 | 45 | " for google-docsish vim 46 | Plugin 'FredKSchott/CoVim' 47 | 48 | " The sparkup vim script is in a subdirectory of this repo called vim. 49 | " Pass the path to set the runtimepath properly. 50 | Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} 51 | " Install L9 and avoid a Naming conflict if you've already installed a 52 | " different version somewhere else. 53 | " Plugin 'ascenator/L9', {'name': 'newL9'} 54 | 55 | " All of your Plugins must be added before the following line 56 | call vundle#end() " required 57 | filetype plugin indent on " required 58 | " To ignore plugin indent changes, instead use: 59 | "filetype plugin on 60 | " 61 | " Brief help 62 | " :PluginList - lists configured plugins 63 | " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate 64 | " :PluginSearch foo - searches for foo; append `!` to refresh local cache 65 | " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal 66 | " 67 | " see :h vundle for more details or wiki for FAQ 68 | " Put your non-Plugin stuff after this line 69 | 70 | 71 | "------Typing Config--------- 72 | filetype plugin indent on 73 | " show existing tab with 4 spaces width 74 | set tabstop=4 75 | " when indenting with '>', use 4 spaces width 76 | set shiftwidth=4 77 | " On pressing tab, insert 4 spaces 78 | set expandtab 79 | 80 | set number 81 | "---------------------------- 82 | " 83 | "-----Powerline Config------- 84 | set laststatus=2 85 | if !has('gui_running') 86 | set t_Co=256 87 | endif 88 | set noshowmode 89 | "---------------------------- 90 | " 91 | "--------NERDTree Config--------- 92 | "autocmd vimenter * NERDTree 93 | map :NERDTreeToggle 94 | autocmd StdinReadPre * let s:std_in=1 95 | autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif 96 | "-------------------------------- 97 | 98 | " Color fixing for tmux configs 99 | " Add this line to tmux: set -g default-terminal "screen-256color" 100 | set background=dark 101 | 102 | "-----Word Processor Support----- 103 | func! WordProcessor() 104 | " movement changes 105 | map j gj 106 | map k gk 107 | " formatting text 108 | " setlocal formatoptions=1 109 | setlocal noexpandtab 110 | setlocal wrap 111 | setlocal textwidth=80 112 | " setlocal linebreak 113 | " spelling and thesaurus 114 | setlocal spell spelllang=en_us 115 | set thesaurus+=/home/test/.vim/thesaurus/mthesaur.txt 116 | " complete+=s makes autocompletion search the thesaurus 117 | set complete+=s 118 | endfu 119 | com! WP call WordProcessor() 120 | 121 | "XXX:edit this line to add support for more file types 122 | au BufReadPost,BufNewFile *.md,*.txt,*.tex call WordProcessor() 123 | "------------------------------- 124 | -------------------------------------------------------------------------------- /enviornment/vim/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Install Vundle 3 | git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 4 | 5 | # Install Plugins 6 | echo | echo | vim +PluginInstall +qall &>/dev/null 7 | 8 | # Complie YouCompleteMe 9 | python3 ~/.vim/bundle/youcompleteme/install.py --all 10 | -------------------------------------------------------------------------------- /hackerbox: -------------------------------------------------------------------------------- 1 | Install: 2 | 3 | Reversing: 4 | z3 5 | angr (make this the base image) 6 | gef 7 | ghidra 8 | r2 9 | peda 10 | 11 | Pwning: 12 | pwntools 13 | ropper 14 | ROPgadget 15 | 16 | Crypto: 17 | sagemath 18 | numpy 19 | 20 | Swag: 21 | Terminator 22 | [My .bashrc] 23 | [My .terminator] 24 | [Eriks cool ssh layout] 25 | ipython2 & 3 26 | vim 27 | Vundle [with setup] 28 | 29 | --------------------------------------------------------------------------------