
Créer des VM aléatoirement non sécurisées
SecGen crée des machines virtuelles vulnérables, des environnements de laboratoire et des défis de piratage, afin que les étudiants puissent apprendre les techniques de tests de pénétration en sécurité.
Des boîtes comme Metasploitable2 sont toujours identiques ; ce projet utilise Vagrant, Puppet et Ruby pour créer des machines virtuelles aléatoirement vulnérables qui peuvent être utilisées pour l'apprentissage ou pour héberger des événements CTF.
La dernière version est disponible à : http://github.com/cliffe/SecGen/
Merci de répondre à un court sondage pour nous dire comment vous utilisez SecGen.
Pour une solution hébergée, visitez : https://hacktivity.co.uk/
Les étudiants en sécurité informatique bénéficient de la participation à des défis de piratage. Les travaux pratiques en laboratoire et les défis de piratage préconfigurés sont une pratique courante dans l'enseignement de la sécurité, ainsi qu'un passe-temps pour les personnes intéressées par la sécurité. Les défis de piratage compétitifs, tels que les compétitions capture the flag (CTF), sont devenus un pilier des conférences industrielles et sont au centre de grandes communautés en ligne. Les machines virtuelles (VM) offrent un moyen efficace de partager des cibles de piratage et peuvent être conçues pour tester les compétences de l'attaquant. Des sites Web tels que Vulnhub hébergent des VM de défis de piratage préconfigurées et constituent une ressource précieuse pour ceux qui apprennent et améliorent leurs compétences en sécurité informatique. Cependant, développer ces défis de piratage prend du temps, et une fois créés, ils sont essentiellement statiques. Autrement dit, une fois le défi « résolu », il ne reste plus de défi pour l'étudiant, et si le défi est créé pour une compétition ou une évaluation, il ne peut pas être réutilisé sans risquer le plagiat et la collusion.
Le Générateur de scénarios de sécurité (SecGen) génère des systèmes vulnérables randomisés. Les VM sont créées en fonction d'une spécification de scénario, qui décrit les contraintes et les propriétés des VM à créer. Par exemple, un scénario pourrait spécifier la création d'un système avec une vulnérabilité exploitable à distance qui entraînerait un compromis au niveau utilisateur, et une faille exploitable localement qui entraînerait un compromis au niveau root. Cela obligerait l'attaquant à découvrir et à exploiter les deux vulnérabilités sélectionnées aléatoirement afin d'obtenir un accès root au système. Alternativement, le scénario défini peut être plus spécifique, en spécifiant certains types de services (tels que FTP ou SMB) ou même des vulnérabilités exactes (par CVE).
SecGen est une application Ruby, avec un langage de configuration XML. SecGen lit sa configuration, y compris les vulnérabilités, services, réseaux, utilisateurs et contenus disponibles, lit la définition du scénario demandé, applique une logique de randomisation du scénario, et exploite Puppet et Vagrant pour provisionner les VM requises.
SecGen est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU telle que publiée par la Free Software Foundation, soit la version 3 de la Licence, soit (à votre choix) toute version ultérieure.
SecGen contient des modules, qui installent divers packages logiciels. Chaque module SecGen peut contenir ou sourcer à distance des logiciels, et chaque module définit sa propre licence dans le fichier secgen_metadata.xml qui l'accompagne.
SecGen est développé et testé sur Ubuntu Linux. En théorie, SecGen devrait fonctionner sur Mac ou Windows, si tous les logiciels requis sont installés.
Vous devrez installer les éléments suivants :
Ce projet a été adapté pour fonctionner avec la version Ubuntu (20.04) en raison de la fin de vie de (16.04) à partir d'avril 2021, bien qu'il fonctionne encore sur cette version, il n'est pas garanti de prendre en charge les mises à jour de sécurité nécessaires pour votre environnement de développement.
Assurez-vous qu'Ubuntu est mis à jour en utilisant les commandes suivantes :```bash sudo apt update sudo apt upgrade
Installer une version récente de vagrant :```bash
wget https://releases.hashicorp.com/vagrant/2.2.9/vagrant_2.2.9_x86_64.deb
sudo apt install ./vagrant_2.2.9_x86_64.deb
Installer les autres paquets requis :```bash sudo apt-get install ruby-dev zlib1g-dev liblzma-dev build-essential patch virtualbox ruby-bundler imagemagick libmagickwand-dev exiftool libpq-dev libcurl4-openssl-dev libxml2-dev graphviz graphviz-dev libpcap0.8-dev git
Clonez le dépôt SecGen en utilisant la commande suivante.Par défaut, ce sera /home/username/SecGen, modifiez si nécessaire:```bash
git clone https://github.com/cliffe/SecGen.git
Installez les gems en utilisant les commandes suivantes :```bash #Step In to the file directory
cd /home/username/SecGen
bundle update --bundler
Mettre à jour gems:```bash
bundle update
Installez tous les paquets requis :```bash
wget https://releases.hashicorp.com/vagrant/1.9.8/vagrant_1.9.8_x86_64.deb sudo apt install ./vagrant_1.9.8_x86_64.deb
sudo apt-get install ruby-dev zlib1g-dev liblzma-dev build-essential patch virtualbox ruby-bundler imagemagick libmagickwand-dev exiftool libpq-dev libcurl4-openssl-dev libxml2-dev graphviz graphviz-dev libpcap0.8-dev git
Copiez SecGen dans un répertoire de votre choix, tel que */home/user/bin/SecGen*
Ensuite, installez les gems :```bash
cd /home/user/bin/SecGen
bundle install
Pour utiliser les boîtes de base Windows, vous devrez installer Packer. Utilisez la commande suivante :```bash curl -SL https://releases.hashicorp.com/packer/1.3.2/packer_1.3.2_linux_amd64.zip -o packer_1.3.2_linux_amd64.zip unzip packer_1.3.2_linux_amd64.zip sudo mv packer /usr/local/ sudo bash -c 'echo "export PATH="$PATH:/usr/local/"" >> /etc/environment' sudo vagrant plugin install winrm sudo vagrant plugin install winrm-fs
## Usage
Utilisation de base :```bash
ruby secgen.rb run
Ceci utilisera le scénario par défaut pour générer aléatoirement des VM(s).
