
Создайте случайным образом небезопасные ВМ
SecGen создает уязвимые виртуальные машины, лабораторные среды и хакерские задачи, чтобы студенты могли изучать методы тестирования на проникновение.
Такие образы, как Metasploitable2, всегда одинаковы. Этот проект использует Vagrant, Puppet и Ruby для создания случайным образом уязвимых виртуальных машин, которые можно использовать для обучения или проведения CTF-соревнований.
Последняя версия доступна по адресу: http://github.com/cliffe/SecGen/
Пожалуйста, заполните короткий опрос, чтобы рассказать нам, как вы используете SecGen.
Для облачного решения посетите: https://hacktivity.co.uk/
Студенты, изучающие компьютерную безопасность, получают пользу от участия в хакерских задачах. Практические лабораторные работы и предварительно настроенные хакерские задачи — обычная практика как в обучении безопасности, так и в качестве хобби для людей, интересующихся этой темой. Соревновательные хакерские задачи, такие как соревнования Capture The Flag (CTF), стали неотъемлемой частью отраслевых конференций и являются центром больших онлайн-сообществ. Виртуальные машины (VM) предоставляют эффективный способ обмена целями для взлома и могут быть спроектированы для проверки навыков атакующего. Такие сайты, как Vulnhub, размещают предварительно настроенные хакерские виртуальные машины и являются ценным ресурсом для тех, кто учится и совершенствует свои навыки в области компьютерной безопасности. Однако разработка этих хакерских задач требует много времени, и после создания они по сути статичны. То есть, как только задача «решена», для студента не остается новых вызовов, а если задача создана для соревнования или оценки, ее нельзя использовать повторно без риска плагиата и сговора.
Security Scenario Generator (SecGen) генерирует рандомизированные уязвимые системы. Виртуальные машины создаются на основе спецификации сценария, которая описывает ограничения и свойства создаваемых ВМ. Например, сценарий может задавать создание системы с удаленно эксплуатируемой уязвимостью, приводящей к компрометации на уровне пользователя, и локально эксплуатируемой ошибкой, приводящей к компрометации на уровне root. Это потребует от атакующего обнаружить и использовать обе случайно выбранные уязвимости для получения root-доступа к системе. Альтернативно, определяемый сценарий может быть более конкретным, указывая определенные виды сервисов (такие как FTP или SMB) или даже точные уязвимости (по CVE).
SecGen — это приложение на Ruby с конфигурационным языком XML. Он читает свою конфигурацию, включая доступные уязвимости, сервисы, сети, пользователей и контент, читает определение запрошенного сценария, применяет логику для рандомизации сценария, а затем использует Puppet и Vagrant для развертывания необходимых ВМ.
SecGen — это свободное программное обеспечение: вы можете распространять и/или изменять его в соответствии с условиями Стандартной общественной лицензии GNU, опубликованной Фондом свободного программного обеспечения, либо версии 3 этой лицензии, либо (по вашему выбору) любой более поздней версии.
SecGen содержит модули, которые устанавливают различные программные пакеты. Каждый модуль SecGen может содержать программное обеспечение или загружать его удаленно, и каждый модуль определяет свою собственную лицензию в сопутствующем файле secgen_metadata.xml.
SecGen разрабатывается и тестируется в Ubuntu Linux. Теоретически, SecGen должен работать на Mac или Windows, если у вас установлено все необходимое программное обеспечение.
Вам потребуется установить следующее:
Этот проект был адаптирован для работы с выпуском Ubuntu (20.04) из-за того, что (16.04) достиг конца жизненного цикла в апреле 2021 года. Он все еще будет работать на этой версии, но не гарантируется поддержка обновлений безопасности, необходимых для вашей среды разработки.
Убедитесь, что 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
Установите гемы с помощью следующих команд:```bash #Step In to the file directory
cd /home/username/SecGen
bundle update --bundler
Обновление гемов:```bash
bundle update
Установите все необходимые пакеты:```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
Скопируйте SecGen в каталог по вашему выбору, например, */home/user/bin/SecGen*
Затем установите гемы:```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(s).
