Продукты «Хакера»

  • Ежеквартальный «Хакер» #3

    Ежеквартальный «Хакер» #3

    Лучшие статьи квартала на бумаге

    2 000 ₽

    Заказать журнал
  • Годовая подписка на Xakep.ru

    Годовая подписка на Xakep.ru

    Полный доступ к статьям и архиву выпусков

    6 000 ₽ в год

    Подписаться
  • «Пентест WEB» для начинающих

    «Пентест WEB» для начинающих

    Совместный курс «Хакера» и лаборатории «Хаксет»

    7 000 ₽

    Купить курс
  • Спецвыпуск «Хакера» #4

    Спецвыпуск «Хакера» #4

    Лучшие статьи за 2021–2022 годы на бумаге

    2 000 ₽

    Заказать журнал
CTF-сорев­нования проч­но зак­репились в око­лоай­тиш­ных кру­гах. Най­ти челове­ка, который не слы­шал о сорев­новани­ях для хакеров, слож­но, и всё чаще появ­ляют­ся мыс­ли о сво­ем собс­твен­ном сорев­новании. И если для сорев­нований в жан­ре Task-based уже сущес­тву­ют хорошие плат­формы, то для Attack/Defense при­дет­ся при­думы­вать что‑то более слож­ное. Уса­живай­ся поудоб­нее — сей­час я рас­ска­жу про опыт орга­низа­ции таких мероп­риятий.

Краткая справка

CTF (Capture The Flag — зах­ват фла­га) быва­ет раз­ный. Есть два жан­ра: Task-based и Attack/Defense. В пер­вом слу­чае мож­но играть чуть ли не «на бумаж­ке» — это обык­новен­ные задачи, которые мож­но решить или не решить, при этом твой прог­ресс никак не зависит от дей­ствий дру­гих учас­тни­ков. Во вто­ром же жан­ре име­ется игро­вая сеть, где раз­ные коман­ды ата­куют и отра­жают ата­ки друг дру­га. Само собой, Attack/Defense куда динамич­нее и инте­рес­нее, но и орга­низа­ция таких сорев­нований куда слож­нее.

Чи­тай так­же: Capture the Flag. Как взлом стал спор­тивным сос­тязани­ем

Для тре­ниро­вок внут­ри нашей коман­ды мне пот­ребова­лось раз­вернуть свой домаш­ний Attack/Defense (уже на готовых чужих сер­висах).

www

Для Task-based-сорев­нований уже сущес­тву­ет плат­форма CTFd.

 

Создание сети

Обыч­но все сорев­нования Attack/Defense про­ходят внут­ри спе­циаль­но выделен­ной сети. Бла­года­ря это­му обес­печить работу всей инфраструк­туры ста­новит­ся лег­че в нес­коль­ко раз. В соз­дании сетевой инфраструк­туры нам помогут вир­туаль­ные час­тные сети (VPN). Лидера­ми готовых решений, которые поз­воля­ют сде­лать собс­твен­ную при­ват­ную сеть, явля­ются OpenVPN и Wireguard.

 

Основные элементы сети

Сна­чала нам нуж­но опре­делить­ся с эле­мен­тами, которые будут находить­ся в нашей сети.

  • Глав­ный узел — сер­вер, к которо­му будут под­клю­чать­ся все устрой­ства для обра­зова­ния нашей сети. Важ­ным пун­ктом будет то, что у это­го сер­вера дол­жен быть «белый» IP-адрес.
  • Узел для под­клю­чения игро­ков — к нему будут под­клю­чать­ся игро­ки для даль­нейшей игры. Для каж­дой коман­ды будет свой кон­фиг, с помощью которо­го игро­ки смо­гут вой­ти в свою сеть.
  • Узел для сер­вера с сер­висами (вул­нбокс). К это­му узлу будет под­клю­чать­ся вул­нбокс с сер­висами. Из при­меча­тель­ного то, что такое пос­тро­ение сети поз­волит под­клю­чить вул­нбокс со сво­его сер­вера, а не сер­вера орга­низа­торов — при усло­вии, что есть нуж­ный кон­фиг.

По ито­гу мы получим отдель­ные узлы для каж­дой из команд, отдель­ные узлы для вул­нбок­сов команд (при таком рас­кла­де мы поз­волим под­клю­чать в нашу сеть сто­рон­ние сер­вера для самос­тоятель­ного хос­тинга) и узел для жюри.

info

Вул­нбокс (vulnbox) — машина с некото­рым набором заведо­мо уяз­вимых сер­висов. В CTF каж­дая коман­да получа­ет иден­тичную копию такой машины.

 

OpenVPN

Нач­нем наше пос­тро­ение сети с OpenVPN.

info

На мой взгляд, эта статья на Хаб­ре очень хороша для понима­ния, что и как нуж­но сде­лать для соз­дания собс­твен­ных сетей. Но ниже мы раз­берем, какие кон­фигура­цион­ные фай­лы мы дол­жны соз­дать.

Мы уже решили, какие узлы у нас будут. Тог­да можем перей­ти к соз­данию кон­фигов для нашей сети. Что­бы избе­жать рутин­ной работы, вос­поль­зуем­ся уже сущес­тву­ющим ре­пози­тори­ем OVPNGen с откры­тым исходным кодом. Нам так­же пот­ребу­ется уста­новить необ­ходимые зависи­мос­ти для кор­рек­тной работы.

`$ git clone https://github.com/pomo-mondreganto/OVPNGen`
`$ pip3 install -r requirements.txt`

Пос­мотрим на дос­тупные фун­кции это­го генера­тора.

`$ ./gen.py --help`

`usage: gen.py [-h] --server SERVER [--per-team N] [--team] [--jury] [--vuln] [--teams N | --range N-N | --list N,N,...]`

Generate openvpn configuration for AD CTFs

optional arguments:
  -h, --help            show this help message and exit
  --server SERVER, -s SERVER
                  Openvpn server host
  --per-team N          Number of configs per team
  --team                Generate config for teams
  --jury                Generate config for jury
  --vuln                Generate config for vulnboxes
  --teams N, -t N       Team count
  --range N-N           Range of teams (inclusive)
  --list N,N,...        List of teams

Раз­берем по полоч­кам, что у нас есть.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Оформи подписку на материалы по тегу

Если тебе интересна эта тема целиком, можно открыть доступ не к одному материалу, а ко всем платным статьям выбранного тега.

Хакер Лайт

от 1000 р.

Тег: #Хакер Лайт

Купить подписку

Вариант 3. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии