Welcome to the "Operating System and Security" project repository! This repository hosts a project that involves exploring and exploiting vulnerabilities in ELF binaries on Linux systems. The project is divided into two parts, each focusing on different aspects of binary exploitation.
In Part 1 of the project, you will work with the provided ELF binary named "vuln." This binary, written in C language and compiled for Linux X86 architecture, presents a challenge for gaining access through password validation. To successfully navigate this challenge, you will:
- Study the provided "vuln" binary.
- Explore its behavior and security measures, including ASLR (Address Space Layout Randomization).
- Use GDB (GNU Debugger) to analyze the binary's virtual memory addresses.
- Disable ASLR to simplify crafting the exploit.
- Work on exploiting the binary using step-by-step instructions.
- Collaborate with your partner in this group project to complete the task and provide necessary snapshots.
For Part 2 of the project, you will:
- Develop a vulnerable x86 ELF program on your own.
- Exploit your program using the "Return to libc" technique in Linux.
- Redirect the program flow to execute a shell through System (/bin/sh).
- Engage in ASLR brute forcing to overcome this security measure.
- Redirect your exploit to execute any other preferred function from the libc, such as printf.
- Description: Create a repository on GitHub to host your project.
- Structure: Organize your repository with clear directories for each part.
- Code Files: Upload your "vuln" binary and the source code for your own vulnerable program.
- Instructions: Include detailed instructions for each part, explaining how to explore, exploit, and overcome security measures.
- Snapshots: Provide snapshots at crucial steps to visually guide users through the process.
- Collaboration: Highlight the importance of collaboration for group projects and encourage proper documentation.
Please note that this project is for educational purposes only. It is not intended to encourage any malicious activities. Always use your knowledge responsibly and respect ethical boundaries.
Feel free to customize and expand upon this README to accurately represent your project and its contents. Happy learning and exploring the world of binary exploitation in Linux systems!