Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
SecGen — 랜덤으로 보안이 취약한 VM을 생성합니다. | Kitploit
도구/GitHubGitHub/cliffe/secgen
Vulnerability ScannersSecurity VirtualizationCTFPenetration TestingLearning & EducationLabs & Practice
GitHubcliffe/secgen

SecGen

랜덤으로 보안이 취약한 VM을 생성합니다.

저장소 보기
2.8k326248일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Security Scenario Generator (SecGen)

요약

SecGen은 취약한 가상 머신, 실습 환경 및 해킹 챌린지를 생성하여 학생들이 보안 침투 테스트 기술을 배울 수 있도록 합니다.

Metasploitable2와 같은 상자는 항상 동일하지만, 이 프로젝트는 Vagrant, Puppet 및 Ruby를 사용하여 학습 또는 CTF 이벤트 호스팅에 사용할 수 있는 무작위로 취약한 가상 머신을 생성합니다.

최신 버전은 다음에서 확인할 수 있습니다: http://github.com/cliffe/SecGen/

SecGen을 어떻게 사용하고 있는지 간단한 설문 조사에 참여해 주세요.

호스팅 솔루션을 원하시면 다음을 방문하세요: https://hacktivity.co.uk/

소개

컴퓨터 보안 학생들은 해킹 챌린지에 참여함으로써 혜택을 얻습니다. 실습 실험실 작업과 사전 구성된 해킹 챌린지는 보안 교육뿐만 아니라 보안에 관심이 있는 개인의 취미 활동으로도 일반적입니다. 캡처 더 플래그(CTF) 대회와 같은 경쟁적인 해킹 챌린지는 업계 컨퍼런스의 핵심이 되었으며 대규모 온라인 커뮤니티의 초점이 되고 있습니다. 가상 머신(VM)은 해킹 대상 공유의 효과적인 방법을 제공하며, 공격자의 기술을 테스트하기 위해 설계될 수 있습니다. Vulnhub과 같은 웹사이트는 사전 구성된 해킹 챌린지 VM을 호스팅하며, 컴퓨터 보안 기술을 배우고 발전시키는 사람들에게 귀중한 자료입니다. 그러나 이러한 해킹 챌린지를 개발하는 데는 시간이 많이 소요되며, 일단 생성되면 본질적으로 정적입니다. 즉, 챌린지가 "해결"되면 학생에게 남은 도전이 없으며, 대회나 평가를 위해 챌린지가 생성된 경우 표절 및 공모 위험 없이 재사용할 수 없습니다.

Security Scenario Generator (SecGen)은 무작위화된 취약 시스템을 생성합니다. VM은 생성될 VM의 제약 조건과 속성을 설명하는 시나리오 사양을 기반으로 생성됩니다. 예를 들어, 시나리오는 원격으로 악용 가능한 취약점(사용자 수준 침해로 이어짐)과 로컬로 악용 가능한 결함(루트 수준 침해로 이어짐)이 있는 시스템 생성을 지정할 수 있습니다. 이렇게 하면 공격자가 시스템에 대한 루트 액세스를 얻기 위해 무작위로 선택된 두 취약점을 모두 발견하고 악용해야 합니다. 또는 정의된 시나리오가 더 구체적일 수 있으며, 특정 종류의 서비스(FTP 또는 SMB 등) 또는 정확한 취약점(CVE 기준)을 지정할 수 있습니다.

SecGen은 XML 구성 언어를 사용하는 Ruby 애플리케이션입니다. SecGen은 사용 가능한 취약점, 서비스, 네트워크, 사용자 및 콘텐츠를 포함한 구성을 읽고, 요청된 시나리오의 정의를 읽고, 시나리오를 무작위화하는 로직을 적용하며, 필요한 VM을 프로비저닝하기 위해 Puppet 및 Vagrant를 활용합니다.

라이선스

SecGen은 자유 소프트웨어입니다. 자유 소프트웨어 재단에서 발행한 GNU 일반 공중 사용 허가서(GNU General Public License) 버전 3 또는 (선택에 따라) 이후 버전의 조건에 따라 재배포 및/또는 수정할 수 있습니다.

SecGen에는 다양한 소프트웨어 패키지를 설치하는 모듈이 포함되어 있습니다. 각 SecGen 모듈은 소프트웨어를 포함하거나 원격으로 소싱할 수 있으며, 각 모듈은 동봉된 secgen_metadata.xml 파일에 자체 라이선스를 정의합니다.

설치

SecGen은 Ubuntu Linux에서 개발 및 테스트되었습니다. 이론적으로, 필요한 모든 소프트웨어가 설치되어 있다면 SecGen은 Mac 또는 Windows에서도 실행되어야 합니다.

다음 항목을 설치해야 합니다:

  • Ruby (development): https://www.ruby-lang.org/en/
  • Vagrant: http://www.vagrantup.com/
  • Virtual Box: https://www.virtualbox.org/
  • Puppet: http://puppet.com/
  • Packer: https://www.packer.io/
  • ImageMagick: https://www.imagemagick.org/
  • And the required Ruby Gems (including Nokogiri and Librarian-puppet)

이 프로젝트는 (16.04)가 2021년 4월 수명 종료됨에 따라 Ubuntu (20.04) 릴리스에서 작동하도록 조정되었습니다. 해당 버전에서도 여전히 작동하지만 개발 환경에 필요한 보안 업데이트를 지원한다고 보장되지는 않습니다.

Ubuntu (20.04)에서 다음 명령어로 실행할 수 있습니다

다음 명령어를 사용하여 Ubuntu가 업데이트되었는지 확인합니다:```bash sudo apt update sudo apt upgrade

최신 버전의 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

다른 필수 패키지 설치:```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

다음 명령을 사용하여 SecGen 저장소를 복제하세요.기본적으로 이 경로는 /home/username/SecGen이며, 필요에 따라 변경하세요:```bash
git clone https://github.com/cliffe/SecGen.git

다음 명령어를 사용하여 gem을 설치합니다:```bash #Step In to the file directory

cd /home/username/SecGen

bundle update --bundler

gems 업데이트:```bash
bundle update

Ubuntu (16.04)에서 다음 명령어로 실행할 수 있습니다

필요한 모든 패키지를 설치하세요:```bash

install a recent version of vagrant

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

install other required packages via repos

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

SecGen을 선택한 디렉토리(예: */home/user/bin/SecGen*)로 복사하세요.

그런 다음 gems을 설치하세요:```bash
cd /home/user/bin/SecGen
bundle install

Windows basesboxes를 사용하려면 Packer를 설치해야 합니다. 다음 명령어를 사용하십시오:```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

## 사용법
기본 사용법:```bash
ruby secgen.rb run

기본 시나리오를 사용하여 VM을 무작위로 생성합니다. gif 예시 gif 예시

SecGen은 동작 방식을 변경하는 인수를 받을 수 있습니다. 현재 구현된 인수는 다음과 같습니다:```bash ruby secgen.rb [--options] OPTIONS: --scenario [xml file], -s [xml file]: Set the scenario to use (defaults to /home/secgen/SecGen/scenarios/default_scenario.xml) --project [output dir], -p [output dir]: Directory for the generated project (output will default to /home/secgen/SecGen/projects/SecGen20200313_094915) --shutdown: Shutdown VMs after provisioning (vagrant halt) --network-ranges: Override network ranges within the scenario, use a comma-separated list --forensic-image-type [image type]: Forensic image format of generated image (raw, ewf) --read-options [conf path]: Reads options stored in file as arguments (see example.conf) --memory-per-vm: Allocate generated VMs memory in MB (e.g. --memory-per-vm 1024) --total-memory: Allocate total VM memory for the scenario, split evenly across all VMs. --cpu-cores: Number of virtual CPUs for generated VMs --help, -h: Shows this usage information --system, -y [system_name]: Only build this system_name from the scenario --snapshot: Creates a snapshot of VMs once built --no-tests: Prevent post-provisioning tests from running.

  VIRTUALBOX OPTIONS:
  --gui-output, -g: Show the running VM (not headless)
  --nopae: Disable PAE support
  --hwvirtex: Enable HW virtex support
  --vtxvpid: Enable VTX support
  --max-cpu-usage [1-100]: Controls how much cpu time a virtual CPU can use
    (e.g. 50 implies a single virtual CPU can use up to 50% of a single host CPU)

  OVIRT OPTIONS:
  --ovirtuser [ovirt_username]
  --ovirtpass [ovirt_password]
  --ovirt-url [ovirt_api_url]
  --ovirtauthz [ovirt authz]
  --ovirt-cluster [ovirt_cluster]
  --ovirt-network [ovirt_network_name]
  --ovirt-affinity-group [ovirt_affinity_group_name]

  ESXI OPTIONS:
  --esxiuser [esxi_username]
  --esxipass [esxi_password]
  --esxi-hostname [esxi_api_url]
          (ESXi hostname/IP)
  --esxi-datastore [esxi_datastore]
  --esxi-disktype [esxi_disktype]: 'thin', 'thick', or 'eagerzeroedthick'
          (If unspecified, it will be set to 'thin')
  --esxi-network [esxi_network_name]
          (If its not specified, the default is to use the first found)
  --esxi-guest-nictype [esxi_nictype]: 'e1000', 'e1000e', 'vmxnet', 'vmxnet2', 'vmxnet3', 'Vlance', or 'Flexible'
          (RISKY - Can cause VM to not respond)
  --esxi-no-hostname
          (Setting the hostname on some boxes can cause vagrant up to fail if the network configuration was not previously cleaned up.)

  PROXMOX OPTIONS:
  --proxmoxuser [username]
  --proxmoxpass [password]
  --proxmox-url [api_url]
  --proxmox-node [node]
  --proxmox-network [proxmox network name]
  --proxmox-vlan [vlan number]
도구 다운로드