Exploitation de vulnérabilités (Log4J, DirtyPipe), puis mise en place d'un SIEM ELK/Suricata pour les détecter
Cette SAE se déroule en deux grandes parties. Dans un premier temps, nous testons l'infrastructure web d'une entreprise fictive en exploitant des vulnérabilités connues : Log4J (CVE-2021-44228) pour obtenir un reverse shell, puis DirtyPipe (CVE-2022-0847) pour escalader les privilèges jusqu'à root. Nous installons ensuite une backdoor persistante.
Dans un second temps, nous installons et configurons un SIEM, la stack ELK en l'occurrence afin de détecter et analyser les deux attaques précédemment réalisées.
Avant toute attaque, phase de reconnaissance passive via Google et LinkedIn pour identifier la cible SARL Prosecur, ses employés et son domaine.
Scan Nmap sur la cible pour identifier les services exposés.
Scan des répertoires avec DIRB, puis brute force des credentials avec Hydra sur le répertoire /developers protégé.
Injection du payload JNDI via le header -e de curl pour forcer le serveur vulnérable à se connecter à notre serveur LDAP malveillant, déclenchant l'exécution d'un reverse shell.
Démarrer un listener sur le port 9999 pour recevoir le reverse shell.
Lancer le serveur JNDI malveillant qui envoie le payload au serveur qui se connecte.
Forcer le serveur vulnérable à effectuer une requête LDAP vers notre serveur.
Le serveur tourne sous Alpine Linux 3.8.2 dans un conteneur Docker, kernel 5.10.0-8-amd64 — vulnérable à DirtyPipe (kernels 5.8 à 5.16.11).
On transfère l'exploit via un serveur HTTP Python, on le compile sur la cible, et on l'exécute sur le binaire SUID /usr/bin/sudo.
Installation d'une backdoor qui survit aux redémarrages via deux méthodes : un crontab sur le disque hôte monté, et un service systemd via Metasploit service_persistence.
La backdoor crontab écrit directement dans /mnt/host/etc/cron.d/ (le disque hôte monté) — elle persiste donc en dehors du conteneur.
Déploiement de la stack ELK via Docker. Elasticsearch stocke et indexe toutes les données de sécurité. Kibana fournit l'interface web de visualisation et de gestion.
Configuration du Fleet Server (gestionnaire d'agents) et création de politiques d'agents pour chaque type de système à surveiller.
Suricata est un IDS/IPS qui analyse le trafic réseau en temps réel. Déployé via Docker, il génère des logs au format eve.json récupérés par l'intégration Elastic.
Le mode Tap/Promiscuous permet à Suricata de voir tout le trafic du réseau sans être vu lui-même. Sur Proxmox, configuré via un hook script.
Agents déployés sur le serveur web (Linux) et les postes Windows. Pour pfSense (FreeBSD), pas d'agent natif disponible : on utilise rsyslog pour transférer les logs vers le Fleet Server sur le port UDP 9001.
Installation via curl puis enrollment dans le Fleet.
Exécutable .exe via PowerShell avec URL + token d'enrollment.
Rsyslog → Fleet Server (UDP 9001). Intégration pfSense dans Elastic.
Cette SAE m'a permis d'appréhender la cybersécurité des deux côtés : attaque et défense. Comprendre concrètement comment fonctionne Log4Shell ou DirtyPipe — et pas seulement en théorie — change radicalement la façon dont on aborde la sécurisation d'une infrastructure. La partie SIEM m'a apporté une compréhension pratique de la détection d'intrusion et de la corrélation d'événements, des compétences directement applicables en entreprise.