
Erstellen Sie zufällig unsichere VMs
SecGen erstellt verletzliche virtuelle Maschinen, Laborumgebungen und Hacking-Challenges, damit Studenten Techniken des Penetrationstests erlernen können.
Boxen wie Metasploitable2 sind immer gleich. Dieses Projekt verwendet Vagrant, Puppet und Ruby, um zufällig verletzliche virtuelle Maschinen zu erstellen, die zum Lernen oder zum Ausrichten von CTF-Events genutzt werden können.
Die neueste Version ist verfügbar unter: http://github.com/cliffe/SecGen/
Bitte nehmen Sie an einer kurzen Umfrage teil, um uns mitzuteilen, wie Sie SecGen nutzen.
Für eine gehostete Lösung besuchen Sie: https://hacktivity.co.uk/
Computersicherheitsstudenten profitieren von der Teilnahme an Hacking-Challenges. Praktische Laborarbeit und vorkonfigurierte Hacking-Challenges sind sowohl in der Sicherheitsausbildung als auch als Zeitvertreib für sicherheitsbewusste Personen üblich. Wettbewerbsorientierte Hacking-Challenges, wie Capture-the-Flag (CTF)-Wettbewerbe, sind zu einem festen Bestandteil von Branchenkonferenzen geworden und stehen im Mittelpunkt großer Online-Communities. Virtuelle Maschinen (VMs) bieten eine effektive Möglichkeit, Ziele zum Hacken zu teilen, und können so gestaltet werden, dass sie die Fähigkeiten des Angreifers testen. Websites wie Vulnhub hosten vorkonfigurierte Hacking-Challenge-VMs und sind eine wertvolle Ressource für diejenigen, die ihre Fähigkeiten in der Computersicherheit erlernen und verbessern. Die Entwicklung dieser Hacking-Challenges ist jedoch zeitaufwändig und nach der Erstellung im Wesentlichen statisch. Das heißt, sobald die Challenge "gelöst" wurde, gibt es keine verbleibende Herausforderung für den Studenten, und wenn die Challenge für einen Wettbewerb oder eine Bewertung erstellt wird, kann sie nicht ohne das Risiko von Plagiat und Absprache wiederverwendet werden.
Security Scenario Generator (SecGen) erzeugt randomisierte verletzliche Systeme. VMs werden basierend auf einer Szenariospezifikation erstellt, die die Einschränkungen und Eigenschaften der zu erstellenden VMs beschreibt. Beispielsweise könnte ein Szenario die Erstellung eines Systems mit einer remote ausnutzbaren Schwachstelle spezifizieren, die zu einer Kompromittierung auf Benutzerebene führt, und einem lokal ausnutzbaren Fehler, der zu einer Kompromittierung auf Root-Ebene führt. Dies würde erfordern, dass der Angreifer beide zufällig ausgewählten Schwachstellen entdeckt und ausnutzt, um Root-Zugriff auf das System zu erhalten. Alternativ kann das definierte Szenario spezifischer sein und bestimmte Arten von Diensten (wie FTP oder SMB) oder sogar genaue Schwachstellen (nach CVE) angeben.
SecGen ist eine Ruby-Anwendung mit einer XML-Konfigurationssprache. SecGen liest seine Konfiguration, einschließlich der verfügbaren Schwachstellen, Dienste, Netzwerke, Benutzer und Inhalte, liest die Definition des angeforderten Szenarios, wendet Logik zur Randomisierung des Szenarios an und nutzt Puppet und Vagrant, um die erforderlichen VMs bereitzustellen.
SecGen ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weiterverbreiten und/oder modifizieren, entweder in Version 3 der Lizenz oder (nach Ihrer Wahl) in jeder späteren Version.
SecGen enthält Module, die verschiedene Softwarepakete installieren. Jedes SecGen-Modul kann Software enthalten oder aus der Ferne beziehen, und jedes Modul definiert seine eigene Lizenz in der zugehörigen Datei secgen_metadata.xml.
SecGen wird auf Ubuntu Linux entwickelt und getestet. Theoretisch sollte SecGen auf Mac oder Windows laufen, wenn Sie die gesamte erforderliche Software installiert haben.
Sie müssen Folgendes installieren:
Dieses Projekt wurde für die Verwendung mit der Ubuntu (20.04)-Version angepasst, da (16.04) ab April 2021 das Ende der Lebensdauer erreicht hat. Obwohl es auf dieser Version noch funktioniert, wird nicht garantiert, dass es die für Ihre Entwicklungsumgebung erforderlichen Sicherheitsupdates unterstützt.
Stellen Sie sicher, dass Ubuntu mit den folgenden Befehlen aktualisiert ist:```bash sudo apt update sudo apt upgrade
Installieren Sie eine aktuelle Version von 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
Installiere andere erforderliche Pakete:```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
Klonen Sie das SecGen-Repo mit dem folgenden Befehl.Standardmäßig wird dies /home/username/SecGen sein, ändern Sie nach Bedarf:```bash
git clone https://github.com/cliffe/SecGen.git
Installiere Gems mit den folgenden Befehlen:```bash #Step In to the file directory
cd /home/username/SecGen
bundle update --bundler
Gems aktualisieren:```bash
bundle update
Installieren Sie alle erforderlichen Pakete:```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
Kopieren Sie SecGen in ein Verzeichnis Ihrer Wahl, wie z.B. */home/user/bin/SecGen*
Dann installieren Sie die Gems:```bash
cd /home/user/bin/SecGen
bundle install
Um die Windows-Basisboxen verwenden zu können, müssen Sie Packer installieren. Verwenden Sie den folgenden Befehl:```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
## Verwendung
Grundlegende Verwendung:```bash
ruby secgen.rb run
This will use the default scenario to randomly generate VM(s).
