Retour aux mises à jour
New releaseSep 12, 2026

Labtainers v1.4.4n

Labtainers : Un cadre de laboratoire cyber basé sur Docker

Partager

Labtainers : un framework de laboratoire cyber basé sur Docker

Labtainers comprend plus de 50 exercices de laboratoire cyber et des outils pour créer les vôtres. Importez une seule VM appliance ou installez sur un système Linux et vos étudiants en ont terminé avec le provisionnement et la configuration administrative, pour ces exercices et les futurs.

  • Environnements d'exécution de laboratoire cohérents et provisionnement automatisé via des conteneurs Docker
  • Topologies réseau multi-composants sur un ordinateur portable aux performances modestes
  • Évaluation automatisée de l'activité et de la progression des étudiants en laboratoire
  • Exercices de laboratoire individualisés pour décourager le partage de solutions

Labtainers fournit des environnements d'exécution contrôlés et cohérents dans lesquels les étudiants réalisent leurs laboratoires entièrement dans les limites de leur ordinateur, quelle que soit la distribution Linux et les paquets installés sur l'ordinateur de l'étudiant. Labtainers fonctionne sur notre [VM appliance][vm-appliancee], ou sur n'importe quel Linux avec Docker installé. Et Labtainers est disponible sous forme de VM cloud, par exemple sur Azure comme décrit dans le Student Guide.

Consultez le Student Guide pour l'installation et l'utilisation, et le Instructor Guide pour l'évaluation des étudiants. Le développement et la personnalisation des exercices de laboratoire sont décrits dans le Designer Guide. Voir les Papers pour plus d'informations sur le framework. Le site web de Labtainers, et les téléchargements (y compris les VM appliances avec Labtainers préinstallé) sont à https://nps.edu/web/c3o/labtainers.

Distribution created: 09/11/2026 11:33
Revision: v1.4.4n
Commit: 9f1012dc
Branch: master

Content

Distribution and Use

Guide to directories

Support

Release notes

Distribution and Use

Please see the licensing and distribution information in the docs/license.md file.

Guide to directories

  • scripts/labtainers-student -- the work directory for running and testing student labs. You must be in that directory to run student labs.

  • scripts/labtainers-instructor -- the work directory for running and testing automated assessment and viewing student results.

  • labs -- Files specific to each of the labs

  • setup_scripts -- scripts for installing Labtainers and Docker and updating Labtainers

  • docs -- latex source for the labdesigner.pdf, and other documentation.

  • UI -- Labtainers lab editor source code (Java).

  • headless-lite -- scripts for managing Docker Workstation and cloud instances of Labtainers (systems that do not have native X11 servers.)

  • scripts/designer -- Tools for building new labs and managing base Docker images.

  • config -- system-wide configuration settings (these are not the lab-specific configuration settings.

  • distrib -- distribution support scripts, e.g., for publishing labs to the Docker hub.

  • testsets -- Test procedures and expected results. (Per-lab drivers for SimLab are not distributed).

  • pkg-mirrors -- utility scripts for internal NPS package mirroring to reduce external package pulling during tests and distribution.

Support

Use the GitHub issue reports, or email me at [email protected]

Also see https://my.nps.edu/web/c3o/support1

Release notes

The standard Labtainers distribution does not include files required for development of new labs. For those, run ./update-designer.sh from the labtainer/trunk/setup_scripts directory.

The installation script and the update-designer.sh script set environment variables, so you may want to logout/login, or start a new bash shell before using Labtainers the first time.

Jauary 6, 2026

  • Fixed bug introduced into installation script due to indents.

December 30, 2025

  • Modified checkwork report format to be vertical; video guide for headless; convenience paths

October 15, 2025

  • Revised packet-introspection lab to update link for maxmind geo location database and note use of legacy database.

April 24, 2025

  • Fixed imodule to properly create missing directories per pull request #96

November 22, 2024

  • Replaced google cloud VM, this time due to a failure of systemd within containers.

September 23, 2024

  • Replaced google cloud VM, which was using the wrong Docker version

September 10, 2024

  • Typo in creation of imodule path

July 26, 2024

  • Modify capinout to not use grantpt clib function, which now seems to crash when run from a container.

July 22, 2024

  • Add a base container for Ubuntu22 and changes to framework to support that.

July 5, 2024

  • Migrate to Ubuntu 24 as the VM appliance
  • The docker pyhton package uses a broken python http library, requires package downgrade.
  • Use virtual python environment to avoid Ubuntu lockdown of python packages.
  • Add boot parameter to allow sharing systemd between containers and the VM.
  • Redirect error messages from broken tar utility on updates.
  • Ubuntu update breakage for msc packages (see update-ubuntu.sh) for version 18 VMs
  • The docker-compose command is broken, use "docker compose"
  • Force socket permissions in headless labtainers.
  • Update headless Labtainers to use Ubuntu 24

November 27, 2023

  • Add Google Cloud Platform option for ubuntu22 on ec2 machine.

September 18, 2023

  • Previous fix implementation was flawed.

August 8, 2023

  • Handle change to DockerHub image json format. Thanks Kees!

April 17, 2023

  • Force use latest lab version, e.g., iptables2 intead of iptables. Fix tab completion to only display latest. (Issue #77)
  • CyberCIEGE lab installation was failing due to X11 race condition. (Issue #76)
  • Note in CyberCIEGE readme to direct students to save collected logs in $HOME directory. (Issue #75)
  • Radius lab checkwork was incorrectly reporting "radiusd not running", missing prestop script. (Issue #74)
  • Labedit corrupted the start configuration file when the MACVLAN_EXT option was used. (Issue #73)

February 1, 2023

  • Bash history for non-default users was not being saved. January 26, 2023
  • Modified powershell scripts for gcloud to use the selected zone to qualify VM names. January 4, 2023
  • Containers using systemd were failing on newer systemd present in Ubuntu 22
  • Add --zone parameter to google cloud scripts, with value derived from the set_defaults script. December 21, 2022
  • Fix xforge results criteria to not expect pathname, and add check to see if POST issued to edit profile. And fix attacker http server to run from the home directory. December 19, 2022
  • Add strace lab to introduce system call tracing.
  • X11 DISPLAY value was incorrect if multiple devices in the /tmp/.X11-unix directory.
  • Use of python/bash/sh/etc with no arguments was causing capinout to crash. December 9, 2022
  • Modify Azure vm creation script to use a prebuilt Labtainer VM image from the Azure Community Gallery.
  • Terminals on cloud VMs crash for unknown reasons during startup or right click on the terminal. Attempt to address by start/stop of a terminal. December 5, 2022
  • When collecting artifacts, include modified files from directories of non-default users, e.g., their bash histories.
  • Alter web assessment to display the new "other user" files.
  • Include files from .local/bin on each container in artifacts. Intended to make these available to instructor via web assesment.
  • In the ACL lab, include th /shared_data/bob/fun file in the results for reference by the instructor.
  • Catch use of "sh" or "bash" from command line and skip when parsing for given command, e.g., as done with "time" or "sudo".
  • In the tcpip lab, could not ssh into the server during subsequent lab sessions, the /run/sshd directory was not being remade. November 16, 2022
  • Fix path to Snort Manual in snort lab.
  • In ossec manual,fix path to manage_agents October 12, 2022
  • Google cloud remove background operator from gnome-terminal command, still crashes on right click but seems stable after running a newterm.sh. October 10, 2022
  • Fix Google cloud newterm.sh; expand that boot disk to 30G. September 20, 2022
  • Note user id and password for TCP/IP lab in the lab manual. August 30, 2022
  • Use the X11 socket name when setting DISPLAY from a container's .profile August 9, 2022
  • Fix name of processValueMax function in grader. Issue #63

August 4, 2022

  • The labedit program was rebuilt with the wrong JDK, preventing older JREs from running labedit

July 18, 2022

  • Creation of Ubuntu20-based containers was failing within IModules. Issue #61.

March 23, 2022

  • Fix path to tap lock directory; was causing failure of labs using network taps
  • Update plc-traffic netmon computer to have openjfx needed for new grassmarlin in java environment
  • Speed up lab startup by avoiding chown -R, which is very slow in docker.
  • Another shot at avoiding deletion of the X11 link in container /tmp directory.
  • Fix webtrack counting of sites visited and remove live-headers goal, that tool is no longer available. Clarified some lab manual steps.

March 2, 2022

  • Add new ssh-tunnel lab (thanks GWD!)
  • Fix labedit failure to reflect X11 value set by new_lab_setup
  • Add option to not parameterize a container

February 23, 2022

  • labedit was corrupting start.config after addition of new containers
  • Incorrect path to student guide in the student README file; dynamically change for cloud configs
  • Incorrect extension to update-labtainer.sh
  • Msc guide enahancements
  • Update the ghidra lab to include version 10.1.2 of Ghidra

February 15, 2022

  • Revert Azure cloud support to provision for each student. Azure discourages sharing resources.

January 24, 2022

  • Azure cloud now uses image stored in an Azure blob instead of provisioning for each student.
  • Added support for Google Cloud.

January 19, 2022

  • Introduce Labtainers on the Azure cloud. See the Student Guide for details on how to use this.

January 3, 2022

  • Revise setuid-env lab to add better assessment; simlab testing and avoid sighup in the printenv child.
  • Fix assessment goal count directive to exclude result tag values of false.
  • Do not require labname when using gradelab -a with a grader started with the debug option.
  • Revise capinout (stdin/stdout mirroring) to handle orphaning of command process children, improved documentation and error handling.
  • Added display of progress bars of docker images being pulled when a lab is first run.
  • User feedback on progress of container initialization.
  • The pcap-lib lab was missing a notify file needed for automated assessment; Remove extraneous step from Lab Manual.

November 23, 2021

  • Disable ubuntu popup errors on test VM.
  • Fix handling of different DISPLAY variable formats.

October 22, 2021

  • Revise the tcpip lab guide to note a successful syn-flood attack is not possible. Fix its automated assessment and add SimLab scripts.
  • Change artifact file extension from zip to lab, and add a preamble to confuse GUI file managers. Students were opening the zip and submitting its guts.
  • Make the -r option to gradelab the default, add a -c option for cumulative use of grader.
  • Modify refresh_mirror to refer to the local release date to avoid frequent queries of DockerHub. Each such query counts as an image pull, and they are now trying to monetize those.

September 30, 2021

  • Change bufoverflow lab guide and grading to not expect success with ASLR turned on, assess whether it was run.
  • Error handling for web grader for cases where student lacks results.
  • Print warning when deprecated lab is run.
  • Change formatstring grading to remove unused "_leaked_secret" description and clarify value of leaked_no_scanf.
  • Also change formatstring grading to allow any name for the vulnerable executable.

September 29, 2021

  • Gradelab error handling, reduce instances of crashes due to bad zip files.
  • Limit stdout artifact files to 1MB

September 17, 2021

  • Ghidra lab guide had wrong IP address, was not remade from source.

September 14, 2021

  • Example labs for LDAP and Mariadb using SSL. Intended as templates for new labs.
  • Handle Mariadb log format
  • Add per-container parameters to limit CPU use or pin container to CPU set.
  • Labpack creation now available via a GUI (makepackui).
  • Tab completion for the labtainer, labpack and gradelab commands.
  • New parallel computing lab ``parallel'' using MPI.

August 3, 2021

  • Add a "WAIT_FOR" configuration option to cause a container to delay parameterization until another container completes its parameterization.
  • Support for Mariadb log formats in results parsing
  • Remove support for Mac and Windows use of Docker Desktop. That product is too unstable for us to support.
  • Supress stderr messages when user uses built-in bash commands such as "which".
  • Bug fixes to makepack/labpack programs.

July 19, 2021

  • Add a DNS lab to introduce the DNS protocol and configuration.
  • Revised VirtualBox appliance image to start with the correct update script.
  • Split resolv.conf nameserver parameter out of the lab_gw configuration field into its own value.
  • IModule command failed if run before any labs had been started.

July 5, 2021

  • Errors in DISPLAY env variable management broke GUI applications on Docker Desktop.

July 1, 2021

  • Support Mac package installation of headless Labtainers.
  • The routing-basics lab automated assessment failed due to lack of treataslocal files
  • Correct typos and incorrect addresses in routing-basics lab, and fix automated assessment.
  • Assessment of pcapanalysis was failing.

June 10, 2021

  • All lab manual PDFs are now in the github repo
  • Convert vpnlab and vpnlab2 instructions to PDF lab manuals.

May 25, 2021

  • Add searchable keywords to each lab. See "labtainer -h" for usage.
  • Expand routing-basics lab and lab manual
  • Remove routing-basics2 lab, it is now redundant.
  • sudo on some containers failed because hostnames remove underscores, leading to mismatch with the hosts file. Fix with extra entry in the hosts file with container name sans underscore.
  • New Labpack feature to package a collection of labs, and makepack tool to create Labpacks.
  • Error check for /sbin directory when using ubuntu20 -- would be silently fatal.
  • New network-basics lab

May 5, 2021

  • Introduce a new users lab to introduce user/group management
  • Surpress Apparmor host messages in centos container syslogs

April 28, 2021

  • New base2 images lacked man pages. Used unminimize to restore them in the base image.
  • Introduce a OSSEC host-based IDS lab.

April 13, 2021

  • CyberCIEGE lab failed because X11 socket was not relocated prior to starting Wine via fixlocal.

April 9, 2021

  • New gdb-cpp tutorial lab for using GDB on a simple C++ program.
  • Floating point exceptions were revealing use of exec_wrap.sh for stdin/stdout mirroring.

April 7, 2021

  • ldap lab failed when moved to Ubuntu 20. Problem traced to problem with nscd cache of pwd. Move ldap to Ubuntu 20

March 23, 2021

  • Parameterizing with RANDOM did not include the upper bound.
  • Add optional step parameter to RANDOM, e.g., to ensure word boundaries.
  • db-access lab: add mysql-workbench to database computer.
  • New overrun lab to illustrate memory references beyond bounds of c data structures.
  • New printf lab to introduce memory references made by the printf function.

March 19, 2021

  • gradelab ignore makdirs error, problem with Windows rmtree on shared folders.
  • gradelab handle spaces in student zip file names.
  • gradelab handle zip file names from Moodle, including build downloads.

March 12, 2021

  • labedit UI: Remove old wireshark image from list of base images.
  • labedit UI: Increase some font sizes.
  • grader web interface failed to display lab manuals if the manual name does not follow naming conventions.

March 11, 2021

  • labedit UI add registry setting in new global lab configuration panel.

March 10, 2021

  • labedit UI fixes to not build if syntax error in lab
  • labedit UI "Lab running" indicator fix to reflect current lab.

March 8, 2021

  • Deprecate use of HOST_HOME_XFER, all labs use directory per the labtainer.config file.
  • Add documentation comment to start.config for REGISTRY and BASE_REGISTRY

March 5, 2021

  • Error handling on gradelab web interface when missing results.
  • labedit addition of precheck, msc bug fixes.

February 26, 2021

  • The dmz-example lab had errors in routing and setup of dnsmasq on some components.

February 18, 2021

  • UI was rebuilding images because it was updating file times without cause
  • Clean up UI code to remove some redundant data copies.

February 14, 2021

  • Add local build option to UI
  • Create empty faux_init for centos6 bases.

February 11, 2021

  • Fix UI handling of editing files. Revise layout and eliminate unused fields.
  • Add ubuntu20 base2 base configuration along with ssh2, network2 and wireshark2
  • The new wireshark solves the prolem of black/noise windows.
  • Map /tmp/.X11-unix to /var/tmp and create a link. Needed for ubuntu20 (was deleting /tmp?) and may fix others.

February 4, 2021

  • Add SIZE option to results artifacts
  • Simplify wireshark-intro assessment and parameterization and add PDF lab manual.
  • Provide parameter list values to pregrade.sh script as environment variables
  • enable X11 on the grader
  • put update-designer.sh into users path.

January 19, 2021

  • Change management of README date/rev to update file in source repo.
  • Introduce GUI for creating/editing labs -- see labedit command.

December 21, 2020

  • The gradelab function failed when zip files were copied from a VirtualBox shared folder.
  • Update Instructor Guide to describe management of student zip files on host computers.

December 4, 2020

  • Transition distribution of tar to GitHub releaese artifacts
  • Eliminate separate designer tar file, use git repo tarball.
  • Testing of grader web functions for analysis of student lab artifacts
  • Clear logs from full smoketest and delete grader container in removelab command.

December 1, 2020

  • The iptables2 lab assessment relied on random ports being "unknown" to nmap.
  • Use a sync diretory to delay smoketests from starting prior to lab startup.
  • Begin integrating Lab designer UI elements.

October 13, 2020

  • Headless configuraions for running on Docker Desktop on Macs & Windows
  • Headless server support, cloud-config file for cloud deployments
  • Testing support for headless configurations
  • Force mynotify to wait until rc.local runs on boot
  • Improve mynotify service ability to merge output into single timestamp
  • Python3 for stopgrade script
  • SimLab now uses docker top rather than system ps

September 26, 2020

  • Clean up the stoplab scripts to ignore non-lab containers
  • Add db-access database access control lab for controlles sharing of a mysql db.

September 17, 2020

  • The macs-hash lab was unable to run Leafpad due to the X11 setting.
  • Grader logging was being redirected to the wrong log file, now captures errors from instructor.py
  • Copy instructor.log from grader to the host logs directory if there is an error.

August 28, 2020

  • Fix install script to use python3-pip and fix broken scripts: getinfo.py and pull-all.py
  • Registry logic was broken, test systems were not using the test registry, add development documentation.
  • Add juiceshop and owasp base files for OWASP-based web security labs
  • Remove unnecessary sudos from check_nets
  • Add CHECK_OK documentation directive for automated assessment
  • Change check_nets to fix iptables and routing issues if so directed.

August 12, 2020

  • Add timeout to prestop scripts
  • Add quiz and checkwork to dmz-lab
  • Restarting the dmz-lab without -r option broke routing out of the ISP.
  • Allow multiple files for time_delim results.6 août 2020
  • Bug dans la gestion des erreurs lorsque le socket X11 est absent
  • Les virgules dans les questions de quiz entraînaient des erreurs d'analyse
  • Ajout du quiz et de checkwork au lab iptables2

28 juillet 2020

  • Ajout du support des quiz -- ce sont des quiz d'orientation, pas des quiz d'évaluation. Voir le guide du concepteur.
  • Ajout de l'évaluation de l'état actuel pour une utilisation avec la commande checkwork.

21 juillet 2020

  • Ajout de testsets/bin au chemin du concepteur
  • Corrections et explications du guide du concepteur pour les étapes IModule.
  • Ajout du type de résultat RANGE_REGEX pour définir des plages temporelles à l'aide d'expressions régulières sur les entrées de journal.
  • Vérification de l'existence du socket X11 s'il est nécessaire au démarrage d'un lab
  • Ajout de l'image de base pour mysql
  • Gestion des formats d'horodatage des journaux mysql dans l'analyse des résultats.

15 juin 2020

  • Nouvelle image de base contenant le routeur open source Bird
  • Ajout du lab bird-bgp Border Gateway Protocol.
  • Ajout de bird-ospf Open Shortest Path First routing protocol.
  • Amélioration de la gestion des changements DNS, l'accès externe depuis certains conteneurs était bloqué sur certains sites.
  • Ajout d'une section au Guide de l'instructeur sur l'utilisation de Labtainers dans des environnements dépourvus d'accès Internet.

21 mai 2020

  • Déplacement de tous les dépôts vers le registre labtainers de Docker Hub
  • Prise en charge des montages définis dans start.config pour permettre des installations logicielles persistantes
  • Modification du lab ida pour utiliser une installation persistante d'IDA -- le nouveau nom est ida2
  • Ajout du lab cgc pour l'exploration de plus de 200 services vulnérables du DARPA Cyber Grand Challenge
  • Ajout de la commande type_string à SimLab
  • Ajout du lab netflow pour l'utilisation de l'analyse du trafic réseau NetFlow
  • Ajout des versions 64 bits des labs bufoverflow et formatstring

9 avril 2020

  • Le grader échouait à l'évaluation des conditions CONTAINS et FILE_REGX lorsque des jokers étaient utilisés pour la sélection de fichiers.
  • Ajout d'indices pour l'utilisation de hexedit dans le lab symlab.
  • Ajout de l'opérateur hash_equal et de hash-goals.py à l'évaluation automatisée pour éviter de publier les réponses attendues dans les fichiers de configuration.
  • Évaluation automatisée pour le lab pcap-lib.

7 avril 2020

  • Les journaux ont été déplacés vers $LABTAINER_DIR/logs
  • Autres nettoyages pour permettre les reconstructions et les tests avec Jenkins, y compris l'utilisation de répertoires temporaires uniques pour les builds
  • Déplacement des fonctions de support de build hors de labutils vers build.py
  • Ajout du lab pcap-lib pour le développement de programmes d'analyse de trafic basés sur la bibliothèque PCAP

13 mars 2020

  • Ajout du lab plc-traffic pour l'utilisation de GrassMarlin avec le trafic généré pendant le lab.
  • Introduction de la possibilité d'ajouter des conteneurs "tap" pour collecter les PCAPs des réseaux sélectionnés.
  • Mise à jour de la documentation GNS3 pour l'accès externe aux conteneurs, et l'utilisation de dummy_hcd pour simuler des lecteurs USB.
  • Modification du template kali pour utiliser faux_init plutôt que de tenter d'utiliser systemd.
  • Déplacement des distributions (fichiers tar) vers box.com
  • Modification de l'utilisation de netstat par SimLab pour ne pas effectuer de recherche dns.

26 février 2020

  • Si la commande labtainer ne trouve pas le lab, suggérer à l'utilisateur d'exécuter update-labtainer.sh
  • Ajout d'un support préliminaire pour un composant de tap réseau afin de visualiser tout le trafic réseau.
  • Script pour récupérer les images de lab afin de préparer des VM qui seront utilisées sans internet.
  • Fourniture du nom d'utilisateur et du mot de passe pour le lab nmap-discovery.

18 février 2020

  • Héritage de la variable d'environnement DISPLAY depuis l'hôte (par ex., VM) au lieu de supposer :0

14 février 2020

  • Ajout d'un exercice d'introduction à l'ingénierie inverse logicielle avec Ghidra.

11 février 2020

  • Mise à jour des guides pour décrire l'accès distant aux conteneurs dans les environnements GNS3
  • Masquage de composants et de liens sélectionnés dans GNS3.
  • Les figures du guide du lab webtrack n'étaient pas visibles ; fautes de frappe dans celui-ci et nmap-ssh

6 février 2020

  • Introduction d'une fonction pour gérer à distance les conteneurs, par ex., pousser des fichiers.
  • Ajout d'une fonction d'environnement GNS3 pour simuler l'insertion d'un lecteur USB.
  • Amélioration de la gestion des erreurs de build Docker.

3 février 2020

  • Sur le lab metasploit, le service postgresql ne fonctionnait pas sur la victime.
  • Fusion du contenu du manuel IModule dans le guide du concepteur de lab.
  • Support IModule supplémentaire.

27 janvier 2020

  • Introduction du support initial pour les IModules (labs développés par les instructeurs). Voir docs/imodules.pdf.
  • Correction de la variable d'environnement LABTAINER_DIR cassée dans update-labtainer
  • Correction du mode d'accès du fichier accounting.txt dans le lab ACL (était devenu rw-r-r). Utilisation de chmod explicite dans fixlocal.sh.

14 janvier 2020

  • Portage du framework et de gradelab vers Python3 (les labs Python2 existants ne changeront pas)
    • Utilisation d'options random.seed rétrocompatibles
    • Contournement de randint non compatible pour retourner les anciennes valeurs
    • Poursuite du support de python2 pour les plateformes dépourvues de python3 (ou celles telles que l'ancienne appliance VM qui incluent python 3.5.2, ce qui casse la compatibilité de random.seed).
    • Ajout d'un alias rebuild pour rebuild.py qui sélectionnera python2 si nécessaire.
  • Les pages de manuel des labs basés sur Centos échouaient ; utilisation de mandb dans le fichier docker de base
  • Le masque de sous-réseau dmz-lab pour le réseau DMZ était erroné (détecté par python3) ; tout comme l'adresse IP de la passerelle interne dans le manuel du lab
  • ghex supprimé des labs centos -- plus facilement supporté par centos 7
  • Le lab file-deletion doit être complété sans redémarrer la VM, notez-le dans le manuel du lab.
  • Ajout du commutateur NO_GW à start.config pour désactiver les passerelles par défaut sur les conteneurs.
  • Lab Metasploit, plante la VM hôte s'il s'exécute en privilégié ; longs délais sur su si systemd est activé ; donc exécution sans systemd. Suppression de l'utilisation de la base de données du manuel du lab, configuration pour utiliser le nouveau commutateur no_gw
  • Mise à jour des en-têtes de fichiers pour les licences/conditions ; ajout d'un fichier de licence consolidé.
  • Modification de publish.py pour utiliser par défaut le registre de test, utilisation de -d pour forcer l'utilisation de default_registry
  • Révision des procédures de contrôle de source pour utiliser un registre de test différent pour chaque branche, et utiliser une branche premaster pour les tests finaux d'une version.

9 octobre 2019

  • Suppression de dnsmasq du composant dns dans le dmz-lab. Causait l'échec de bind sur certaines installations.

8 octobre 2019

  • Erreur de syntaxe dans la configuration du registre de test ; informations du concepteur de lab sur les fichiers volumineux ; récupération des fichiers bigexternal.txt

30 septembre 2019

  • La récupération du registre DockerHub échoue à nouveau pour certains utilisateurs. Ignorer le préfixe html vers json.

20 septembre 2019

  • L'évaluation de onewayhash devrait autoriser les opérations hmac sur le fichier choisi par l'étudiant.

5 septembre 2019

  • Reconstruction du lab metasploit, metasploit-framework présentait un bug. Et le fichier "treataslocal" des labs a été omis lors du déplacement depuis svn. Correction de la frappe dans le manuel du lab metasploit.

30 août 2019

  • Annulation du test d'existence des répertoires de conteneurs, ils n'existent pas toujours.

29 août 2019

  • Les extractions d'images de lab depuis docker hub ont échoué en raison d'un changement dans github ou curl ? Capture de la redirection vers cloudflare. Ajout du support GNS3. Correction du dnssec de dmz-lab.

11 juillet 2019

  • Évaluation automatisée pour les conteneurs CentOS6, correction du problème de mémoire de firefox, support d'arguments docker create arbitraires dans le fichier start.config.

6 juin 2019

  • Introduction d'une base Centos6, mais pas encore de support pour l'évaluation automatisée

23 mai 2019

  • L'évaluation automatisée de setuid-env a échoué en raison de fautes de frappe dans les séparateurs de champs.

8 mai 2019

  • Corrections au manuel du lab Capabilities

2 mai 2019

  • Correction du lab Acl pour les permissions de bobstuff.txt. Utilisation de chmod explicite dans fixlocal.sh
  • Révision du guide étudiant pour clarifier l'utilisation de stop et de l'option -r dans le corps du manuel.

9 mars 2019

  • La fonction checkwork réutilisait les conteneurs, empêchant ainsi les étudiants d'éliminer les artefacts des travaux de lab précédents.
  • Ajout d'une annexe au lab symkey pour décrire le format d'image BMP.

22 février 2019

  • Le serveur http n'a pas démarré dans les labs vpn et vpn2. Évaluation automatisée supprimée de ces labs jusqu'à refonte.

7 janvier 2019

  • Correction de l'évaluation automatisée de gdblesson pour qu'elle soit au moins opérationnelle.

27 janvier 2019

  • Correction du manuel du lab routing-basics2 et correction du routage pour permettre l'accès externe au serveur web interne.

29 décembre 2018

  • Correction de routing-basics2, mêmes problèmes que routing-basics, plus une adresse ip incorrecte dans le resolv.conf de la passerelle

5 décembre 2018

  • Correction du lab routing-basics, la résolution dns au niveau des composants isp et gatway était cassée.

14 novembre 2018

  • Suppression de /run/nologin de la machine archive dans backups2 -- besoin d'une solution générale pour ce problème de nologin

5 novembre 2018

  • Modification du fichier aid.conf par défaut du lab file-integrity pour suivre les changements de métadonnées plutôt que les heures de modification des fichiers

22 octobre 2018

  • La résolution de verydodgy.com dans le lab macs-hash a échoué au redémarrage du lab
  • La fonction Notify a échoué si notify_cb.sh est manquant

12 octobre 2018

  • Définition de ulimit sur la taille de fichier, limite à 1G

10 octobre 2018

  • Forcer la collecte des fichiers paramétrés
  • Inclure explicitement leafpad et ghex dans la base centos-xtra et reconstruire les images dépendantes.

28 septembre 2018

  • Correction des modes d'accès du fichier partagé dans le lab ACL
  • Clarification d'une question dans pass-crack
  • Modification de la collecte d'artefacts pour ignorer les fichiers plus anciens que le début du lab.
  • Ajout du lab sur les algorithmes de calcul quantique

12 septembre 2018

  • Correction des erreurs de syntaxe de notation de setuid-env
  • Correction d'une erreur de syntaxe dans les règles de pare-feu d'exemple d'iptables2
  • Reconstruction des labs centos, déplacement des dérivés de lamp pour utiliser lamp.xtr pour waitparam et forcer httpd à attendre que cela se termine.

7 septembre 2018

  • Ajout de CyberCIEGE comme lab
  • Affichage des informations de read_pre.txt avant l'extraction des images, et possibilité d'abandonner.

5 septembre 2018

  • Restauration du traitement du téléchargement en masse sakai vers la fonction gradelab.
  • Suppression des scripts instructeur inutilisés.

4 septembre 2018

  • Autorisation de plusieurs adresses IP par interface réseau
  • Ajout d'une image de base pour Wine
  • Ajout de la simulation ICS virtuelle GRFICS

23 août 2018

  • Ajout du lab GrassMarlin (découverte de réseau ICS)

23 août 2018

  • Ajout du lab GrassMarlin (découverte de réseau ICS)

21 août 2018

  • Autre correction concernant les problèmes d'authentification AWS (DockerHub utilise AWS).
  • Correction de new_lab_setup.py pour utiliser git au lieu de svn.
  • Division du lab plc-forensics en un lab de base et un lab avancé (plc-forensics-adv)

17 août 2018

  • Transition vers git & GitHub comme dépôt de référence.

15 août 2018

  • Modification de l'évaluation du lab plc-forensics pour être plus générale ; révision du manuel du lab pour refléter wireshark sur le Labtainer.

15 août 2018

  • Ajout de la commande "checkwork" permettant aux étudiants de consulter les résultats de l'évaluation automatisée de leur travail de lab.
  • Inclusion de la journalisation des paquets iptables abandonnés dans les labs iptables2 et iptables-ics.
  • Suppression des instances obsolètes de is_true et is_false de goal.config
  • Correction de l'évaluation booléenne pour gérer "NOT foo", elle attendait plus d'opérandes.

9 août 2018

  • Prise en charge du remplacement de paramètres dans les fichiers results.config
  • Ajout du type de résultat TIME_DELIM pour results.config
  • Refonte du lab iptables, suppression des commandes nmap cachées, introduction d'un service personnalisé

7 août 2018

  • Ajout d'un lien vers le guide étudiant dans le répertoire labtainer-student
  • Ajout d'un lien vers le guide étudiant sur les bureaux des VM
  • Corrections d'iptables-ics pour éviter un long délai à l'arrêt ; et corrections des tests de régression
  • Ajout d'une note dans les guides suggérant aux étudiants d'utiliser le navigateur de la VM pour transférer le fichier zip des artefacts à l'instructeur.

1er août 2018

  • Utilisation d'une image Docker générique pour l'évaluation automatisée ; arrêt de la création d'images "instructor" par lab.

30 juillet 2018

  • Documentation de la nécessité de débloquer le waitparam.service (en créant le répertoire flag) si un script fixlocal.sh doit démarrer un service pour lequel waitparam est un prérequis.
  • Ajout du lab plc-app pour l'exercice sur le pare-feu applicatif PLC et la liste blanche.

25 juillet 2018

  • Ajout de l'opérateur string_contains au traitement des goals
  • Modification de l'évaluation du lab formatstring pour tenir compte du fait que le secret divulgué n'est pas toujours à la fin de la chaîne affichée.

24 juillet 2018

  • Ajout du lab SSH Agent (ssh-agent)

20 juillet 2018

  • Prise en charge de la construction hors ligne, possibilité d'ignorer toute extraction d'image
  • Restauration de la restauration des dépôts apt/yum dans les templates Dockerfile.
  • Gestion des URL de redirection lors de la récupération des blobs du registre Docker pour éviter les erreurs d'authentification (Ne pas se fier à curl --location).

12 juillet 2018

  • Ajout de la fonctionnalité prestop pour permettre l'exécution de scripts spécifiés par le concepteur sur des composants sélectionnés avant l'arrêt du lab.
  • Correction du nommage d'hôte dans le lab ssl, cela cassait l'évaluation automatisée.
  • Correction de l'état initial de dmz-lab pour permettre les résolutions DNS depuis le réseau interne.
  • Le traitement FILE\REGEX ne gérait pas correctement les recherches multilignes.
  • La version du framework dérivée des images nouvellement reconstruites avait une valeur par défaut incorrecte.

10 juillet 2018

  • Ajout d'un lab LDAP
  • Achèvement de la transition vers des images Ubuntu basées sur systemd, suppression des fichiers inutilisés
  • Déplacement du fichier tar lab_sys vers le répertoire tmp par conteneur pour la concurrence.

6 juillet 2018

  • Toutes les images de base Ubuntu remplacées par des versions basées sur systemd
  • Les images de conteneur Labtainer dans le registre sont désormais étiquetées avec l'ID de l'image de base et comportent des labels reflétant l'image de base.
  • Une installation donnée extraira et utilisera des images cohérentes avec les images de base qu'elle possède.
  • Si vous utilisez une image VM, vous voudrez peut-être la remplacer par une image VM plus récente de notre site web.
  • Les nouveaux labs ne fonctionneront pas sans télécharger des images de base plus récentes ; ce qui peut conduire votre VM à stocker plusieurs versions de grandes images de base (> 500 Mo chacune).
  • Perte d'artefacts de processus qui étaient en cours d'exécution lorsque le lab a été arrêté -- ne tuait pas correctement les processus capinout.

27 juin 2018

  • Ajout du support pour les images Ubuntu systemd
  • Suppression de l'ancienne copie de SimLab.py de labtainer-student/bin
  • Déplacement des sources apt et yum vers /var/tmp
  • Clarification des différences entre l'utilisation de "boolean" et "count_greater" dans les évaluations
  • Extension de Add-HOST dans start.config pour inclure tous les composants d'un réseau.
  • Ajout d'une option à new_lab_setup.py pour ajouter un conteneur basé sur une copie d'un conteneur existant.

21 juin 2018

  • Définition de la variable d'environnement DISPLAY pour root
  • Correction de la gestion des dépendances de build de la sortie de svn status
  • Ajout du lab radius
  • Correction d'un bug dans l'ajout SimLab
  • Utilisation de svn, le cas échéant, pour changer les noms de fichiers avec new_lab_setup.py

19 juin 2018

  • Conservation de l'ordre des conteneurs définis dans start.conf lors de la création d'un terminal avec plusieurs onglets
  • Clarification du manuel du concepteur pour identifier le chemin vers les fichiers de configuration d'évaluation.
  • Suppression de l'invite demandant à l'instructeur de fournir un email
  • Vérification d'erreur ratée lors du test du numéro de version
  • Inclusion des horodatages des démarrages et redos de lab dans le json d'évaluation
  • Ajout d'un lab SSL qui inclut l'authentification bidirectionnelle et la création de certificats.

14 juin 2018

  • Ajout de diagnostics au paramétrage, recherche de la raison pour laquelle certaines installations semblent échouer à ce sujet.
  • Si un conteneur est déjà créé, s'assurer qu'il est paramétré, sinon abandonner pour éviter des conteneurs corrompus ou à moitié préparés.
  • Correction du numéro de version du programme pour utiliser svn HEAD

15 juin 2018

  • Conversion des instructions en texte brut qui apparaissaient dans les xterms en fichier pdf.
  • Correction d'un bug dans la gestion des versions des images qui n'ont pas encore été extraites.
  • Détection de l'apparition d'un conteneur qui a été créé, mais non paramétré, et invite l'utilisateur à redémarrer le lab avec l'option "-r".
  • Ajout d'un utilitaire concepteur : rm_svn.py pour que les fichiers supprimés déclenchent une reconstruction d'image.

13 juin 2018

  • Installation de xterm sur les systèmes Ubuntu 18
  • Contournement de la casse dans les nouvelles versions de la gestion des onglets de gnome-terminal

11 juin 2018

  • Ajout de la vérification de version pour comparer les images au framework.
  • Clarification de divers manuels de lab

2 juin 2018

  • Lors de l'installation sur Ubuntu 18, utiliser docker.io au lieu de docker-ce
  • Le capinout provoquait un crash lorsqu'une commande surveillée "sudo su" est suivie d'une commande utilisateur non élevée.
  • Déplacement des paramètres routing et resolv.conf vers /etc/rc.local au lieu de fixlocal.sh afin qu'ils persistent à travers les démarrages/arrêts des conteneurs.

31 mai 2018

  • Contournement d'un bug Docker qui provoquait le retour à la ligne du texte dans un terminal sans saut de ligne.
  • Extension de COMMAND_COUNT pour tenir compte des pipes
  • Création d'une nouvelle version du lab backups qui inclut des sauvegardes vers un serveur distant et sauvegarde une partition entière.
  • Modification des instructions du sshlab pour utiliser l'utilitaire ssh-copy-id
  • Suppression du fichier /run/nologin de parameterize.sh pour permettre la connexion ssh sur CentOS

30 mai 2018

  • Extension de new_lab_setup.py pour permettre l'identification de l'image de base à utiliser
  • Création d'une nouvelle version de centos-log qui inclut la journalisation centralisée.
  • La validation de l'évaluation n'acceptait pas l'option "time_not_during".
  • Début de l'intégration de Labtainer Master pour gérer les Labtainers depuis un conteneur Docker.

25 mai 2018

  • Suppression des pauses de 10 secondes de divers services. Retardait les réponses xinetd, cassant les tests automatisés.
  • Correction de la notation du lab snort pour n'exiger que "CONFIDENTIAL" dans l'alarme. Suppression des fichiers inutilisés du lab.
  • Les heures de fin de programme n'étaient pas enregistrées si le programme était en cours d'exécution lorsque le lab a été arrêté.

21 mai 2018

  • Correction de la notation retlibc pour supprimer un goal en double, échouait à l'évaluation automatisée
  • Suppression des copies de mynotify.py des labs individuels et du template de lab, il fait partie de lab_sys/sbin, mais n'avait pas été mis à jour pour refléter les corrections apportées pour le lab acl.

18 mai 2018

  • Masquage du message de signal de exec_wrap pour que le message d'erreur segv soit correct.
  • Le capinout perdait parfois stdout, vérifier la sortie standard de la commande à la mort de cmd.
  • Correction de la notation de formatstring pour capturer le message de défaut de segmentation.
  • Ajout de la fonctionnalité type_function à SimLab pour taper la sortie standard d'un script (voir formatstring simlab).
  • Suppression de la limitation de SimLab sur la combinaison de guillemets simples/doubles.
  • Ajout de la directive window_wait à SimLab pour mettre en pause jusqu'à ce que la fenêtre avec le titre donné puisse être trouvée.
  • Modification du lab plc pour altérer les titres du terminal du monde physique afin de refléter le statut, cela facilite également les tests.
  • Correction du lien du manuel du lab bufoverflow.

15 mai 2018

  • Ajout d'une annexe sur l'utilisation de l'outil SimLab pour simuler la performance des labs par les utilisateurs pour les tests de régression et le développement de labs.
  • Ajout de la fonction wait_net à SimLab pour mettre en pause jusqu'à ce que les connexions réseau sélectionnées se terminent.
  • Modification de l'évaluation automatisée acl pour utiliser FILE_REGEX pour la correspondance multiligne.
  • Test SimLab pour le lab xsite.

11 mai 2018

  • Ajout du fichier "noskip" pour forcer la collecte des fichiers autrement trouvés dans home.tar, nécessaire pour récupérer Firefox places.sqlite.
  • Fusion de la base de données sqlite avec le tampon write ahead avant l'extraction.
  • Corrections au manuel du lab pour le symkeylab
  • Ajouts de notation pour symkeylab et pubkey
  • Améliorations de l'outil simlab : support de include, correction du nommage des fenêtres.

9 mai 2018

  • Correction du paramétrage du lab file-deletion. Correction d'une erreur dans son manuel de lab.
  • Remplacement de l'utilisation de shell=True dans les scripts python pour réduire les processus et permettre le suivi des PIDs
  • Nettoyage des manuels pour backups, pass-crack et macs-hash.

8 mai 2018

  • Gestion d'une condition de course pour empêcher gnome-terminal d'exécuter sa commande docker avant qu'un terminal d'instruction xterm n'exécute sa commande.
  • Ne pas afficher d'erreurs lorsque l'instructeur arrête un lab démarré avec "-d".
  • Modification de la notation de nmap-ssh pour mieux refléter l'intention du lab.
  • Plusieurs corrections de documents et de scripts suggérées par olberger sur github.

7 mai 2018

  • Utilisation du programme capinout basé sur C au lieu de l'ancien capinout.sh pour capturer stdin et stdout. Voir trunk/src-tool/capinout. Supprime les limitations associées à l'utilisation de ctrl-C pour interrompre les programmes surveillés et l'affichage des mots de passe dans telnet et ssh.
  • Inclusion du support pour le traitement du zip bulk_download de saki pour extraire les rapports soumis séparément, et résume les soumissions manquantes.
  • Ajout de vérifications à l'email fourni par l'utilisateur pour s'assurer qu'il s'agit de caractères imprimables.
  • Pendant la notation, si l'email fourni par l'utilisateur ne correspond pas au nom du fichier zip, procéder à la notation des résultats, mais inclure une note dans le tableau reflétant la triche. Nécessaire pour récupérer des cas où l'étudiant saisit des données incohérentes pour une adresse email.
  • Modification de la notation telnetlab pour ne pas regarder la sortie tcpdump pour les mots de passe -- la correction capinout conduit à une transmission correcte caractère par caractère au serveur.
  • Correction d'une faute de frappe dans install-docker.sh et utilisation de sudo pour modifier le paramètre dns de docker dans ce script.

26 avril 2018

  • Transition vers l'utilisation de "labtainer" pour démarrer le lab, et "stoplab" pour l'arrêter.
  • Ajout de l'option --version à la commande labtainer.
  • Ajout des types de résultats log_ts et log_range, et des opérateurs de goal time_not_during. Refonte de la notation centos-log et sys-log pour utiliser ces fonctionnalités.
  • Placement de labsys.tar dans /var/tmp au lieu de /tmp, il était parfois supprimé avant expansion
  • L'exécution d'applications X en tant que root échoue après le redémarrage de la VM.
  • Ajout des pages de manuel "User Command" aux labs basés sur CentOS
  • Correction d'un bug récent qui empêchait la collecte des fichiers docs des étudiants
  • Modification des smoke-tests pour ne comparer que la ligne de résultat spécifique à l'étudiant, sans espaces blancs20 avril 2018
  • Le service denyhosts ne démarre pas la première fois, déplacement du démarrage vers student_startup.sh.
  • Déplacer tous les services faux_init après la paramétrisation -- rsyslog ne démarrait pas au second démarrage du conteneur. 19 avril 2018
  • Le lab acl ne parvenait pas à évaluer correctement les performances de l'étape du cheval de Troie.
  • Collecter les documents des étudiants par défaut.
  • Le lab denyhost a été modifié pour refléter que denyhosts (ou tcp wrappers ?) modifie désormais iptables. De plus, le service denyhosts ne démarrait pas dans certains cas.
  • Lors de la mise à jour de Labtainers, ne pas écraser les fichiers plus récents que ceux de l'archive -- préserver les rapports de lab des étudiants.

12 avril 2018

  • Ajouter une documentation sur l'objectif des buts de lab, et l'afficher à l'instructeur lorsque l'instructeur démarre un lab.
  • Correction de l'utilisation de la fonction precheck lorsque le programme est en treataslocal, passer capintout.sh le chemin complet du programme.
  • Copier les fichiers instr_config au moment de l'exécution plutôt que lors de la construction de l'image.
  • Ajouter une section du Guide du Concepteur sur le débogage de l'évaluation automatisée.
  • Casse incorrecte dans les noms de fichiers des rapports de lab.
  • Une fonction chown inutile faisait parfois planter instructor.py.
  • Prise en charge des tests automatisés des labs (voir SimLab et smoketest).
  • Déplacer testsets et distrib sous trunk

5 avril 2018

  • Réviser le profil Firefox pour supprimer le message « you've not use firefox in a while... ».
  • Supprimer les pulls inutiles depuis le registre -- obtenir les dates des images via l'API docker hub à la place.

28 mars 2018

  • Utiliser tar explicite au lieu de « docker cp » pour les fichiers système (Docker ne suit pas les liens.)
  • Corriger le lab backups pour utiliser un système de fichiers séparé et mettre à jour le manuel.

26 mars 2018

  • Prise en charge des modes multi-utilisateurs (voir le Guide de l'Utilisateur du Concepteur de Lab).
  • Suppression de la dépendance de construction sur les fichiers lab_bin et lab_sys. Ceux-ci sont désormais copiés lors de la paramétrisation du lab.
  • Déplacer capinout.sh vers /sbin afin qu'il puisse être trouvé lors de l'exécution en tant que root.

21 mars 2018

  • Ajouter CLONE pour permettre plusieurs instances du même conteneur, par exemple pour des labs partagés par plusieurs étudiants simultanés.
  • Adapter le lab kali-test pour fournir un exemple de macvlan et CLONE
  • Copier le script capinout.sh vers /sbin afin que root puisse le trouver après un sudo su.

15 mars 2018

  • Prise en charge des réseaux macvlan pour les communications avec des hôtes externes
  • Ajouter une base Kali linux, et une image Metasploitable 2 (voir kali-test)

8 mars 2018

  • Ne pas exiger labname lors de l'utilisation de stop.py
  • Intercepter les erreurs causées par des réseaux parasites et conseiller l'utilisateur sur un correctif
  • Ajouter la prise en charge de l'utilisation de dépôts apt et yum locaux au NPS

21 février 2018

  • Ajouter dmz-lab
  • Changer « checklocal » en « precheck », reflétant qu'il s'exécute avant la commande.
  • Découpler la notification d'événements inotify de l'utilisation de precheck.sh, permettre aux listes d'événements inotify d'inclure un nom de fichier de sortie optionnel.
  • Étendre le hook bash aux opérations root, vider ce bash_history.
  • Permettre la paramétrisation des champs de start.config, par exemple pour des adresses IP aléatoires
  • Prise en charge de la surveillance des services démarrés via systemctl ou /etc/init.d
  • Introduire des qualificateurs de délimiteur temporel pour organiser un fichier journal horodaté en plages délimitées par un changement de configuration d'intérêt (voir dmz-lab)

5 février 2018

  • Les valeurs booléennes des fichiers results.config sont désormais traitées comme des valeurs de but
  • Ajouter la prise en charge des expressions régulières pour identifier les résultats d'artefacts.
  • Prise en charge de registres Docker alternatifs, y compris un registre de test local pour les tests
  • Corrections diverses aux labs et aux manuels de lab
  • Le hook de surveillance capinout ne tuait pas les processus enfants à la sortie.
  • Tuer les processus surveillés avant de collecter les artefacts
  • Ajouter labtainer.wireshark comme conteneur de base, nettoyer les dockerfiles

30 janvier 2018

  • Ajouter le lab snort
  • Intégrer les horodatages des fichiers journaux, par exemple depuis les syslogs, dans les résultats horodatés.
  • Supprimer les valeurs de résultat non définies des fichiers de résultats json horodatés intermédiaires.
  • Modifier l'opération d'évaluation du but time_during pour associer les horodatages à la valeur de but résultante.

24 janvier 2018

  • L'utilisation de fenêtres à onglets faisait échouer le côté instructeur, utilisation de guillemets doubles.
  • Ignorer les fichiers dans les répertoires _tar (autres que .tar) lors de la détermination des dépendances de construction.

Catégories