Skip to content
Artwork for Ethical Hacker & Cyber Defence
EducationCourses

Ethical Hacker & Cyber Defence

Ilaria Digital School

Become a cybersecurity specialist, from scratch to professional penetration testing: understand systems and networks, attack ethically within an authorised scope, defend, investigate and secure development. Skills: Master the mathematical foundations of computing and cryptography; Understand computer and operating system architecture, administer Linux; Design and analyse a network; Program in Python and optimise algorithms; Secure an information system; Design and query a database; Use artificial intelligence in attack and defence; Test the security of web and mobile applications; Carry out a complete penetration test and its report; Conduct a digital forensic investigation; Analyse malware; Develop securely; Integrate security into continuous integration and deployment; Analyse risks and audit an organisation's security. Workshops take place in your isolated lab, on training targets and samples you install yourself; no real system is touched, and the data you need is provided.

Play
  • 214 episodes
  • Avg 15 min
  • English
Counted on this page — what you have heard stays on this device, so it is not something the list can be paged by.
  • July 9 · 15 min

    Introduction to sockets: scanning a port

    A socket is a programming interface that allows two machines — or two processes — to communicate over a network. Think of it as a telephone plug: it allows a connection to be established between a sender and a receiver. In the world of networks, ever...

  • July 8 · 15 min

    Workshop: extracting all IP addresses from a log

    **Theoretical Recap** A regular expression (regex) is a sequence of characters that defines a search pattern. In Python, the `re` module provides all the tools needed to apply these patterns to strings. The key functions to know are: `re.findall()` w...

  • July 7 · 15 min

    Regular expressions: extract patterns

    Regular expressions are one of the most powerful tools available to a security automation specialist. They allow you to search, identify, extract, and manipulate text based on patterns rather than fixed strings. In cybersecurity, this capability is i...

  • July 6 · 15 min

    Workshop: Port → service dictionary

    **Theoretical Recap** A dictionary in Python is a data structure that stores key-value pairs, where each key is unique. Unlike lists, which use integer indices, dictionaries use meaningful keys to access values instantly — making them ideal for mappi...

  • July 6 · 15 min

    Workshop: create a list of ports and go through it

    **Theoretical Recap** In Python, a list is an ordered, mutable collection of items defined with square brackets: `my_list = [80, 443, 22, 8080]`. Lists are one of the most fundamental data structures you will use in security automation — for example,...

  • July 3 · 15 min

    Data structures, lists and dictionaries

    In the previous activities, you worked with variables that stored a single value at a time: a string, a number, or a boolean. In real-world cybersecurity and automation work, you will almost always need to handle collections of data. For example, you...

  • July 2 · 15 min

    Workshop: Setting the number of ping packets

    **Theoretical Recap** In the previous workshop, you built a Python script that executes the `ping` command using the `subprocess` library and saves the output to a file. That script worked, but it used a hardcoded, default number of packets — meaning...

  • July 2 · 15 min

    Workshop: script that executes 'ping' and saves output

    **Theoretical Recap** The `subprocess` module is Python's standard way to launch system commands from a script. It replaces the older `os.system()` approach and gives you fine-grained control over the process: you can capture stdout and stderr, pass ...

  • July 1 · 15 min

    OS and subprocess libraries to launch commands

    In the previous activities, you learned how to read files, handle exceptions, organize your code into modules, and document your work. Now you will take a new step: interacting with the operating system directly from Python. This is a fundamental ski...

  • June 30 · 15 min

    Documentation and comments: writing docstrings

    When you write Python scripts for security automation — whether that means parsing log files, detecting anomalies, or automating vulnerability checks — your code does not live in a vacuum. Other people will read it, modify it, and build on it. You yo...

  • June 30 · 15 min

    Workshop: creating and importing utils.py

    **Theoretical Recap** A module in Python is simply a .py file containing functions, variables, or classes that you can reuse across multiple scripts by importing it. When you write import utils or from utils import my_function, Python looks for a fil...

  • June 29 · 15 min

    Modules, packages, and pips: reusing code

    When you write Python scripts to automate security tasks — scanning a network, parsing log files, or detecting suspicious patterns — you quickly realize that reinventing every function from scratch is neither efficient nor realistic. Python solves th...

  • June 29 · 15 min

    Debug your script: print vs pdb

    When you write Python scripts for security automation — whether to parse log files, detect anomalies, or interact with network services — bugs are inevitable. Knowing how to debug efficiently is not optional: it is a core professional skill. This cha...

  • June 26 · 15 min

    Workshop: managing FileNotFoundError on the log

    **Theoretical Recap** Exception handling in Python is a fundamental mechanism that allows your program to react gracefully when something unexpected happens at runtime, instead of crashing abruptly. The core syntax revolves around the try/except bloc...

  • June 25 · 15 min

    Exception handling: try/except

    When writing Python scripts for security automation, you will inevitably encounter situations where your code tries to do something that fails at runtime: opening a file that does not exist, connecting to a server that is offline, reading malformed d...

  • June 24 · 15 min

    Workshop: reading a log and counting ERROR lines

    **Theoretical Recap** In Python, reading a text file relies on the built-in `open()` function, which returns a file object. The standard pattern is to use `open()` in combination with a `with` block, which ensures the file is properly closed after re...

  • June 24 · 15 min

    Reading text files: open, read

    In the context of security automation, reading files is one of the most fundamental and frequently used operations. Whether you are parsing log files to detect suspicious activity, reading a list of IP addresses to scan, loading a wordlist for a brut...

  • June 23 · 15 min

    Workshop: interactive mini-menu to choose an action

    **Theoretical Recap** An interactive menu in Python is a control structure that repeatedly presents options to the user, reads their input, and dispatches execution to the appropriate function based on that choice. It combines three concepts you have...

  • June 22 · 15 min

    Workshop: est_pair (port) function

    **Theoretical Recap** A function in Python is a reusable, named block of code that performs a specific task. You define it once using the `def` keyword, and call it as many times as needed throughout your script. Functions can accept parameters (inpu...

  • June 19 · 15 min

    Define and call simple functions

    Functions are one of the most fundamental building blocks in Python programming. They allow you to group a set of instructions under a single name, and then reuse that group of instructions as many times as needed throughout your program. If you have...

Showing 101–120 of 214 episodes