A practical, hands-on course focused on network security, system exploitation, and web application hacking using Kali Linux.
Network Hacking: Wireless penetration testing, including MAC spoofing, monitor mode, packet sniffing, and deauthentication attacks. Cracking WEP/WPA/WPA2 encryption using handshakes, wordlists, and GPU brute-force tools (aircrack-ng, hashcat).
Post-Connection Attacks: Man-in-the-Middle (MITM) attacks via ARP poisoning and DNS spoofing (using Ettercap and Bettercap). Includes JavaScript injection, creating fake access points (Honeyspot), and detection methods.
Gaining Access: Server-side exploitation using Metasploit and vulnerability scanning with Nexpose. Client-side attacks involving undetectable backdoors (Veil) and social engineering tools (Maltego, BeEF) for phishing and browser exploitation.
Post-Exploitation: Maintaining access with Meterpreter, keylogging, screen capture, and network pivoting.
Website Hacking: Reconnaissance (whois, DNS discovery, subdomain analysis). Exploiting code execution and file inclusion vulnerabilities (LFI/RFI) in web servers.
System Engineering and SysML Modeling
Focuses on Model-Based System Engineering (MBSE) principles and the application of the SysML language for system specification and design.
MBSE Fundamentals: Overview of system engineering processes, the drawbacks of document-based approaches, and the core principles of model-driven design.
SysML Language: Deep dive into syntax, semantics, and diagrams:
Requirements: Requirement and use case diagrams.
Structures: Block definition, internal block, and package diagrams.
Behaviors: State machines, activity, and sequence diagrams.
Parametric & Transversal: Parametric diagrams, allocation, and traceability.
Practical Labs:
Environment setup using the Papyrus framework and SysML 1.6 plugin.
Extending SysML elements using UML profiles.
End-to-end modeling of a hybrid SUV, covering requirements, behavioral specifications, structural design, and parametric constraints.
Embedded Automotive Computers and Networks
Focuses on the fundamentals of automotive embedded systems, microcontroller architecture, and in-vehicle communication protocols.
Core Concepts: Microcontroller vs. microprocessor architectures, ECU design, digital/physical signals, and the OSI model for transportation networks.
CAN Protocol: Implementation of OSI Layers 1 and 2, covering concepts, packet structure, bus topology, and architecture extensions.
Practical Labs (STM32 Nucleo & FreeRTOS):
Microcontroller Programming: Using STM32CubeIDE and HAL libraries for GPIO, interrupts, timers, PWM, ADC, DMA, and UART communication.
Real-Time Apps: Implementing tasks with FreeRTOS (CMSIS-RTOS).
Motor Control: Interfacing DC motors with encoders.
Network Simulation & Integration:
CANoe: Simulating ECU architecture and bus transmission times.
CAN Bus Interfacing: Connecting two STM32 boards via CAN bus, configuring clock settings, baud rates, bit timing, and reception filtering.
Microcontrollers
Interruptions
Timers & Timers Interrupts
ADC, DMA & UART
Control DC motors with encoder
FreeRTOS
CAN bus
Labs on STM32CubeIDE & Nucleo-L476RG
Real-time (see below)
Embedded Linux (see below)
Critical Embedded Software Design & Code Generation (see below)
Real-time systems (since 2015):
Scheduling theory;
Concurrent and real-time programming using the Ada language;
Labs on the RT-Preempt kernel running on ARM-Cortex based single board computers.
Embedded Linux (since 2015):
Linux kernel cross-compilation and patching;
Kernel modules development and configuration;
Advanced OS manipulations;
Labs on ARM-Cortex based single board computers.
Critical Embedded Software Design & Code Generation (since 2017):
Definition of reactive real-time systems,
Cyclic-executive synchronous approaches of design,
Synchronous programming language Esterel,
Design of some typical example of systems using the SCADE Suite toolset.
Formerly, I taught teachings around:
Mathematics for engineers (Spring 2016): Fourier analysis, Complex analysis, Graph theory.
System programming using the C language (Spring 2016): Process management, Inter-process communication and synchronization.
Between October 2007 an August 2011, I was Teaching Assistant (Moniteur MIES, ATER, ...) at Université de Franche-Comté, IUT Belfort-Montbéliard, and Université de Lorraine. I gave lectures for Bachelor students around the following topics:
Logic systems, Computer architecture, 8086 Assembler,
Operating systems (Unix, Debain), Shell commands and scripts,
Algorithms and data structures,
Databases, MySQL queries,
Networking and system administration,
Web technologies: PHP, SPIP, HTML,
Computer basics for C2I.