Kaspersky Industrial CTF + KrasCTF 2016

18 октября 2016

На прошедшей неделе наша команда приняла участие сразу в двух CTF: Kaspersky Industrial, в который мы прошли по итогам отборочных, и KrasCTF, на который просто подали заявку и приехали.

Первый проходил в Иннополисе, и полностью оплачивался организаторами. Нам приобрели билеты из Новосибирска в Казань (с пересадкой в Москве), встретили в аэропорту и привезли в Иннополис. Мы разместились в одном из корпусов для студентов. Блок, в котором мы жили, был неплохой: комната на троих, на двоих, кухня с плитой и холодильником, душ. Там же были одноразовые тапочки, зубные щетки, шампунь — прямо как в отеле, в котором мы жили во время RuCTF. Правда, в блоке было прохладно, и ничего с этим сделать не получилось.

Корпуса связаны между собой и с университетом сквозным переходом, что очень круто, поскольку можно не выходить на улицу и не проходить вахту по несколько раз. В столовой нас тоже кормили бесплатно. Причем там даже можно было выбирать, что взять. Сами же соревнования проходили посреди университета, где был установлен стенд из множества стоек и мониторов, на которых отображалось текущее состояние «автоматизированной системы». Взломом этой самой системы четыре участвующих команды и должны были заниматься. Все команды сидели напротив стенда на пуфах-мешках, и у каждой было по одному маленькому кофейному столику.

Первой задачей был вход в сеть. Для этого было три канала: Wi-Fi (с неизвестным паролем), модемы (с которыми непонятно, как работать) и локальная сеть (которую выдавали только после обеда). Пароль не входил в словари, поэтому подобрать его не удалось. Тогда организаторы сменили пароль на цифровой, но перебор всех вариантов занял бы пару дней, поэтому им пришлось раскрыть часть пароля — и тогда, наконец, пароль получилось узнать. После этого мы могли работать с машинами в сети и пытаться как-то их взломать или использовать. На многих серверах использовались «индустриальные» сервисы и протоколы, и нужно было разобраться, как с ними работать или взломать. Каждое «незаконное» действие участников оценивалось в некоторое число баллов, которые начислялись после совершения соответствующего действия.

К сожалению, мне не показалось, что я был полезен команде: у меня не получилось найти что-либо стоящее или что-нибудь сломать. Конечно, я старался, а также пытался помогать сокомандникам в тех или иных задачах, но в итоге получилось так, что ничего из того, что я делал, пользы не принесло.

Соревнования шли два дня: весь первый день, а также до обеда во второй день. По итогам наша команда набрала достаточно много баллов, но на несколько тысяч меньше, чем первая. За второе место нам пообещали Proxmark, но, поскольку нам нужно было торопиться на трансфер до аэропорта, на награждении нас не было, и призы мы получим только когда организаторы их отправят (вместе с футболками и сертификатами, которые нам также не выдали).

Через два дня после возвращения нас снова ждал самолет. Поездку на KrasCTF 2016 уже оплачивала администрация нашего университета. Мы пропустили открытие (как мы часто это стали делать в последнее время) и прилетели в конце дня перед соревнованиями. Там мы позвонили водителю, которого предоставили организаторы, и отправились в общежитие. На этот раз общежитие было рядом с тем корпусом СФУ, в котором проходит все мероприятие, но внешне оно оказалось еще хуже тех, в которых мы жили ранее. Нас поселили в гостевой блок из пяти комнат и кухни, а в каждой комнате был свой раздельный санузел. На кухне — холодильник, микроволновка, стиральная машина. В комнате — телевизор. Проводной сети в комнате не нашлось, зато был чей-то открытый Wi-Fi. В общем, мы заказали три XXL-пиццы в Papa Johns плюс одну 30 см по промокоду, съели их, и стали спать. Кровати, кстати, были очень широкие и мягкие, как это обычно бывает.

На KrasCTF мы приезжаем уже в третий раз, и особо соревнования не меняются. Нас приводят в один и тот же корпус, мы сдаем куртки в гардероб, проходим жеребьевку — и команды расходятся по своим отдельным комнатам. Все комнаты — терминальные классы, но с дополнительными столами. В этот раз электричество было выключено до начала соревнований. Сеть мы, кажется, тоже поднимали собственную — никакого Wi-Fi, роутера или патчкордов от организаторов.

Как и ранее, категории заданий были известны заранее. Но в этот раз мы распределились по категориям, и целенаправленно смотрели на задания, с которыми нам было бы проще справиться. Это принесло свои плоды: в первые же минуты я первым во всем соревновании сдал Recon 100, переместив нашу команду на первое место. С этого места мы ни разу не сместились, поскольку стали быстро набирать отрыв. Заданий здесь было больше, да и они были более классические, поэтому их и решать было интереснее, а я смог почувствовать себя гораздо полезнее, чем на Kaspersky Industrial.

В общем, в третий раз KrasCTF проводится и в третий же раз мы занимаем на нем первое место. Награждение и разбор перенесли на следующий день, поэтому мы вернулись в общагу, заказали еще две XXL пиццы с дополнительной по промокоду, немного поиграли в сетевые игры и легли спать.

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