Reverse

Recherche de vulnérabilités dans des systèmes embarqués Linux Junior - 5 jours

Description

Cette formation a pour objectifs :

  • Identifier les composants matériels et les interfaces critiques d'un équipement Linux embarqué.
  • Accéder à l'équipement via l'UART, interrompre son processus de démarrage et extraire son firmware
  • Analyser et émuler des composants du firmware en utilisant QEMU et la conteneurisation.
  • Effectuer une analyse statique et assister la recherche de bugs avec des scripts.
  • Mettre en place et lancer une campagne de fuzzing avec AFL++ sur un programme compilé.
  • Analyser et exploiter des vulnérabilités classiques comme l'injection de commandes et la corruption de mémoire.
  • Mettre en œuvre des mécanismes de persistance sur un système embarqué compromis.

Public et prérequis

Cette formation est destinée aux personnes travaillant dans la sécurité informatique, le développement de systèmes embarqués et intéressées par la sécurité offensive des systèmes Linux embarqués.
 
Pour tirer le meilleur parti de cette formation, les stagiaires doivent avoir une base solide dans les domaines suivants :
  • Ligne de commande Linux : être à l'aise avec la navigation dans le système de fichiers, la gestion des processus et l'utilisation des outils en ligne de commande courants.
  • Bases en réseaux : compréhension des concepts TCP/IP de base, des ports et des protocoles comme HTTP.
  • Connaissances en programmation : familiarité avec la lecture et l'écriture de scripts simples en Python et une compréhension de base des concepts de programmation en C.
  • Concepts de rétro-ingénierie : des connaissances de base en architecture informatique, en langage d'assemblage ARM et une expérience avec un désassembleur.

Contenu

Jour 1 : Prise en main et extraction

Recherche d'informations en source ouverte, définition de la surface d'attaque et analyse des composants matériels. Compréhension de la séquence de démarrage et première extraction du firmware.

Jour 2 : Analyse et émulation du firmware

Techniques d'émulation logicielle, configuration de l'environnement et identification des processus cibles à analyser. Extraction et émulation des services logiciels importants à partir du firmware.

Jour 3 : Analyse statique et exploitation

Analyse statique avec des outils comme Ghidra et semgrep pour l'analyse de différences et la recherche de vulnérabilités. Méthodologie d'exploitation et écriture d'un premier script pour une injection de commande.

Jour 4 : Fuzzing

Introduction au fuzzing avec AFL++. Création d'un corpus d'entrées, développement d'un harness et lancement d'une campagne de fuzzing sur une cible binaire.

Jour 5 : Exploitation avancée et persistance

Analyse des crashs issus du fuzzer et identification d'une vulnérabilité exploitable. Construction d'une chaîne ROP, écriture d'un script d'exploitation et étude des techniques de persistance sur le système.