In this project you will get hands on experience with low-level network programming both as an attacker and as a defender. The assignment consists of three subprojects. The first project (which is really a warm up) you will be digging through previously captured packet traces to recover a password. For the second part, you will don your blackhat and develop a malicious router that performs injection into live TCP streams from an real website. In the final project, you will be implementing a simple form of scan detection.
The final two assignments use the Virtual Network System (VNS). For those of you who are not familiar with it, VNS will emulate a virtual topology for each group to play with and provide you direct access to the traffic sent to that topology. Before the project starts, will need to request a network topology to work on. Each group will be given one topology. Once you've formed your group, e-mail Tal (firstname.lastname@example.org) and he will assign you a topology and provide instructions for using it.
The following references may help you get comfortable dealing with protocols at a low-level. We highly recommend you become familiar with either Ethereal or tcpdump as they will aid debugging during the second and third portions of the assignment.