This document is for Coventry University students for their own use in completing their assessed work for this module and should not be passed to third parties or posted on any website. Any infringements of this rule should be reported to facultyregistry.eec@coventry.ac.uk. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Faculty of Engineering, Environment and Computing4061CEM Programming and Algorithms 1 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Assignment Brief |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Module TitleProgramming and Algorithms 1 |
Assignment TypeGroup |
CohortSeptember |
Module Code4061CEM |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Coursework TitleLocal Enumeration and Privilege Escalation (Attempt 2) |
Hand Out Date16/01/2023 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LecturerDr Ian Cornelius |
Due Date and Time03/04/2023 18:00 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Estimated Time50 HoursWord LimitNot Applicable |
Coursework TypeGroup Programming Assignment |
Credit Value Assessed20 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Submission Arrangement:AulaFile Types Accepted:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Module Learning Outcomes Assessed:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Important NoticeIf this is your second attempt at this piece of coursework, you are taking the feedback from your previous submission and improving upon it for this submission. You must not use any work from your group members in the previous attempt. Preliminary InstructionsTasks are to be undertaken in the Python programming language. You will be expected to include comments in your code to explain the behaviour of your code and provide a justification of your algorithm selection. You are also strongly advised to test your code for compilation on a system other than your own, prior to submission. Non-compiling code will not pass, see the marking rubric for further information. You will create a Coventry University GitHub private repository to store your source-code and manage version control of your work. Evidence of version control must be included in your regular commits to the repository over the period between the hand out date and due date. Your eventual submission via TurnItIn will link to that repository which must include all of your source-code. Task and Mark DistributionThe purpose of this task is for students to work in groups (a maximum of five people per group, but no less than three) to build a local enumeration and privilege escalation tool. Local enumeration is concerned with analysing the target host for details such as:
This list is not exhaustive and can consist of more features. You can read this article for more information on what this tool may contain. Privilege escalation is concerned with the increase of level access, either through a bug or design flaw. You can read this article for more information on what this tool will contain. Assignment TasksTo successfully complete this assignment you are required to complete the following tasks. Each task has a weight that is attributed towards a portion of the overall grade. Remember, that each of these tasks will feed into a project (or piece of code) that will run cohesively. Task 1: Basic Tool (15%)The purpose of this task involves creating a basic tool that consists of a menu system that can perform two methods of enumeration and one method of privilege escalation. As this is a basic task, it is not required to work on multiple operating systems, and it can be assumed that you will be developing it to run on the system that it is being developed within. The enumeration method will be expected to have a form of output displayed to the screen, whilst the privilege escalation should drop the user into a shell with an increased level of privilege. Note: It will be expected that your privilege escalation method will not work on the markers machine, as such you will need to provide evidence (in the form of a video) of this working on your machine. Task 2: Advanced Tool (30%)The purpose of this task is to build upon the work you have done in task one and adding six more methods of enumeration and another two methods of privilege escalation. Additionally, the tool should also determine which operating system it is running on and only suggest appropriate options of your implemented methods to the user. The methods you have implemented for enumeration and privilege escalation, at least one of these should work on a different operating system to the others. Note: It will be expected that your privilege escalation method will not work on the markers machine, as such you will need to provide evidence (in the form of a video) of this working on your machine. Task 3: Outputting (10%)The purpose of this task is to build upon task one and two, and provide a more advanced logging method. Instead of outputting to the console, it is expected for your groups tool to output to a file. An option is to be added to the menu to change from outputting to the terminal, and to a file instead. Note: it is best to ensure that the user has the ability to create a log file of a given name for a givne location. For example:
Additionally, it is also expected for your tool to run
with a parameter used in terminal. For example, instead of
running For example, if the user calls
Task 4: Testing (15%)The purpose of this task will build upon the work you and your group have done in tasks one to three. For each method implemented, you are expected to write a test case to ensure it is working as expected. Note: It will be expected that the unit testing will be provided in a separate class file, and following the convention as shown in the lectures and labs. Task 5: Version Control (5%)The purpose of this task is to ensure that you are developing the tool iteratively and collaboratively using relevant version control features, such as forking, cloning and merging. As this is a group project, you may want to consider using further functionality of the Git web-interface; i.e. the issue tracker and Wiki functionality. For your submission, you are to include a URL to the Coventry University GitHub service repository where the groups solution resides, along with the commit tag you want marking. Task 6: Documentation (10%)To aid in the marking of the assignment, documentation is relevant for the tool you are implementing. For each function that a member has worked upon, it is recommended you included a description of the methodology followed along with the name and student identification number of who implemented the function. It may have been a collaborative effort on a function, therefore explain who worked upon which part. Additionally, documentation will be required to explain
how the tool works. Therefore, it is important to include a
You are also expected to provide relevant documentation
with the source-code provided. The
Task 7: Team Software Development (5%)As this is a group assignment, you will be expected to work within a group of maximum five team members, but no less than three members. A portion of the marks have been allocated towards working as a group; and it will be expected to see that each group member has provided something towards the project. The purpose of this task is to see how you can work as a team and how you can interact with code written by other group members. It will also demonstrate your ability to work with other code repositories and using advanced functionality of the version control system. Task 8: Submission Guidelines (10%)You will be expected to follow the submission guidelines, as outlined in the document below. Essentially, you are required to follow these rules:
It is easier to visualise what is meant by these rules by looking at the example document provided below. You will either be awarded zero marks, or full marks, depending on how you follow the guidelines. Your source-code will be submitted to a plagiarism checker - so please ensure that any source-code acquired online is appropriately referenced. You are not to push or commit code to the GitHub repository after you have submitted your coursework. Timestamps will be checked, and if any changes made after the submission timestamp will not be marked. Extensions and DeferralsIf you require an extension or deferral, you can find out more information at the following link: Information on Extensions/Deferral Remember: You must supply evidence with your application. Failure to do so may result in the extension/deferral not being approved. Plagiarism and Academic Misconduct PolicyEnsure that you are familiar with the university guidance on Plagiarism and Academic Misconduct. Any work found to be in violation of the rules will be submitted for an academic misconduct case. Marking Allocation
Marking Rubric
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Notes
|