Skip to content

Commit 7ff4bca

Browse files
committed
Moved structure
1 parent d4016cf commit 7ff4bca

File tree

5 files changed

+97
-18
lines changed

5 files changed

+97
-18
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.pyc
2+
.vagrant

README.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,19 @@
22

33
A Course on Intermediate Level Linux Exploitation
44

5-
See the [syllabus](./src/syllabus.md) for an overview of the content covered.
5+
## Syllabus
6+
7+
0. Setting Up the Environment
8+
1. How Does a Linux Binary Work?
9+
2. Classic Exploitation Theory
10+
3. Linux Binary Protections
11+
4. The Classic Exploitation Technique
12+
4. Bypassing NX with Return Oriented Programming
13+
5. ASLR in Depth
14+
6. Bypassing ASLR with NX Disabled
15+
7. Bypassing ASLR/NX with Ret2GOT
16+
8. Bypassing ASLR/NX with Ret2Libc
17+
9. Memory Leaks
18+
10. Multi-Stage Ret2Libc
19+
11. Format String Vulnerabilties
20+
12. Bypassing Stack Canaries with Format String Bugs

Vagrantfile

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# -*- mode: ruby -*-
2+
# vi: set ft=ruby :
3+
4+
# All Vagrant configuration is done below. The "2" in Vagrant.configure
5+
# configures the configuration version (we support older styles for
6+
# backwards compatibility). Please don't change it unless you know what
7+
# you're doing.
8+
Vagrant.configure("2") do |config|
9+
# The most common configuration options are documented and commented below.
10+
# For a complete reference, please see the online documentation at
11+
# https://docs.vagrantup.com.
12+
13+
# Every Vagrant development environment requires a box. You can search for
14+
# boxes at https://atlas.hashicorp.com/search.
15+
config.vm.box = "ubuntu/xenial64"
16+
17+
# Disable automatic box update checking. If you disable this, then
18+
# boxes will only be checked for updates when the user runs
19+
# `vagrant box outdated`. This is not recommended.
20+
# config.vm.box_check_update = false
21+
22+
# Create a forwarded port mapping which allows access to a specific port
23+
# within the machine from a port on the host machine. In the example below,
24+
# accessing "localhost:8080" will access port 80 on the guest machine.
25+
# config.vm.network "forwarded_port", guest: 80, host: 8080
26+
27+
# Create a private network, which allows host-only access to the machine
28+
# using a specific IP.
29+
# config.vm.network "private_network", ip: "192.168.33.10"
30+
31+
# Create a public network, which generally matched to bridged network.
32+
# Bridged networks make the machine appear as another physical device on
33+
# your network.
34+
# config.vm.network "public_network"
35+
36+
# Share an additional folder to the guest VM. The first argument is
37+
# the path on the host to the actual folder. The second argument is
38+
# the path on the guest to mount the folder. And the optional third
39+
# argument is a set of non-required options.
40+
# config.vm.synced_folder "../data", "/vagrant_data"
41+
42+
# Provider-specific configuration so you can fine-tune various
43+
# backing providers for Vagrant. These expose provider-specific options.
44+
# Example for VirtualBox:
45+
#
46+
# config.vm.provider "virtualbox" do |vb|
47+
# # Display the VirtualBox GUI when booting the machine
48+
# vb.gui = true
49+
#
50+
# # Customize the amount of memory on the VM:
51+
# vb.memory = "1024"
52+
# end
53+
#
54+
# View the documentation for the provider you are using for more
55+
# information on available options.
56+
57+
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
58+
# such as FTP and Heroku are also available. See the documentation at
59+
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
60+
# config.push.define "atlas" do |push|
61+
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
62+
# end
63+
64+
# Enable provisioning with a shell script. Additional provisioners such as
65+
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
66+
# documentation for more information about their specific syntax and use.
67+
# config.vm.provision "shell", inline: <<-SHELL
68+
# apt-get update
69+
# apt-get install -y apache2
70+
# SHELL
71+
end

docs/syllabus.md

Lines changed: 0 additions & 17 deletions
This file was deleted.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Setting Up the Environment
2+
--------------------------
3+
4+
We will be using vagrant to standardise the environment so following the lesson
5+
plan is easy. The Vagrantfile will provision the appropriate pre-requisites but
6+
some steps are left to the participant as an exercise.
7+
8+

0 commit comments

Comments
 (0)