![]() |
CSC347 Introduction to Information Security
|
| Due: | October 11, 2016 11:50PM |
|---|---|
| Late penalty: | 20% if handed in up to October 13, 2016 11:50 PM. Not accepted after that. |
| Hand in: | Electronic submit here. Please package your solution in a1.zip according to the submit checklist. Anything non-electronic, please drop off at my office (DH3088) |
| Marking: | |
| Groups: | Groups of size 2. |
ed47adedc60aa4e43ebfc84384669402 RH72LabImage_A1_2016.zip.
/vulnerable.
Your can find this question in account.c.
Your task for this question is to identify vulnerabilities (mark them in the code), demonstrate exploits and explain the
exploits impact. See for example, cert.org vulnerability notes.
You do not have to exploit buffer overrun vulnerabilities for this part of the assignment, just identify vulnerable code
and explain the potential impact.
Write a report (see REPORT.txt) listing each vulnerability, a collection of exploits for the vulnerability (code, inputs, scripts etc. we can run to
see the exploit in action), the impact of the vulnerability, and identify a category (CIA) for the impact (see the list below).
Include inputs, scripts, code etc. demonstrating each exploit.
To think about this question, think about the following: Secure properties (CIA)
Finally fix the code, explaining how you fixed the vulnerabilities and prevented the exploit and restored CIA.
/etc/xinetd.d in the assignment VM to see a collection of programs that
are running under xinetd on your RH7.2 VM. One of these is palindrome.c, please take a look
at /etc/xinetd.d/palindrome to see how this service is run (which port etc). For convenience,
I am having it run out of /root/a1 where you can find the source code as well. Simply recompiling
/root/a1/palindrome.c will cause the online service to update. If you want to restart xinetd you should
execute /etc/rc.d/init.d/xinetd restart.
You will investigate this service, show how
a user from outside the RH7.2 VM (ie on the host machine) can gain unauthorized access to the VM. You might
want to take a look at tcpclient.pl. Use ifconfig to determine the ip address
of the VM.
tcpclientA.pl) which obtains a root
shell on the remote server running palindrome. The console user running tcpclientA.pl
should be able to interactively enter commands and see the result. Note: Entering commands
may not be as smooth as running a real console, this is ok. At the very least, a user should be able to
execute ls a couple of times.
palindrome service more secure.