В обсуждениях группы CTF в Петербурге обнаружили интересный материал с рекомендациями, как играть в attack-defense. Публикуем полную версию от bykva с незначительными редакторскими правками.
Современные образы могут быть предоставлены игрокам следующим образом:
Образ может быть предоставлен заранее, а может быть выдан за N-ое время до начала игры в зашифрованном виде. Отсюда необходимо подготовить:
Ноутбук с Ethernet-портом. На мероприятиях медь — самый оптимальный предоставляемый канал до жюрейки. Очень много тех, кто бежит покупать адаптеры для своих маков / ультрабуков прямо на соревнованиях. (Так лучше не делать — прим. ред.).
Отдельный канал в интернет. Вы не должны зависеть от того, предоставляют вам сеть или нет. Поверьте, у жюри могут быть абсолютно разные проблемы, в том числе с помещением и локальным интернетом. Его могут и шейпить, и блочить. Так что свой канал нужен на случай того, если всё отвалится.
Естественно, виртуализация. Жюри обычно предоставляет образ, сделанный в VBOX, хотя для vmware тоже подойдет. Сделано это в силу бесплатности продукта, а не потому что нам нравится его использовать. Виртуализация должна быть у каждого члена команды. Кстати, еще немаловажный фактор — обязательно проверьте, что вы поддерживаете аппаратную виртуализацию x86_64. Образ может быть таким.
Итак, вы импортировали образ. Выдали ему необходимые характеристики.
Настраиваем сеть. Сеть должна быть обязательно в bridge, чтобы ваша виртуалка была полноправным членом инфраструктуры мероприятия. Бриджуем с тем адаптером, который подключен к сети мероприятия. Не забываем переинициализировать мак адреса и ставить галочку connected на кабеле в адаптере.
Фото: СибГУТИ, соревнования NSK CTF
Сбрасываем пароль. Пароль сбрасывать желательно научиться не одним способом.
Хорошо, если это debian-подобные. А если это будет CentOS с включенным SELinux — вы поломаете свою виртуалку. Хотя CentOS вряд ли дадут, но это надо уметь.
Когда вам выдают параметры сети: 172.16.x.3/24 — вы должны присвоить адрес интерфейсу согласно номеру вашей команды, а также прописать шлюз. Обычно это .1 в вашей сети. Если важно обращение к сервисам по DNS — укажите также DNS.
Научитесь прописывать сеть для debian, centos, arch. Лишним не будет. Сеть должна подниматься также и при ребуте системы.
Вы подняли ваш образ и настроили сеть. Товарищи по команде уже могут его «пинговать» — тем или иным способом.
Важно найти всех «левых» пользователей в системе и сменить у них пароли. Не един случай, когда при слабых пользовательских паролях закидывали форк-бомбы.
Сделайте снапшот! Когда вы подняли и настроили свежий игровой образ — не стоит тратить в будущем время на его перенастройку. Также рекомендую сделать повторный «чистовой» снапшот после начала игры, когда вы убедитесь, что все ваши сервисы в апе.
Члены команды не вносят НИКАКИХ изменений на эталонном образе. НИКТО по нему не шарится в поиске сервисов. Патчить образ должны 1-2 человека в команде.
Вы должны раздать образ всем членам команды, и каждый из них ковыряет лично свою версию.
Best practice от ked: Распараллеливаем сервисы на N виртуалок — т.е. у вас есть ваш эталон и еще 5 виртуалок с сервисами. Заворачиваем трафик так, чтобы он миррорился и в эталон, и в стендовые сервисы. Снифаем отдельно траффик на каждом сервисе. При выполнении патча от члена команды сначала патчим стенд. На следующем раунде сравниваем ответы от эталона и от стенда. Если ответ на жюрейный запрос совпадает — патч успешен, его можно накатывать.
Изучите, как обращается к сервису жюри. Каждый отличный последующий запрос — попытка эксплуатации. Так можно, абсолютно не зная уязвимости, своровать чужие эксплойты.
Изучаем сервисы: он может лежать в самой системе.