-
Notifications
You must be signed in to change notification settings - Fork 0
/
Vagrantfile
44 lines (36 loc) · 1.7 KB
/
Vagrantfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Vagrant.configure("2") do |config|
# Box
config.vm.box = "ubuntu/xenial32"
config.vm.hostname = "bafer32"
# Copy the scenario folders
(1..5).each do |n|
config.vm.provision :file, source: "scenario#{n}", destination: "~/"
end
# Setup
config.vm.provision :shell, :inline => "touch .hushlogin"
config.vm.provision :shell, :inline => "apt-get update"
config.vm.provision :shell, :inline => "apt-get install -y python python3-pip netcat-traditional gdb"
config.vm.provision :shell, :inline => "update-alternatives --set nc /bin/nc.traditional"
# Set ASLR to disabled by default
config.vm.provision :shell, :inline => "echo 'kernel.randomize_va_space=0' >> /etc/sysctl.conf"
config.vm.provision :shell, :inline => "sysctl -p"
# Install peda
config.vm.provision :shell, :inline => "git clone https://github.com/longld/peda.git /home/vagrant/peda"
config.vm.provision :shell, :inline => "echo 'source ~/peda/peda.py' >> /home/vagrant/.gdbinit"
# Install ROPgadget
config.vm.provision :shell, :inline => "pip3 install capstone"
config.vm.provision :shell, :inline => "git clone https://github.com/JonathanSalwan/ROPgadget"
config.vm.provision :shell, :inline => "cd ROPgadget && python3 setup.py install"
# Compile scenarios with suid and make helper scripts executable
(1..4).each do |n|
config.vm.provision "shell", inline: <<-SHELL
cd /home/vagrant/scenario#{n}
chmod +x build_p#{n}.sh
./build_p#{n}.sh
chown root:root p#{n}
chmod +s p#{n}
chmod +x exploit_p#{n}.sh
SHELL
end
config.vm.provision :shell, :inline => "chmod +x scenario4/remote_run_p4.sh"
end