Session 5 — Cybersécurité & Infrastructure

AlbertSchool — Session 05 • 17 Février 2026 • HUM0242

🛡️ Cybersécurité & Infrastructure

Role-Play Game — VPS → DNS → WordPress → Hack → Defend
Par Olivier RAVEAUDMSLOG.AI • Intermediate — Hands-On
30
Jalons Pratiques
3h
Durée Session
5
CTF Flags
17
Étudiants
💻

Phase 0 — Accueil & Setup

Préparation de l’environnement

Préparation 15 min
#JalonDuréePoint Cybersécurité
0AOuverture écran partagé + read.ai + Google Meet2 min
0BÉtudiants envoient leur email à oliv.ai@dmslog.io2 min
0CVérifier Cursor installé + extension Remote SSH2 min
0DConnecter GitHub dans Cursor + rejoindre l’orga2 min
0ECloner le repo shared-knowledge2 min
0FTester la connexion SSH vers le VPS1 min
0GConfigurer les clés API + comprendre le .env2 minLe .env est le coffre-fort — JAMAIS commité
0HDémo live Claude sur l’ordi d’Olivier1 minClé API fuitée = facture impayée
0IClaude prend des notes pour chaque étudiant1 minIA comme outil de documentation temps réel
🖥️

Phase 1 — Infrastructure Serveur

VPS + DNS + SSL

VPS + DNS + SSL 40 min
#JalonDuréePoint Cybersécurité
1Créer un compte OVH & commander un VPS5 minMot de passe root envoyé par email en clair
2Première connexion SSH au serveur5 minConnexion root par mot de passe = brute-force possible
3Créer un utilisateur non-root + clé SSH5 minDésactiver PermitRootLogin
4Configurer le firewall UFW5 minSans firewall, TOUS les ports ouverts
5Acheter/pointer un nom de domaine5 minDNS hijacking = contrôle du site
6Attendre propagation DNS + tester5 minMITM possible pendant la propagation
7Installer Plesk sur le VPS5 mincurl | sh en root = supply chain risk
8Configurer domaine + SSL Let’s Encrypt5 minSans HTTPS, mots de passe en clair
💾

Phase 2 — WordPress & Base de Données

MySQL + WP + Sécurisation

MySQL + WP + Sécurisation 40 min
#JalonDuréePoint Cybersécurité
9Créer une base de données MySQL dans Plesk5 minJAMAIS utiliser root pour l’application
10Installer WordPress via Plesk5 minwp-config.php contient les credentials DB en clair
11Sécuriser wp-config.php (permissions + salt keys)5 minwp-config lisible = accès DB complet
12Sécuriser l’admin WordPress (URL, 2FA, limiter)5 min/wp-admin = cible #1 des bots
13Installer thème + plugins (Wordfence, UpdraftPlus)5 minChaque plugin = vecteur d’attaque
14Scanner vulnérabilités avec WPScan5 minLes attaquants utilisent les mêmes outils
15Explorer phpMyAdmin / la DB5 minMots de passe hashés, mais emails en clair
16Créer un backup complet (DB + fichiers)5 minBackup non-chiffré = données sensibles exposées
🚩

Phase 3 — Capture The Flag

5 Flags + Attaque/Défense

5 Flags + Attaque/Défense 40 min
#JalonDuréePoint Cybersécurité
17Olivier cache les 5 flags secrets sur le VPS5 minLes étudiants doivent trouver les 5 flags !
18CTF Flag 1 — Fichier caché dans le webroot5 minFichiers cachés (.env, .htaccess) souvent oubliés
19CTF Flag 2 — Entrée cachée dans la DB5 minBackdoors injectées via SQL injection
20CTF Flag 3 — Escalade de privilèges (root)5 minPrivilege escalation = technique d’attaque courante
21CTF Flag 4 — Variable d’environnement5 minSecrets dans env = lisibles par le processus
22CTF Flag 5 — Commentaire HTML caché5 minCommentaires HTML oubliés révèlent des infos
23Démo : Brute-force SSH (Hydra) — Olivier only5 minFail2ban + clés SSH = protection
24Installer Fail2ban + vérifier5 minFail2ban bannit les IPs après X tentatives
🏴

CTF — Les 5 Flags

#NomIndiceTechniqueDifficulté
1Fichier caché webrootIl se cache là où le web commence…find / -name ".*" -type fFacile
2Entrée cachée dans la DBLa base de données sait tout…SQL SELECT queryMoyen
3Escalade de privilègesSeul root peut voir celui-ci…sudo cat /root/.flag*Difficile
4Variable d’environnementL’environnement parle…env | grep FLAGMoyen
5Commentaire HTMLClic droit → Code source…curl | grep flagFacile
🤖

Phase 4 — Monitoring, IA & Debrief

Logs + Claude + Debrief

Logs + Claude + Debrief 30 min
#JalonDuréePoint Cybersécurité
25Analyser les logs du serveur (syslog, access, auth)5 minLes logs sont la première chose qu’un attaquant efface
26Cursor + Claude pour auditer le serveur5 minL’IA détecte des patterns invisibles à l’œil humain
27Mettre à jour système + WordPress5 min60% des hacks WP = versions non mises à jour
28Créer un script de monitoring automatique5 minCryptominer caché dans un processus inconnu
29Checklist de sécurisation finale (8 points)5 minScore objectif : 8/8
30Scoreboard CTF + Debrief + Commit final5 minLa cybersécurité est un processus continu
👥

Participants — 17 Étudiants

AL
Angelo La Barbera
angelo19.alb@gmail.com
angelo.albert-cyber.com
LB
Léna Biaggi
lbiaggi@albertschool.com
lena.albert-cyber.com
AN
Adam Nefzi
anefzi@albertschool.com
adam.albert-cyber.com
CM
Camille Macaluso
cmacaluso@albertschool.com
camille.albert-cyber.com
SB
Solan Barlet
sbarlet@albertschool.com
solan.albert-cyber.com
DB
Damien Balme
dbalme@albertschool.com
damien.albert-cyber.com
CM
Clément Maitre
cmaitre@albertschool.com
clement.albert-cyber.com
LM
Louis Martin
lmartin@albertschool.com
louis.albert-cyber.com
GP
Gabriel Poesy
gpoesy@albertschool.com
gabriel.albert-cyber.com
ES
Emma Sebag
esebag@albertschool.com
emma.albert-cyber.com
RR
Rodolphe Ripoll
rripoll@albertschool.com
rodolphe.albert-cyber.com
CD
Charlize Delbasse
cdelbasse@albertschool.com
charlize.albert-cyber.com
AT
Alizé Thyssens
athyssens@albertschool.com
alize.albert-cyber.com
PA
Pascal Aquilanti
paquilanti@albertschool.com
pascal.albert-cyber.com
AP
Axel Pourreau
apourreau@albertschool.com
axel.albert-cyber.com
AF
Arsène Fayard
afayard@albertschool.com
arsene.albert-cyber.com
MN
Mathieu Nativel
mnativel@albertschool.com
mathieu.albert-cyber.com

Checklist Sécurité — 8 Points

  • Root SSH désactivé
    grep PermitRootLogin /etc/ssh/sshd_config
  • Clé SSH en place
    ls ~/.ssh/authorized_keys
  • Firewall UFW actif
    ufw status
  • SSL/HTTPS actif
    curl -sI https://monsite.com | head -1
  • Fail2ban installé
    systemctl status fail2ban
  • wp-config.php sécurisé
    stat -c « %a » wp-config.php
  • Backups configurés
    ls /var/backups/
  • Mises à jour automatiques
    apt list –upgradable
📚

Ressources