- Python
- Ununtu 20.04 VM
- Windows 10 (21H2)
- Getting Familiar with the Shellcode.
- Attack Implementation
- Create a malicious bad file
- The revised shellcode that defeats the countermeasure in bash and dash.
- Experimenting with the Address Randomization.
- Experimenting with Other Countermeasures.
- Guidelines on Reverse Shell.
./dc-build.sh
- Build the docker images, it can take one additional parameter to be used in the build process, e.g../dc-build.sh --no-cache
../dc-up.sh
- Start the docker containers in the foreground../dc-up-d.sh
- Start the docker containers in the background../dc-stop.sh
- Stop the docker containers, it can take one additional parameter to be used in the stop process../dc-down.sh
- Stop and remove the docker containers, it can take one additional parameter to be used in the stop and remove process../dc-unittest.sh
- Utility script to aid in running a specific unit test class.
Buffer overflow is defined as the condition in which a program attempts to write data beyond the boundary of a buffer. This vulnerability can be used by a malicious user to alter the flow control of the program, leading to the execution of malicious code. The objective of this lab is for students to gain practical insights into this type of vulnerability, and learn how to exploit the vulnerability in attacks. In this implementation, we are given four different servers, each running a program with a buffer-overflow vulnerability. The task is to develop a scheme to exploit the vulnerability and finally gain the root privilege on these servers. In addition to the attacks, students will also experiment with several countermeasures against buffer-overflow attacks. We need to evaluate whether the schemes work or not and explain why.