Sniffing packets sent over the local network and spoofing various types of packets.
Lanuch ARP cache posining attacks; use this attack to conduct man-in-the-middle attacks.
Attacks at the IP layer, including IP fragmentation attacks and ICMP redirect attacks. Routing and reverse path filtering.
Launching attacks to exploit the vulnerabilities of the TCP protocol, including session hijacking, SYN flooding, TCP reset attacks, etc.
Launching the classic Mitnick attack to gain the unauthorized access to the target machine. This is a special case of TCP session hijacking.
Using the heartbleed attack to steal secrets from a remote server.
Using several methods to conduct DNS pharming attacks on computers in a LAN environment.
Using the Kaminsky method to launch DNS cache poisoning attacks on remote DNS servers.
Using the DNS rebinding technique to launch attacks on IoT devices behind the firewall.
Writing a simple packet-filter firewall; playing with Linux's built-in firewall software and web-proxy firewall; experimenting with ways to evade firewalls.
Implement a simple vpn program (client/server), and use it to bypass firewalls.
Incrementally build a simple VPN program, using the TUN/TAP interface, to learn how the VPN tunneling works.
Design and implement a mini-VPN program, using TUN/TAP and TLS. This project requires at least a month of time to finish, so it is good for final project.