Présentation de Labtainers
Les labtainers mis à disposition par l'université américaine Naval Postgraduate School incluent plus de 50 exercices et outils de cyber-laboratoire pour construire votre propre progression ou vos propres laboratoires.
Vous disposez au sein de la distribution labtainer de :
- Environnements d’exécution de laboratoire cohérents et provisionnement automatisé via des conteneurs Docker
- Topologies de réseau multicomposants sur un ordinateur portable à performances modestes (Démo de 50 secondes)
- Évaluation automatisée de l’activité et des progrès du laboratoire étudiant
- Exercices de laboratoire individualisés pour décourager le partage de solutions
Le moyen le plus simple de fournir aux étudiants les Labtainers est d’installer la VM VirtualBox ou VMWare (brève démonstration), vous pouvez également installer la distribution sur un système Linux. Cette image de machine virtuelle Ubuntu graphique pré-installée contient tout ce dont les étudiants ont besoin pour exécuter les exercices Labtainer, y compris ceux qui créent plusieurs hôtes en réseau. Les dispositifs peuvent également être installés sur des services accessibles sur le Web tels que VMWare Horizon.
Les laboratoires sont intégrés au sein de la distribution Labtainer et ont été initialement développés par l’initiative SeedLabs de l'université américaine de Syracuse au sein du Projet Seed https://seedsecuritylabs.org/Labs_20.04/
Attention : chaque fois qu’un lab est exécuté pour la première fois, le framework télécharge automatiquement tout ce qui est nécessaire à partir du Docker Hub , une connexion internet est nécessaire.
L’authentification sur la machine virtuelle labtainer se fait avec student, mot de passe password123. Comme la VM est en clavier qwerty, il faudra taper pqsszord&é ou pqsszord123 si vous disposez d’un pavé numérique sur votre clavier.
Les terminaux de chaque laboratoire peuvent avoir d'autres noms d’utilisateur et mots de passe, et ceux-ci sont généralement explicitement indiqués dans les documents du laboratoire et les fiches d'activité.
Téléchargement de la VM : Virtual Machine Images - Center for Cybersecurity and Cyber Operations - Naval Postgraduate School (nps.edu)
Conseil : installer la dernière version de virtual box (7.0.10) disponible lors de la dernière release de labtainer (septembre 2023) sinon vous pouvez avoir des erreurs
Même si vous installez la dernière version de la VM, vous devez mettre à jour votre installation des labs Labtainers (labs fix) en exécutant : update-labtainer.sh à partir de votre répertoire labtainers-student.
SOUS PEINE D AVOIR DES DYSFONCTIONNEMENTS SUR CERTAINS LABS
NB : la VM est en qwerty, lancer la commande sudo dpkg-reconfigure keyboard-configuration pour le configurer en azerty. Selectionnez "Generic 105-key (Intl) PC", puis "French" deux fois. Pour la touche spéciale AltGr : sélectionnez "The default for the keyboard layout" puis "no compose key". Votre clavier est maintenant en AZERTY.
Conseil : Pour que le clavier reste en français après un redémarrage, il faut désormais utiliser l'assistant graphique (cf article). => faire un apt update avant
Pour vérifier qu'un lab a été traité utiliser la commande checkwork <nomdulab>
Pour recommencer un lab en réinitialisant son contenu labtainer -r <nomdulab>
Ressource pour les enseignants : télécharger l’intégralité des labs dans une archive afin de mettre à jour la distribution et les labs, cette archive contient la version pdf et docx des labs (en anglais) ainsi que les éléments de configuration utilisés lors du lancement du lab.
https://github.com/mfthomps/Labtainers/releases/latest/download/labtainer.tar
OWASP Web Security Labs : des labtainers supplémentaires orientés SLAM mis à disposition par Liberty University
https://nps.edu/web/c3o/imodules
Ressources produites pour Labtainers
LABTAINER est un environnement virtuel qui tourne sous Ubuntu Desktop et qui permet de monter/démonter de manière automatique des architectures virtuelles systèmes/réseaux (conteneurs Docker) sur lesquelles on peut se baser pour lancer des environnements systèmes/réseaux autonomes avec des énoncés de TP intégrés (https://nps.edu/web/c3o/labtainer-lab-summary1) et axés sur le thème de la cybersécurité et de l'analyse réseau.
Ces systèmes "clés en main" sont en anglais et avec parfois un accompagnement casi inexistant vers la solution au problème posé, le système "auto-correctif" rudimentaire (commande checkwork) proposé permet néanmoins à l'étudiant de vérifier si sa solution est correcte ou non.
Il nous a semblé intéressant d'utiliser cette distribution et certains TP proposés en les augmentant de contextualisation et de questionnements pour mieux guider nos étudiants.
Vous trouverez une vidéo de présentation de l'installation de la VM et de la prise en main de labtainer à l'aide du labo telnet réalisée par Jérôme Bezet-Torres (académie de Lyon).
Emmanuel Le Gars , Olivier Thévenin, Jean-Luc Baptiste et Valérie Martinez vous proposent des traductions des TP avec leur corrigé et des questionnements complémentaires ou des adaptations sur la distribution labtainers dans le tableau ci-dessous.
Pour chaque laboratoire, nous vous proposons de publier les ressources que les enseignants de BTS SIO voudront bien partager dans le tableau ci-dessous.
Vous trouverez un lien vers un dossier regroupant les énoncés en PDF des TP disponibles sur la distribution.
Les laboratoires sont organisés en catégories suivantes :
- Réseau
- Analyse du trafic réseau
- Vulnérabilités logicielles
- Laboratoires cryptographiques
- Sécurité Web
- Sécurité et opérations du système
- Sécurité des systèmes industriels
- Divers
Avertissement : les corrigés des ressources proposées sont disponibles uniquement aux enseignants inscrits sur le site à la page : https://www.reseaucerta.org/labtainers-corriges
Certaines ressources ne comportant pas la version élève, sont uniquement visible dans la page des corrigés, en vert surligné sont les ressources traduites avec corrigé.
En jaune surligné celles qui bien que non traduites sont autoportantes et très guidées
Réseau
Laboratoire |
Description |
Difficulté |
SIO1, |
DOC EN |
DOC FR |
Ressources proposées |
network-basics |
Mise en réseau de base, y compris ARP, ping et une introduction à TCP /IP. |
1 |
SIO1 | |||
nmap-discovery |
L’utilitaire nmap est utilisé pour localiser un serveur ssh sur un réseau et pour découvrir le numéro de port utilisé par le service. |
2 |
SIO1 | archive_fr, cor | ||
nmap-ssh |
L’utilitaire nmap est utilisé en combinaison avec l’utilitaire d’analyse de trafic réseau tcpdump et tshark pour démontrer un problème de sécurité avec un serveur ssh. |
2 |
SIO1 | archive_fr | ||
telnetlab |
L’étudiant utilise telnet pour accéder à un ordinateur distant, et utilise l’outil tcpdump pour afficher les mots de passe en "clair", et observer comment l’utilisation de ssh atténue cette vulnérabilité. |
1 |
SIO1 | archive_fr, corrigé | ||
routing-basics |
Un exemple de « routage » via NAT (avec iptables) avec un LAN, une connexion Internet et un serveur web distant |
2 |
SIO1 |
|
|
|
iptables2 |
L’utilitaire iptables est utilisé pour configurer un « pare-feu » afin de transmettre uniquement le trafic de service d’application sélectionné entre un client et un serveur (3 machines). |
2 |
SIO1 ou SISR | archive_fr | OT_corrigé | |
tcpip |
Vulnérabilités du protocole TCP/IP, y compris les inondations syn, les attaques de TVD et le détournement de session. Dérivé du laboratoire SEED. |
2 |
SISR |
|
|
|
arp-spoof |
Utilisation de l’usurpation ARP pour les attaques man-in-the-middle. |
2 |
SISR | |||
local-dns |
Usurpation DNS et empoisonnement cache sur un réseau local. Dérivé du laboratoire SEED. |
3 |
SISR |
|
|
|
snort |
Utilisation de snort pour la détection des intrusions réseau |
2 |
SISR | OT_corrigé | ||
dmz-lab |
Configurer une DMZ pour une entreprise. |
2 |
SISR |
|
|
|
radius |
Utilisez un service d’authentification Radius pour authentifier les périphériques réseau. |
2 |
SISR |
|
|
|
ldap |
Authentifiez les utilisateurs de serveurs Linux à l’aide d’un service LDAP. |
2 |
SIO1 ou SISR |
|
|
|
bird-bgp |
Explorez le protocole de frontière de passerelle et configurez un routeur BGP. |
2 |
SISR |
|
|
|
bird-ospf |
Explorez le protocole de routeur Open Shortest Path First et utilisez-le pour créer un site Web usurpé. |
2 |
SISR |
|
|
Analyse du trafic réseau
Laboratoire |
Description |
Difficulté |
SIO1, SISR SLAM |
Docs EN |
Docs FR |
Ressources |
pcapanalysis |
L’outil d’analyse du trafic réseau tshark est utilisé pour identifier et afficher un paquet réseau spécifique contenant un mot de passe plaintext. |
2 |
SISR | archive |
|
|
wireshark-intro |
Introduction à l’utilisation de Wireshark pour analyser le trafic réseau. |
2 |
SIO1 | archive | corrigé inclus dans l'énoncé | |
packet-introspection |
Utilisez Wireshark pour une analyse plus avancée du trafic réseau |
3 |
SIO1 | archive | corrigé | |
pcap-lib |
Développez des programmes à l’aide de la bibliothèque PCAP pour analyser une capture de paquets inconnue. |
3 |
SISR |
|
|
|
netflow |
Explorez le protocole de trafic réseau NetFlow et le type d’enregistrement de données à l’aide de la suite logicielle CMU SiLK. |
3 |
SISR |
|
|
Laboratoires cryptographiques
Laboratoire |
Description |
Difficulté |
SIO1, SISR SLAM |
Docs EN |
Ressources |
macs-hash |
Exploration des hachages cryptographiques et du risque de collisions de hachage. |
2 |
SIO1 ou SISR |
|
|
onewayhash |
Introduction à la génération de hashes cryptographiques à l’aide de l’utilitaire openssl. |
1 |
SIO1 |
|
|
pubkey |
Explorez les certificats de clé publique à partir d’une variété de sites Web |
1 |
SIO1 |
|
|
sshlab |
Utilisation d’une paire de clés public/privé pour accéder à un serveur via ssh. |
1 |
SIO1 | ||
ssh-agent |
Utilisez un agent SSH pour gérer votre clé privée et éviter de retaper votre passphase |
1 |
SIO1 |
|
|
ssl NEW |
L’utilisation de SSL pour authentifier les deux côtés d’une connexion comprend la création et la signature de certificats à l’aide d’une CA. |
2 |
SISR | ||
symkeylab |
Exploration des modes de cryptage des clés symétriques. |
1 |
SIO1 | Ressource_fr, corrigé | |
vpnlab |
Exemple d’utilisation d’OpenVPN pour protéger le trafic réseau. |
2 |
SIO1 |
|
|
vpnlab2 |
Similaire à vpnlab, mais avec l’utilisation d’une passerelle vpn. |
2 |
SISR |
|
|
Vulnérabilités logicielles
Laboratoire |
Description |
Difficulté |
SIO1, SISR SLAM |
Docs EN |
Ressources |
bufoverflow |
Un programme d’exemple vulnérable à un débordement de tampon de pile, dérivé d’un laboratoire SEED. |
3 |
SLAM | ||
buf64 |
Une version 64 bits du laboratoire bufoverflow |
3 |
SLAM | ||
formatstring |
Explorez les vulnérabilités de fonction printf de la bibliothèque C, dérivées d’un laboratoire SEED. |
2 |
SLAM | ||
format64 |
Une version 64 bits du laboratoire de formatstring |
2 |
SLAM | ||
gdblesson |
Une introduction à l’utilisation de gdb pour déboguer un programme C simple. |
1 |
SLAM | ||
ghidra |
Reverse engineering d’un service vulnérable simple pour découvrir et démontrer certaines de ses propriétés. |
2 |
SLAM | ||
metasploit |
Utilisez la console metasploit sur un système Linux Kali pour attaquer un serveur vulnérable « metasploitable ». |
1 |
SLAM, SISR | archive, archive_fr | |
printf |
Introduction aux références mémoire faites par printf et leur potentiel d’exploitation. |
1 |
SLAM | ||
overrun |
Introduction aux références à la mémoire au-delà des limites des structures de données en C. |
1 |
SLAM | ||
retlibc (retlibc) |
Exploitez un programme à l’aide d’un débordement tampon et d’un retour à libc, dérivé d’un laboratoire SEED. |
3 |
SLAM | ||
setuid-env |
Risques de la fonction setuid, y compris les variables en environnement, dérivées d’un laboratoire SEED. |
2 |
SLAM, SISR | ||
cgc |
Explorez plus de 200 services vulnérables du Grand Défi Cyber DARPA. |
3 |
SLAM, SISR |
Laboratoires de sécurité Web
Laboratoire |
Description |
Difficulté |
SIO1, SISR SLAM |
Docs EN |
Ressources |
webtrack |
Illustre les techniques de suivi web et le rôle des serveurs d’annonces, dérivés d’un laboratoire SEED. |
1 |
SLAM |
|
|
xforge |
Cross Site Request Forgery avec un site Web vulnérable, dérivé d’un laboratoire SEED. |
2 |
SLAM |
|
|
xsite |
Attaques de script de sites croisés sur un serveur Web vulnérable, dérivées d’un laboratoire SEED. |
2 |
SLAM |
|
|
sql-inject NEW |
Attaques d’injection SQL et contre-mesures, dérivées d’un laboratoire SEED. |
>2 |
SLAM, SISR |
Laboratoires de sécurité et opérations du système
Laboratoire |
Description |
Difficulté |
SIO1, SISR SLAM |
Docs EN |
Ressources |
acl |
Listes de contrôle Acess (ACLs) sur Linux |
2 |
SIO1 |
|
|
db-access |
Contrôlez le partage d’informations dans une base de données SQL par une politique de sécurité de l’information. |
2 |
SLAM, SISR |
|
|
backups2 |
Utilisation de tar et de vidage/restauration pour les sauvegardes de fichiers, y compris les sauvegardes distantes. |
1 |
SLAM, SISR |
|
|
capabilities |
Utilisation des fonctionnalités Linux pour limiter les privilèges de programme. |
2 |
SLAM, SISR |
|
|
sys-log |
Enregistrez l’utilisation et la configuration de base du système sur un système Ubuntu. |
2 |
SISR |
|
|
centos-log2 |
Enregistrez l’utilisation et la configuration de base du système sur un système CentOS. |
2 |
SISR |
|
|
file-deletion |
Récupération de données à partir de fichiers supprimés dans les systèmes de fichiers EXT2 et NTFS. |
2 |
SISR |
|
|
file-integrity |
Vérification de l’intégrité du fichier, découverte de l’empreinte des fichiers sha1, et suppression de l’intrus |
2 |
SIO1 |
|
|
pass-crack |
Introduction aux mots de passe et aux schémas élémentaires de "crack". |
2 |
SIO1 |
|
|
denyhost |
Utilisation de l’utilitaire denyhost pour bloquer les attaques de force brute sur SSH |
2 |
SISR |
|
|
ossec |
IDS Host-based avec OSSEC. |
2 |
SISR | OT_corrigé | |
users |
Introduction à la gestion des utilisateurs, des groupes et des autorisations sur les fichiers. |
1 |
SIO1 |
|
|
nix-commands |
Introduction aux commandes Linux et shell. |
1 |
SIO1 |
|
|