
Crea VM insicure in modo casuale
SecGen crea macchine virtuali vulnerabili, ambienti di laboratorio e sfide di hacking, in modo che gli studenti possano apprendere le tecniche di penetration testing.
Box come Metasploitable2 sono sempre uguali, questo progetto utilizza Vagrant, Puppet e Ruby per creare macchine virtuali casualmente vulnerabili che possono essere utilizzate per l'apprendimento o per ospitare eventi CTF.
L'ultima versione è disponibile su: http://github.com/cliffe/SecGen/
Completa un breve sondaggio per dirci come utilizzi SecGen.
Per una soluzione ospitata visita: https://hacktivity.co.uk/
Gli studenti di sicurezza informatica traggono vantaggio dall'impegnarsi in sfide di hacking. Il lavoro pratico in laboratorio e le sfide di hacking preconfigurate sono una pratica comune sia nell'educazione alla sicurezza che come passatempo per individui interessati alla sicurezza. Le sfide di hacking competitive, come le competizioni capture the flag (CTF), sono diventate un punto fermo nelle conferenze di settore e sono il fulcro di grandi comunità online. Le macchine virtuali (VM) forniscono un modo efficace per condividere bersagli per l'hacking e possono essere progettate per testare le abilità dell'attaccante. Siti web come Vulnhub ospitano VM di sfide di hacking preconfigurate e sono una risorsa preziosa per coloro che apprendono e migliorano le loro competenze in sicurezza informatica. Tuttavia, sviluppare queste sfide di hacking richiede tempo e, una volta create, sono essenzialmente statiche. Cioè, una volta che la sfida è stata "risolta", non rimane alcuna sfida per lo studente, e se la sfida è creata per una competizione o una valutazione, non può essere riutilizzata senza rischiare plagio e collusione.
Security Scenario Generator (SecGen) genera sistemi vulnerabili randomizzati. Le VM vengono create in base a una specifica di scenario, che descrive i vincoli e le proprietà delle VM da creare. Ad esempio, uno scenario potrebbe specificare la creazione di un sistema con una vulnerabilità sfruttabile da remoto che comporterebbe un compromesso a livello utente, e un difetto sfruttabile localmente che comporterebbe un compromesso a livello root. Ciò richiederebbe all'attaccante di scoprire e sfruttare entrambe le vulnerabilità selezionate casualmente per ottenere accesso root al sistema. In alternativa, lo scenario definito può essere più specifico, specificando certi tipi di servizi (come FTP o SMB) o anche vulnerabilità esatte (per CVE).
SecGen è un'applicazione Ruby, con un linguaggio di configurazione XML. SecGen legge la sua configurazione, incluse le vulnerabilità, i servizi, le reti, gli utenti e i contenuti disponibili, legge la definizione dello scenario richiesto, applica la logica per randomizzare lo scenario e sfrutta Puppet e Vagrant per il provisioning delle VM richieste.
SecGen è software libero: puoi ridistribuirlo e/o modificarlo secondo i termini della GNU General Public License come pubblicata dalla Free Software Foundation, sia la versione 3 della Licenza, o (a tua scelta) qualsiasi versione successiva.
SecGen contiene moduli, che installano vari pacchetti software. Ogni modulo SecGen può contenere o ottenere software da remoto, e ogni modulo definisce la propria licenza nel file secgen_metadata.xml allegato.
SecGen è sviluppato e testato su Ubuntu Linux. In teoria, SecGen dovrebbe funzionare su Mac o Windows, se hai tutto il software richiesto installato.
Dovrai installare quanto segue:
Questo progetto è stato adattato per funzionare con la release Ubuntu (20.04) a causa della fine del ciclo di vita di (16.04) ad aprile 2021, sebbene funzioni ancora su quella versione, non è garantito che supporti gli aggiornamenti di sicurezza necessari per il tuo ambiente di sviluppo.
Assicurati che Ubuntu sia aggiornato usando i seguenti comandi:```bash sudo apt update sudo apt upgrade
Installa una versione recente di 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
Installa gli altri pacchetti richiesti:```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
Clona il repository SecGen usando il seguente comando.Di default sarà /home/username/SecGen, modifica come necessario:```bash
git clone https://github.com/cliffe/SecGen.git
Installa le gemme usando i seguenti comandi:```bash #Step In to the file directory
cd /home/username/SecGen
bundle update --bundler
Aggiorna le gemme:```bash
bundle update
Installa tutti i pacchetti necessari:```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
Copia SecGen in una directory a tua scelta, ad esempio */home/user/bin/SecGen*
Poi installa i gems:```bash
cd /home/user/bin/SecGen
bundle install
Per utilizzare i basesboxes Windows sarà necessario installare Packer. Utilizza il seguente comando:```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
## Utilizzo
Utilizzo base:```bash
ruby secgen.rb run
Utilizzerà lo scenario predefinito per generare casualmente VM.
