Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
SecGen — Crear VMs inseguras aleatoriamente | Kitploit
Herramientas/GitHubGitHub/cliffe/secgen
Escáneres de VulnerabilidadesVirtualización de SeguridadCTFPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubcliffe/secgen

SecGen

Crear VMs inseguras aleatoriamente

Ver Repositorio
2.8k32630hace 14h 28mRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Generador de Escenarios de Seguridad (SecGen)

Resumen

SecGen crea máquinas virtuales vulnerables, entornos de laboratorio y desafíos de hacking, para que los estudiantes puedan aprender técnicas de pruebas de penetración de seguridad.

Máquinas como Metasploitable2 son siempre las mismas; este proyecto utiliza Vagrant, Puppet y Ruby para crear máquinas virtuales vulnerables de forma aleatoria que pueden usarse para el aprendizaje o para alojar eventos CTF.

La última versión está disponible en: http://github.com/cliffe/SecGen/

Por favor, complete una breve encuesta para contarnos cómo está utilizando SecGen.

Para una solución alojada, visite: https://hacktivity.co.uk/

Introducción

Los estudiantes de seguridad informática se benefician de participar en desafíos de hacking. El trabajo práctico de laboratorio y los desafíos de hacking preconfigurados son una práctica común tanto en la educación en seguridad como también un pasatiempo para personas con mentalidad de seguridad. Los desafíos competitivos de hacking, como las competiciones de captura de bandera (CTF), se han convertido en un pilar en las conferencias del sector y son el foco de grandes comunidades en línea. Las máquinas virtuales (VM) proporcionan una forma eficaz de compartir objetivos para hacking, y pueden diseñarse para poner a prueba las habilidades del atacante. Sitios web como Vulnhub alojan VM de desafíos de hacking preconfiguradas y son un recurso valioso para quienes aprenden y perfeccionan sus habilidades en seguridad informática. Sin embargo, desarrollar estos desafíos de hacking consume mucho tiempo y, una vez creados, son esencialmente estáticos. Es decir, una vez que el desafío ha sido "resuelto" no queda ningún desafío para el estudiante, y si el desafío se crea para una competición o evaluación, no puede reutilizarse sin arriesgar plagio y colusión.

Security Scenario Generator (SecGen) genera sistemas vulnerables aleatorizados. Las VM se crean a partir de una especificación de escenario, que describe las restricciones y propiedades de las VM a crear. Por ejemplo, un escenario podría especificar la creación de un sistema con una vulnerabilidad explotable de forma remota que daría lugar a un compromiso a nivel de usuario, y un fallo explotable localmente que daría lugar a un compromiso a nivel de root. Esto requeriría que el atacante descubriera y explotara ambas vulnerabilidades seleccionadas aleatoriamente para obtener acceso root al sistema. Alternativamente, el escenario definido puede ser más específico, especificando ciertos tipos de servicios (como FTP o SMB) o incluso vulnerabilidades exactas (por CVE).

SecGen es una aplicación Ruby, con un lenguaje de configuración XML. SecGen lee su configuración, incluyendo las vulnerabilidades, servicios, redes, usuarios y contenido disponibles, lee la definición del escenario solicitado, aplica lógica para aleatorizar el escenario y aprovecha Puppet y Vagrant para aprovisionar las VM requeridas.

Licencia

SecGen es software libre: puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU tal como la publica la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a su elección) cualquier versión posterior.

SecGen contiene módulos, que instalan diversos paquetes de software. Cada módulo de SecGen puede contener o tomar software de forma remota, y cada módulo define su propia licencia en el archivo secgen_metadata.xml que lo acompaña.

Instalación

SecGen se desarrolla y prueba en Ubuntu Linux. En teoría, SecGen debería ejecutarse en Mac o Windows, si tiene todo el software requerido instalado.

SecGen necesita:

  • Ruby 2.7 a 4.0, con encabezados de desarrollo, y las gemas de Ruby en el Gemfile (incluyendo Nokogiri y Librarian-puppet)
  • Vagrant: https://developer.hashicorp.com/vagrant
  • VirtualBox: https://www.virtualbox.org/ (o Proxmox / oVirt / ESXi, ver más abajo)
  • ImageMagick, ExifTool, Graphviz y algunas bibliotecas para gemas nativas
  • Packer, solo para las bases de Windows: https://www.packer.io/

Hay dos formas de instalarlo. Ambas han sido probadas desde una instalación limpia de Ubuntu.

Opción 1: Docker

Instale Docker y VirtualBox en el host, luego deje que docker/secgen-docker.sh construya un contenedor con todo lo demás. VirtualBox sigue siendo necesario en el host por su controlador del kernel. Consulte docker/README.md.

git clone https://github.com/cliffe/SecGen.git
cd SecGen
docker/secgen-docker.sh run -s scenarios/default_scenario.xml

Opción 2: Instalación nativa en Ubuntu (22.04, 24.04, 26.04; 20.04 con la nota a continuación)

Instala VirtualBox desde el repositorio de Oracle. El paquete virtualbox en Ubuntu 24.04 (7.0.16) no puede compilar su controlador de kernel para los kernels HWE actuales, y Linux 7.0 necesita VirtualBox 7.2.8 o posterior:

sudo apt-get update
sudo apt-get install -y wget gpg lsb-release
wget -qO- https://www.virtualbox.org/download/oracle_vbox_2016.asc \
  | sudo gpg --yes --dearmor -o /usr/share/keyrings/oracle-virtualbox-2016.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" \
  | sudo tee /etc/apt/sources.list.d/virtualbox.list
sudo apt-get update
sudo apt-get install -y virtualbox-7.2

Si KVM está cargado, VirtualBox no puede iniciar VM mientras KVM retiene VT-x (VERR_VMX_IN_VMX_ROOT_MODE). En kernels 6.12 y posteriores puedes permitir que coexistan:

echo "options kvm enable_virt_at_load=0" | sudo tee /etc/modprobe.d/kvm-virtualbox.conf
sudo modprobe -r kvm_intel kvm_amd kvm; sudo modprobe kvm_intel || sudo modprobe kvm_amd

Los escenarios de SecGen utilizan rangos de red host-only fuera del rango predeterminado 192.168.56.0/21 de VirtualBox, por lo que se permite cualquier rango:

sudo mkdir -p /etc/vbox
echo '* 0.0.0.0/0 ::/0' | sudo tee /etc/vbox/networks.conf

Instala Vagrant desde el repositorio de HashiCorp (Ubuntu 26.04 ya no lo empaqueta, y las versiones antiguas de Vagrant ya no pueden descargar boxes desde Vagrant Cloud):

wget -qO- https://apt.releases.hashicorp.com/gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" \
  | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt-get update
sudo apt-get install -y vagrant

Instala Ruby y los otros paquetes requeridos:

sudo apt-get install -y git ruby-full ruby-dev build-essential patch pkg-config zlib1g-dev liblzma-dev \
  imagemagick exiftool libpq-dev libcurl4-openssl-dev libxml2-dev libxslt1-dev graphviz libgraphviz-dev \
  libpcap-dev libsqlite3-dev libgpgme-dev libyaml-dev libffi-dev libssl-dev

Clona SecGen e instala las gemas. Usa bundle install, no bundle update: Gemfile.lock fija las versiones que funcionan en todas las versiones de Ruby compatibles, y bundle update las reemplaza por las versiones más recientes, que puede que no.

git clone https://github.com/cliffe/SecGen.git
cd SecGen
sudo gem install bundler -v '~> 2.4'
sudo bundle install

Luego prueba el escenario predeterminado (descarga la caja base desde hacktivity.co.uk la primera vez):

ruby secgen.rb run

Notas:

Descargar herramienta