Systems and Network Hacking

Teacher: Giuseppe Lettieri, Pericle Perazzo
CFU: 9

Course Description

The best way to understand what attackers can do is to reason like one of them. In this course we will explore the tecniques that are common knowledge among attackers. The purpose is to understand the strenghts and, most importantantly, the limits of all the countermeasures that modern systems implement to mitigate these attacks. In turn, this requires a study of some topics that are sometimes skipped in architectural courses, like heap implementation, dynamic libraries and Virtual Machines.

News/Alerts

Syllabus

Class Material

Lecture notes

The material for the Web part of the course can be found here. I am restructuring and expanding the lecture notes below to put them in the form of a free book. The chapters will be available here as soon as they are readable, but they may be updated frequently, so it is not advisable to print them.

Software

Final tests

You can pull the dockers with docker pull docker-name and run them with docker run -P docker-name. The latter command will also assign random local ports to the ports exposed in the container. You can find the assigned ports with docker ps (in the PORTS column).
Lecture notes from previous edition.

Exercises

Online

Solutions for the online exercises will be uploaded in the file section of the Course's MS Teams page.

Custom

Custom exercises from past edition

Further reading

Old material

Part of the course will deal with modern Virtual Machines technology. Here are the lecture notes from a previous course that explored these same topics. The notes in bold are useful for this course too, while the ones in italics can be safely skipped.

Links