Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
211 lines (209 sloc) 58.4 KB
---
layout: post
wp_id: 3486
title: 'Как мы организовали хакспейс PHDays Everywhere и соревнование CTF в этом году'
author: ZKyl
date: 2014-06-02 08:45:01 +0000
last_modified_at: 2014-06-02 17:19:20 +0000
redirect_from:
- /excerpt/3486.html
- /2014/3486/
- /2014/3486/как-мы-организовали-хакспейс-phdays-everywhere-и-сор/
authors:
- Васильев Евгений
issues:
- (к изданию)
categories:
- ITштуки
- репортаж
- события
tags:
- CTF
- Hacker
- party
- PHDays
- PHDContest
- конкурс
- конференции
wp_comments:
-
id: 244
date: 2014-06-03 06:33:10 +0000
author: ZKyl
content: |
<p>Задания-квесты с OmskCTF:<br />
1/3 - <a href="https://docs.google.com/spreadsheets/d/1D5EjaxCSNJdy4x43gcdjCvLiZmXlL6uhexAQw8qz_C0/edit?usp=sharing" rel="nofollow">https://docs.google.com/spreadsheets/d/1D5EjaxCSNJdy4x43gcdjCvLiZmXlL6uhexAQw8qz_C0/edit?usp=sharing</a><br />
2/3 - <a href="https://docs.google.com/spreadsheets/d/14L4iZcvqnw399nPRQABf0io5FigtKYSWxocsqmAnizQ/edit?usp=sharing" rel="nofollow">https://docs.google.com/spreadsheets/d/14L4iZcvqnw399nPRQABf0io5FigtKYSWxocsqmAnizQ/edit?usp=sharing</a><br />
3/3 - <a href="https://docs.google.com/spreadsheets/d/15A8am_AbwBzKn-zedxA2vVbjj8lNyYrwJs3mgyB5KDE/edit?usp=sharing" rel="nofollow">https://docs.google.com/spreadsheets/d/15A8am_AbwBzKn-zedxA2vVbjj8lNyYrwJs3mgyB5KDE/edit?usp=sharing</a> </p>
<p>Для "запуска" игры достаточно скопировать эти файлы в свой GDive.<br />
Подробнее про правила OmskCTF: <a href="http://goo.gl/zlZlqM" rel="nofollow">http://goo.gl/zlZlqM</a></p>
<p>P.S. т.к. geo-задания предполагают перемещения в 3D пространстве, и подключение к камерам видеонаблюдения, то весь необходимый материал, для выполнения задания, был выложен в виде скриншотов (см. примечание к ячейкам).</p>
---
<p><img class="aligncenter noborder size-full wp-image-3560" style="margin: -10px -20px 8px -20px;" src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/Cicada-OmskCTF-PHDays-4.png %}" alt="Cicada OmskCTF PHDays 4" width="520" height="215" />Эта история про то как несколько людей организовало PHDays \V Everywhere in Omsk и OmskCTF в этом году.</p>
<p>Что из этого вышло, а также как проходила организация, какие трудности пришлось преодолеть, какие были запланированы активности - в общем, полный отчет о мероприятии - <strong>читайте под катом</strong>.</p>
<p><strong>Несколько ссылок</strong>: <a href="http://goo.gl/orqvCI" target="_blank">пресс-релиз</a> мероприятия, событие в <a href="http://goo.gl/EI9H61" target="_blank">G+</a>, <a href="https://vk.com/phdays_omsk" target="_blank">VK</a>, <a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009?sort=1" target="_blank">Фотки</a> (если их смотреть в режиме слайд-шоу и читать подписи, то получится небольшая история; не забывайте нажимать на зум/лупу на верхней панели - фото загрузится в оригинальном качестве), <a href="http://www.youtube.com/playlist?list=PLEGHtSXRCi3eg6sj4k5iI7SaGc0I2hs3w" target="_blank">Видео</a> (пока не все выложено/обработано).<!--more--></p>
<p>Мы уже третий год организовываем PHDays Everywhere в Омске, и в отличие от предыдущих лет решили устроить “нулевой день” - OmskCTF.</p>
<h1>Подготовка</h1>
<h2>За неделю до часа X</h2>
<p>Начинаем разгребать список задач из <a href="https://trello.com" target="_blank">Trello</a>.</p>
<div id="attachment_3488" style="width: 310px" class="wp-caption aligncenter"><a href="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/trello-PHDays4.png %}"><img class="size-medium wp-image-3488" src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/trello-PHDays4-300x176.png %}" alt="Trello, PHDays 4" width="300" height="176" /></a><p class="wp-caption-text">Как выглядит Trello сейчас.</p></div>
<p>Первым делом необходимо было достать IP-Камеры, их мы планировали использовать в паре заданий CTF. И так удачно сложились обстоятельства, что нам одолжили несколько резервных камер, используемых в университете, фирмы ***.</p>
<p>В этих заданиях предполагалось, что участникам предстоит взломать камеры для получения изображения с них (логин/пасс участником не был известен). Благо большинство оригинальных прошивок IP-Камер уязвимы (<a href="http://habrahabr.ru/post/189674" target="_blank">-1-</a>, <a href="http://www.securitylab.ru/news/439937.php" target="_blank">-2-</a>, <a href="http://www.xakep.ru/post/58252/" target="_blank">-3-</a>, <a href="http://habrahabr.ru/post/168613" target="_blank">-4-</a>), и прошивки полученных камер не стали исключением. Все полученные камеры были одной модели, поэтому мы решили, что достаточно найти уязвимости только у одной из них (как выяснилось позже, зря мы так думали). Поиск уязвимостей продлился недолго, спустя ~30 минут у нас в арсенале уже было несколько уязвимостей (спасибо китайцам за комментарии к коду - они не понадобились), которые помогут участникам соревнования получить картинку с камеры не имея логин/пасс. На самом деле, даже была обнаружена уязвимость, превращающая камеру в высокотехнологичный кирпич, и мы стали опасаться, что кто-нибудь из участников ей воспользуется.</p>
<p>Уже близился момент развешивания камер по местам, и мы взялись за настройку/проверку остальных камер. Наше удивление не имело границ, когда эксплойт заработал только на части оставшихся камер. Часть камер (напомню, что модель одна и та же) не была уязвима. Через некоторое время мы заметили, что web-интерфейс “неуязвимых” камер более глючный, и в нем отсутствуют некоторые функции, которые есть в уязвимых камерах. И в этот момент мы решили проверить версию прошивки “неуязвимых”. Наши догадки подтвердились, “неуязвимые” имели старую прошивку, а уязвимые - последнюю. Это было странно, и мы погрузились в Интернет, в поисках информации о этих прошивках. В итоге выяснилось, что уязвимости в последней прошивке давно известны, и производитель о них уведомлен, но закрывать их не спешит.</p>
<p>Интересно то, что уязвимости касаются именно новых функций, появившихся в последней прошивке. Это напоминает картину:</p>
<p><img src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/new-frimware.jpg %}" alt="hz hz - new frimware" title="new-frimware" width="464" height="234" class="aligncenter size-full wp-image-3576" /></p>
<p>Мы решили не обновлять прошивку до финальной (банально не хватало времени, и кнопка “выбрать файл прошивки для обновления” не работала ни в одном из используемых браузерах), а для участников придумали другой способ получения логин/пасс.</p>
<p>Остаток недели прошел менее интересно, в переговорах, планировании, тестировании связи с Москвой для проведения викторины и телемоста, ..., пока не пришла часть заданий на CTF от Positive Technologies. Мы, так же как и в прошлом году, ожидали получить список заданий и ответы на них. В прошлом году, для автоматического зачитывания баллов за флаги, мы использовали простую схему, основанную на Google Формах и Таблицах. В этом году мы хотели применить нашу квестовую систему, в которой ссылка на очередное задание квеста зашифрована ключом, ключ - это найденный флаг от предыдущего задания квеста. Именно поэтому нам важно было получить как сами задания, так и ответы на них (для самостоятельного поиска ответов поджимало время). В этом году пришли только задания + ссылка на сайт для проверки флагов... Это несколько выбило нас из графика, однако просьба выслать нам ответы (флаги) была поддержана организаторами PHDays, и мы получили флаги некоторое время спустя.</p>
<p>Затем начался процесс стилизации заданий под единый формат, и генерация квестов.</p>
<h3>Немного про задания с камерами</h3>
<p><strong>Изначально задания были простыми</strong>:</p>
<ul>
<li>Флаг записывается в QR-код, и вешается на стенку в коридоре, на него направляется IP-Камера.</li>
<li>Участники получают координаты конкретного места + диапазон IP-адресов, в котором находятся камеры.</li>
<li>Участник может получить флаг двумя способами: прогуляться до места, либо найти нужную IP-Камеру.</li>
<li>Доступ к камерам можно получить только из одного места <span class="grey">(подключившись к конкретной WiFi точке доступа)</span>.</li>
</ul>
<p><strong>Спустя некоторое время задания <em>трансформировались</em></strong>:</p>
<ul>
<li>Теперь участник получает IP конкретной камеры, и список мест, где могут находится камеры.</li>
<li>QR-коды размещаются в каждом таком месте, но теперь QR-код не попадает в поле зрения камеры.</li>
<li>Задание представляет собой монолит <span class="grey">(все задания с камерами объединились в одно)</span>, а в QR-кодах записан IP следующей камеры.</li>
<li>Участники теперь должны работать в команде:
<ol>
<li>один участник сидит, и наблюдает за камерой;</li>
<li>другие проходят по местам и “машут в камеру”, пока их не заметит первый участник команды, затем они считывают нужный QR-код.</li>
</ol>
</li>
</ul>
<p class="note">Однако, в “<em>трансформированном</em>” варианте можно получить флаг, даже не взламывая камеры - достаточно пройтись по указанным местам и перепробовать все флаги.</p>
<p><strong>Окончательный вариант выглядел следующем образом</strong>:</p>
<ul>
<li>Использовались только 2 камеры.</li>
<li>Участник получает IP первой камеры.</li>
<li>После получения доступа к изображению с камеры, он также получает список мест <span class="grey">(overlay текст на изображении с камеры)</span>.</li>
<li>Далее начинается командная работа “в поисках QR”, аналогичная “<em>трансформированному</em>” варианту.</li>
<li>Теперь во всех QR-кодах записаны валидные <span class="grey">(начинающиеся с ключевого слова)</span> флаги.</li>
<li>Первое задание завершается по нахождению QR-кода рядом с заданной камерой.</li>
<li>Во втором задании надо также получить доступ к камере, однако теперь overlay содержит не список мест, а <em>Diff</em> <span class="grey">(2D графический xor двух QR-кодов)</span>.</li>
<li>Участники, используя список мест, полученный на первом задании, также должны найти нужный QR-код, и, используя <em>Diff</em>, восстановить исходный QR-код, в котором и будет флаг.</li>
</ul>
<h2>За день до часа X</h2>
<p>Вкратце можно описать как: “Фигаро тут, Фигаро там”:</p>
<ol>
<li>Именно на этот день была назначена встреча с администраторами по завершению конфигурировании сети для проведения CTF: отдельный vlan, несколько SSID на точке доступа с разными приоритетами <span class="grey">(для организаторов &gt; для участников &gt; для всех остальных)</span>.</li>
<li>Также в этот день пришли призы-сувениры <span class="grey">(блокноты и ручки)</span> от Positive Technologies.</li>
<li>В этот день нужно было настроить систему <span class="grey">(установить Flash-плагин к браузеру)</span> для трансляции докладов с PHDays.</li>
<li>Встретить студентов, которые согласились за 2 дня подготовить <span class="grey">(прибраться и сделать небольшую перепланировку)</span> 2 аудитории к трансляции PHDays.</li>
<li>Передать списки участников охранникам.</li>
<li>Подготовить квесты для всех участников <span class="grey">(разложить по директориям, подключить систему “сбора достижений”)</span>.</li>
<li>Проверить QR-Коды <span class="grey">(наши коменданты любят их отклеивать)</span>.</li>
<li>Чат-совещание организаторов в 22:00.</li>
<li>И еще что-то.</li>
</ol>
<p>Стоит сказать, что мало что из этого списка прошло гладко (лучше всего прошло получение призов-сувениров от курьера).</p>
<p>В остальном, администраторам пришлось переконфигурировать сеть для поддержки 70 устройств <span class="grey">(8 команд x 4 человека x 2 устройства + 6 дополнительных устройств)</span>, это не прошло гладко <span class="grey">(были проблемы с ACL, маршрутами, IPv6, ...)</span>. Из-за этого сменились IP у камер, и пришлось перегенерировать связанный с ними квест, что не прошло бесследно <span class="grey">(к чему это привело описано ниже)</span>. Про несколько SSID и приоритеты пришлось забыть. У студентов возникли “срочные дела”. К началу дня не все из участников успели зарегистрироваться, поэтому список охранникам пришлось отправлять в 23:00, и только с этого момента начать “распределять” квесты <span class="grey">(процесс распределения продлился до 3:00)</span>.</p>
<p>К счастью все QR-коды остались на месте.</p>
<h3>Немного про формат проведения CTF</h3>
<p>Соревнование состоит из заданий, объединенных в несколько квестов. Квесты выдаются последовательно, один за другим, через каждые <strong>2 часа</strong>. Если одна из команд решила (до истечения двух часов) все задания текущего квеста, то она может попросить открыть через <strong>15 минут</strong> задания следующего квеста. Задания очередного квеста становятся доступны для всех команд одновременно.</p>
<p>Квесты состоят из заданий следующих категорий: <strong>misc</strong>, <strong>crypto</strong>, <strong>stego</strong>, <strong>web</strong> и <strong>geo</strong> (IP-Камеры).</p>
<p>Участники, для каждого квеста, получают Google Spreadsheets, который, по ответу на текущее задание квеста, генерирует ссылку на следующее задание квеста (<span style="font-size: xx-small;">ссылка на первое задание - в примечании к ячейки <strong>A2</strong></span>).</p>
<p>Участники должны для каждого из заданий найти ключ (флаг), имеющий формат “<strong>PHD_flag_*</strong>”. В случае если ключ верный, команде начисляется 1 балл.</p>
<p>Про то, как мы определяли победителя написано <a href="http://goo.gl/zlZlqM" target="_blank">здесь</a>.</p>
<h2>За час до часа X</h2>
<p>Вспоминая статью “<a href="http://www.pvsm.ru/game-development/33895" target="_blank">3 дня без сна или как создать крупнейший киберспортивный турнир за Уралом</a>”. Так, как нам выделили помещение-коридор, рядом с которым всё это время шел ремонт, то всё “оснащение” помещения пришлось производить в самый последний момент.</p>
<p>К нашему приходу помещение уже прибрали (спасибо уборщице, в прошлый день цементная пыль была буквально везде, а сейчас все чисто). И мы с несколькими студентами-участниками начали переставлять столы, заносить оборудование, и заносить стулья. Со стульями возникла проблема - они, внезапно, все оказались в цементной пыли, и пришлось быстро их чистить.</p>
<p>Далее была быстрая проверка работы WiFi, IP-Камер, Интернета. Всё работает, но это продлилось недолго. Через некоторое время пытаемся подключить оставшиеся ноутбуки к WiFi - не подключаются. Пытаемся подключиться со смартфонов - аналогичная картина. Однако все устройства спокойно подключаются к публичному SSID. Ok (думаем мы), Интернет у нас есть, но для доступа к IP-Камерам нужно подключение к ново-созданному SSID. В этот момент приходит администратор, и... Ну, в общем, ничего кардинально не изменилось. Мы сменили пароль на более простой, разблокировали TKIP, и смартфоны смогли подключится, однако доступа к сети не было...</p>
<div id="attachment_3493" style="width: 283px" class="wp-caption aligncenter"><img class="size-full wp-image-3493 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/wifi-s-OmskCTF.png %}" alt="WiFi OmskCTF 2014" width="273" height="310" /><p class="wp-caption-text">WiFi pass</p></div>
<p>В итоге, решили пока говорить всем, чтобы подключались к публичному SSID.</p>
<h1>OmskCTF - Час X</h1>
<p>После небольшой вступительной речи <a href="http://omgtu.ru/general_information/faculties/faculty_of_information_technology_and_computer_systems/deanery_fitiks/staff_of_the_deanery.php" target="_blank">декана нашего факультета</a>, и <a href="https://google.com/+PavelLozhnikov" target="_blank">проректора по информатизации</a>, в личные директории участников был загружен первый квест, что ознаменовало <strong>начало CTF</strong>!</p>
<h2>1/3</h2>
<p>Первая задача первого квеста была вводной - участники знакомились с <a href="http://www.securitylab.ru/contest/262791.php" target="_blank">форматом</a> <a href="http://lurkmore.to/Rarjpeg" target="_blank">задач</a>.</p>
<div id="attachment_3495" style="width: 474px" class="wp-caption aligncenter"><img class="size-full wp-image-3495" src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/we-need-to-go-deeper.jpg %}" alt="we need to go deeper" width="464" height="260" /><p class="wp-caption-text">7zipJpeg</p></div>
<p>Изначально планировалось тем командам, которые в течение первых 30 минут не распознают формат, дать подсказку. Спустя 30 минут некоторые команды воспользовались этой подсказкой.</p>
<p>В течение первых двух часов были даны еще несколько подсказок (подсказки получали одновременно все команды). За 15 минут до окончания первого этапа, команда “<strong>CAT_IN_THE_DARK_WOOD</strong>” взяла все флаги первого квеста, и устроила себе кофе-брейк.<img class="aligncenter size-full wp-image-3496" src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/OmskCTF-fin-1_3.png %}" alt="OmskCTF fin 1/3" width="280" height="269" /></p>
<h2>2/3</h2>
<p>Первые задачи второго квеста требовали подключения к IP-Камерам, и, следовательно, подключения к другому SSID. Нам повезло, во всех командах нашелся хотя бы 1 человек, оборудование которого смогло успешно подключится к необходимому SSID. Однако и здесь без происшествий не обошлось, crazy-DHCP сервер стал раздавать разным клиентам один и тот же IP!</p>
<div id="attachment_3498" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077673477422914?sort=1&amp;pid=6018077673477422914&amp;oid=112973193951042107011"><img class="size-full wp-image-3498 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/15_464px.jpg %}" alt="IP-Camera OmskCTF" width="464" height="309" /></a><p class="wp-caption-text">IP-Camera</p></div>
<p>Спустя некоторое время выяснилось, что при множественной эксплуатации уязвимости IP-Камер, браузеры клиентов просто зависают. Это пришлось быстро исправлять при помощи нескольких костылей (они настолько ужасные, что описывать их не хочется).</p>
<div id="attachment_3499" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077675554680866?sort=1&amp;pid=6018077675554680866&amp;oid=112973193951042107011"><img class="size-full wp-image-3499 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/16_464px.jpg %}" alt="Quiet! OmskCTF" width="464" height="309" /></a><p class="wp-caption-text">Quiet!</p></div>
<div id="attachment_3500" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077674712895250?sort=1&amp;pid=6018077674712895250&amp;oid=112973193951042107011"><img class="size-full wp-image-3500 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/17_464px.jpg %}" alt="Go-Go-Go! OmskCTF" width="464" height="309" /></a><p class="wp-caption-text">Go-Go-Go!</p></div>
<p>Спустя еще некоторое время случилось то, о чем упоминалось в “За день до часа X” - перегенерация не прошла бесследно - флаг на первое задание был случайно изменен на “чистый” флаг от второго задания. Тем не менее, для участников, этот “баг” лишь упростил задание - теперь флаг располагался в ближайшем “возможном месте” от места проведения CTF. И большинство команд, увидев, что первый флаг “подходит”, не стали “махать в камеру”.</p>
<div id="attachment_3503" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077674942655282?sort=1&amp;pid=6018077674942655282&amp;oid=112973193951042107011"><img class="size-full wp-image-3503 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/18_464px.jpg %}" alt="QR-Code Snapshot OmskCTF" width="464" height="309" /></a><p class="wp-caption-text">Snapshot</p></div>
<div id="attachment_3504" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077675032821778?sort=1&amp;pid=6018077675032821778&amp;oid=112973193951042107011"><img class="size-full wp-image-3504 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/19_464px.jpg %}" alt="QR-Code Snapshot of paradise OmskCTF" width="464" height="309" /></a><p class="wp-caption-text">Snapshot of paradise</p></div>
<div id="attachment_3505" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077675469874034?sort=1&amp;pid=6018077675469874034&amp;oid=112973193951042107011"><img class="size-full wp-image-3505 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/20_464px.jpg %}" alt="QR-Code Cicada OmskCTF" width="464" height="309" /></a><p class="wp-caption-text">Cicada QR-Code</p></div>
<p class="note">Часто, в подобных соревнованиях, эти “баги” делают процесс решения задачи только интереснее. Главное, чтобы от этих “багов” задачи не становились невыполнимыми.</p>
<p>Первой командой, которая получила второй флаг второго квеста, была “<strong>hackup</strong>”. Через некоторое время к ним присоединились “<strong>rm -rf</strong>”.</p>
<h3>Как можно было решить второе задание с камерами</h3>
<p><strong>Самый быстрый способ</strong> - это взять библиотеку для считывания QR-кода, и добавить в Diff <a href="http://habrahabr.ru/post/127197/" target="_blank">опорные точки</a> (position, alignment, and timing patterns):</p>
<div style="width: 400px" class="wp-caption aligncenter"><a href="http://en.wikipedia.org/wiki/QR_code"><img class=" " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/400px-QR_Code_Structure_Example_3.svg.png %}" data-src-old="http://upload.wikimedia.org/wikipedia/commons/thumb/1/1d/QR_Code_Structure_Example_3.svg/400px-QR_Code_Structure_Example_3.svg.png" alt="QR-Code Structure" width="390" height="224" /></a><p class="wp-caption-text">Структура QR-Кода</p></div>
<p>Далее необходимо немного подправить библиотеку: открываем одновременно 2 изображения (снимок QR-кода и измененный Diff), ..., при чтении данных - читаем их одновременно с двух изображений и делаем xor, ... На выходе получаем искомый флаг.</p>
<p><strong>Второй способ</strong> - распознать QR-код, и сгенерировать его заново с сохранением исходной версии и формата QR-кода. Затем, в графическом редакторе указанным способом обработать эти изображения. И после чтения полученного QR-кода, получаем искомый флаг.</p>
<div id="attachment_3509" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077673517167186?sort=1&amp;pid=6018077673517167186&amp;oid=112973193951042107011"><img class="size-full wp-image-3509 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/21_464px.jpg %}" alt="QR-Code Diff OmskCTF" width="464" height="309" /></a><p class="wp-caption-text">Diff</p></div>
<p><strong>Самый медленный способ</strong> - используем графический редактор для совмещения кодов. После обработки “указанным способом”, убираем образовавшиеся “границы”:</p>
<div id="attachment_3510" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077675023590818?sort=1&amp;pid=6018077675023590818&amp;oid=112973193951042107011"><img class="size-full wp-image-3510 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/24_464px.jpg %}" alt="QR-Code Try to merge OmskCTF" width="464" height="309" /></a><p class="wp-caption-text">Try to merge</p></div>
<p>Затем считываем код, и получаем искомый флаг.</p>
<p>Большинство команд вначале пошли вторым способом, но генерировали QR-код без сохранения исходной версии и формата. Поэтому у них этот способ не заработал. Затем они переключились на самый медленный способ.</p>
<p>Некоторые решили сделать все “вручную”:</p>
<div id="attachment_3511" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077673391479378?sort=1&amp;pid=6018077673391479378&amp;oid=112973193951042107011"><img class="size-full wp-image-3511 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/23_464px.jpg %}" alt="QR-Code Binarization OmskCTF" width="464" height="309" /></a><p class="wp-caption-text">Binarization</p></div>
<p>Прошли 2 часа второго квеста. В этот раз ни одна из команд не достала все флаги за 2 часа. <img class="aligncenter size-full wp-image-3512" src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/OmskCTF-fin-2_3.png %}" alt="OmskCTF fin 2/3" width="280" height="269" /></p>
<h2>3/3</h2>
<p>Настало время выдавать задачи третьего квеста. В этот момент часть команд решила разделиться на подгруппы: первая подгруппа дорешивает задачи второго квеста, а вторая начинает проходить третий квест.</p>
<p>Третий этап длится 3 часа (которые были увеличены на 5 минут, т.к. первый этап длился на 5 мин. меньше из-за вводной части).</p>
<p>В общем, эти 3 часа прошли спокойно. Самое интересное началось за 10 минут до окончания соревнования.</p>
<p><img class="aligncenter size-full noborder wp-image-3513" src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/00-01-boom.png %}" alt="00:01" width="180" height="119" />Вначале этих 10 минут в лидеры вырвалась команда “<strong>rm -rf</strong>”, и буквально за минуту до окончания соревнования первенство перешло к команде “<strong>brizz</strong>” (участники которой, решили сохранить анонимность).</p>
<div id="attachment_3514" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077673593748210?sort=1&amp;pid=6018077673593748210&amp;oid=112973193951042107011"><img class="size-full wp-image-3514 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/32_464px.jpg %}" alt="The Winners is brizz OmskCTF" width="464" height="348" /></a><p class="wp-caption-text">The Winners is brizz </p></div>
<p>CTF этого года получился разнообразным, и практически каждая команда была какое-то время в лидерах за эти 7 часов. Все остались довольны:</p>
<div id="attachment_3516" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077675787972962?sort=1&amp;pid=6018077675787972962&amp;oid=112973193951042107011"><img class="size-full wp-image-3516 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/33_464px.jpg %}" alt="All world in our hands OmskCTF" width="464" height="348" /></a><p class="wp-caption-text">All world in our hands</p></div>
<p><a href="http://goo.gl/boeIMV" target="_blank">Финальная турнирная таблица</a> (вкладка Snapshot).</p>
<h1>PHDays 4 - Час Y</h1>
<h2>За 2 часа до часа Y</h2>
<p>Так как в “За день до часа X” встреча со студентами, которые согласились помочь с уборкой помещений, не состоялась, то в этот день решили прийти пораньше. Когда пришли, мы увидели то, что ожидали увидеть: никто без нас не прибрался в помещениях. Поэтому первый час прошел примерно так: тряпку в руки, швабру в ноги, и мыть.</p>
<div id="attachment_3517" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077672455106482?sort=1&amp;pid=6018077672455106482&amp;oid=112973193951042107011"><img class="size-full wp-image-3517 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/41_464px.jpg %}" alt="Welcome to PHDays 4" width="464" height="309" /></a><p class="wp-caption-text">Welcome to PHDays</p></div>
<p>После уборки, мы начали оформлять помещения: развешивать флаги, накрывать стол “с печеньками”, расставлять столы и стулья, развешивать указатели от входа в здание до наших помещений.</p>
<h2>За 15 минут до часа Y</h2>
<p>Уже стали приходить первые гости, и настала пора подключится к трансляции PHDays \V.</p>
<div id="attachment_3518" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077674203805714?sort=1&amp;pid=6018077674203805714&amp;oid=112973193951042107011"><img class="size-full wp-image-3518 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/42_464px.jpg %}" alt="The door opens PHDays 4" width="464" height="309" /></a><p class="wp-caption-text">The door opens</p></div>
<p>Здесь нас ждал очередной сюрприз.</p>
<p class="note">Для трансляции PHDays нужен только браузер+Flash. Изначально в системе, подключенной к проектору отсутствует Flash-плагин (система используется как аналог <a href="http://habrahabr.ru/post/203164" target="_blank">AIRTAME</a>), поэтому в “За день до часа X” этот плагин был установлен.</p>
<p>Однако, только что открывшаяся страница трансляции, встретила нас предложением установить Flash-плагин. Это могло означать, что в определенный момент, после установки Flash-плагина, пропало питание.</p>
<p class="note">Все дело в том, что эта <a href="{{ site.url }}{{ site.baseurl }}{% post_url 2013-09-19-2793-заморозка-системы-история-перехода-с-ew %}" target="_blank">система “заморожена”</a>, и после перезагрузки/выключения возвращается в исходное состояние.</p>
<p>Через 5 минут плагин был установлен, и мы опять попытались открыть страницу трансляции.</p>
<p class="note">Браузер - IE10</p>
<p>Теперь нас ждал очередной сюрприз, но уже от фильтра SmartScreen, который заблокировал Flash-плеер на странице. Спустя некоторое время “понижения безопасности браузера” Flash-плеер успешно загрузился, и началась трансляция с залов.</p>
<div id="attachment_3519" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077676518980914?sort=1&amp;pid=6018077676518980914&amp;oid=112973193951042107011"><img class="size-full wp-image-3519 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/45_464px.jpg %}" alt="Mmmmm... PHDays 4" width="464" height="309" /></a><p class="wp-caption-text">Mmmmm...</p></div>
<p>В одном из помещений началась трансляция зала “<a href="http://www.phdays.ru/program/schedule/" target="_blank">Конференц-зал</a>”, а в другом - “<a href="http://www.phdays.ru/program/schedule/" target="_blank">Зала-трансформер</a>”.</p>
<p>Спустя несколько минут просмотра в HD разрешении, мы поняли, что Intel Atom D525 “не тянет” такой поток (его ядро было полностью загружено), и переключили на SD. Странно, то, что год назад декодирование видео ускорялось на <a href="http://www.sotmarket.ru/product/3q-sign-ion-whitep-525.html" target="_blank">NVIDIA ION 2 GT218</a>, а в этом году - нет. Новый Flash-плеер, или Flash-плагин перестали поддерживать ускорение? Вероятно это так.</p>
<p>По окончании доклада “<a href="http://live.digitaloctober.ru/embed/2990#time1400652065" target="_blank">Специализированные решения — панацея? Поговорим о MDM, BYOD и проч.</a>” мы показали, как выглядит <a href="http://habrahabr.ru/company/croc/blog/199468" target="_blank">MDM</a> (Mobile Device Management), встроенный в Google Apps, для его администратора. Затем переключились на зал “Пресс-центр”.</p>
<p>С этого момента начался <a href="https://docs.google.com/document/d/1ai-UNbRIE8YvCLantUDyV_6BcCpdyakf7OZT3zOU-bM/edit?usp=sharing#heading=h.pwk8a7ngwgy0" target="_blank">HackQuest</a>. К сожалению, большинство участников OmskCTF (включая победителей) решило участвовать в нем “из дома”, что по нашему мнению было ошибкой - мы не смогли им помочь.</p>
<p>Затем мы переключились на доклад “<a href="http://live.digitaloctober.ru/embed/2994#time1400659199" target="_blank">Отдай мне свои данные!</a>” (мы думаем, что это один из тех докладов, которые интереснее смотреть в переводе - диктор был отличным!). К сожалению (или к счастью) при просмотре трансляции было несколько разрывов связи.</p>
<p>В момент разрыва Дейв показывал снимки кредитных карт, которые пользователи выложили в сеть. Мы решили самостоятельно продолжить его рассказ, и рассказали о произошедших случаях, с наши знакомыми. Случаи были похожими: в смартфоне (Android, iOS) хранились фото кредиток, и в определенный момент их пользователи решили подключить на них свой Google аккаунт. При этом включилась <a href="https://support.google.com/plus/answer/1647509" target="_blank">автозагрузка фото в Google+</a>. На этом моменте все нормально - загруженные фото остаются приватными (их не видят остальные пользователи G+), однако через некоторое время наш пользователь заходит в свой G+ профиль, и, увидев там новые фото, решает написать другу “зацени мои фото”. Тот естественно ничего не видит, т.к. прав нет, и наш пользователь, пытаясь все-таки показать свои шедевры другу, открывает всем пользователям G+ доступ ко всему альбому автозагрузки. Вы же помните, что там были фото кредитки? А вот наш пользователь, похоже, об этом забыл... Причем в G+ существует такая особенность, что если сохранить ссылку на пред-просмотр фотографии, то даже если автор уберет права на её просмотр, эту фотографию можно будет открыть по сохраненной ссылке.</p>
<p>В ходе своего доклада Дейв также показывал проданные б/у HDD с ценной информацией. К сожалению больше разрывов связи не было, и по окончании его доклада мы принесли “посыпавшийся” HDD (Seagate Barracuda ES.2, который, при наличии <a href="http://forum.ixbt.com/topic.cgi?id=11:39083:21#21" target="_blank">мухи CC</a>, проработал 5 лет) умершего <a href="http://habrahabr.ru/company/rusonyx/blog/214537/#comment_7374561" target="_blank">сервера</a>. И показали, что с такого HDD информацию удалить сложно (при чтении/записи первого Bad-блока HDD блокируется) не имея <a href="http://www.ixbt.com/storage/hddterminator.shtml" target="_blank">электро-магнитного уничтожителя данных</a>, либо не имея <a href="http://habrahabr.ru/post/118338" target="_blank">шредера</a>.</p>
<p>Также некоторые из наших посетителей небыли знакомы с устройством современных SSD, и мы рассказали, что, при наличии включенного TRIM и <a href="http://fcenter.ru/online/hardarticles/hdd/33225#04" target="_blank">автоматического сборщика мусора</a>, восстановить удаленные файлы - невозможно.</p>
<h3>Hacker vs Laptop</h3>
<p>Чуть позже на нашей площадке начался конкурс “hacker vs laptop”.</p>
<div id="attachment_3520" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077675663568146?sort=1&amp;pid=6018077675663568146&amp;oid=112973193951042107011"><img class="size-full wp-image-3520 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/46_464px.jpg %}" alt="Who can try to hack PHDays 4" width="464" height="309" /></a><p class="wp-caption-text">Who can try to hack?</p></div>
<p>Участникам давался ноутбук, задача участника - оставить след в системе в виде программы, запускающийся при загрузке системы, либо в виде программы, запускающийся при открытии папки/диска. Проверка успешного выполнения задания осуществлялась перезагрузкой системы. Правил было несколько: не разбирать ноутбук, и проводить любые действия только после полной загрузки системы.</p>
<div id="attachment_3521" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077675179388962?sort=1&amp;pid=6018077675179388962&amp;oid=112973193951042107011"><img class="size-full wp-image-3521 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/47_464px.jpg %}" alt="Our toys PHDays 4" width="464" height="309" /></a><p class="wp-caption-text">Our toys</p></div>
<p>В конкурсе были и призы, 3 первых человека, которые справятся с задачей - получат ручку от Positive Technologies. А, если никто не справится, то ручки получат “самые упорные”.</p>
<div id="attachment_3522" style="width: 474px" class="wp-caption aligncenter"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077674665163570?sort=1&amp;pid=6018077674665163570&amp;oid=112973193951042107011"><img class="size-full wp-image-3522 " src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/51_464px.jpg %}" alt="Hack! PHDays 4" width="464" height="309" /></a><p class="wp-caption-text">Hack!</p></div>
<p>Конкурс проходил все 2 дня.</p>
<h3>Hacker Quiz</h3>
<p>Через некоторое время началась <a href="https://docs.google.com/document/d/1ai-UNbRIE8YvCLantUDyV_6BcCpdyakf7OZT3zOU-bM/edit?usp=sharing#heading=h.2pdbljuksz65" target="_blank">викторина</a> между площадками. Мы соревновались с Москвой и с площадкой из Индии. Здесь комментарии будет мало, т.к. викторина доступна на <a href="http://live.digitaloctober.ru/embed/2993#time1400668350" target="_blank">записи</a>. Единственное, что хотелось бы отметить: жаль, что мы не записали весь процесс с нашей стороны (веб-камера и направленный микрофон всего не покажут).</p>
<h2>День второй</h2>
<p>Ко второму дню мы подготовили небольшой сюрприз. Это был мастер-класс о том, как даже небольшие ошибки дизайна (имеется в виду логика работы, а не графический интерфейс), при определенном стечении обстоятельств, могут нивелировать все принятые меры защиты информации. А т.к. в этот день должны были <a href="http://live.digitaloctober.ru/embed/2997#time1400748914" target="_blank">выступать представители Mail.RU</a>, то мы решили посветить свой мастер-класс продуктам Mail.RU. И показали, что классические методы защиты пользователей-паранойков (настройка браузера на автоматическую очистку Cookie при выходе, либо использование режима “инкогнито”) могут не только защитить реквизиты пользователя, но и наоборот - стать причиной их утечки.</p>
<p>После мастер-класса оставалось еще много времени до выступления Mail.RU, поэтому вернулись к основной программе трансляций PHDays.</p>
<p style="text-align: center;"><a href="https://plus.google.com/photos/+asoiu-IT/albums/6018077674461775009/6018077674967431058?sort=1&amp;pid=6018077674967431058&amp;oid=112973193951042107011"><img class="aligncenter size-full wp-image-3523" src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/52_464px.jpg %}" alt="Translation PHDays 4" width="464" height="309" /></a></p>
<h3>Телемост с Москвой</h3>
<p>Уже третий год телемост проводится с использованием <a href="http://www.webex.com" target="_blank">Cisco WebEx</a>.</p>
<p class="note">WebEx - это такая “<em>штука</em>”, для работы которой нужен <a href="http://thenextweb.com/insider/2013/01/10/new-java-vulnerability-is-being-exploited-in-the-wild-disabling-java-is-currently-your-only-option/?fromcat=all" target="_blank">дырявый</a> <a href="http://habrahabr.ru/post/171289" target="_blank">плагин</a> Java.</p>
<p>Обычно мы устанавливаем Java и клиент WebEx только на время проведения мероприятия, после этого они удаляются из системы. С WebEx связана еще одна проблема: на планшетных ПК (<a href="http://www.asus.com/Tablets_Mobile/Eee_Slate_EP121/" target="_blank">ASUS Eee Slate EP121</a>, <a href="http://www.samsung.com/ru/business/business-products/notebook-pc/tablet-pc/XE700T1A-A01RU?subsubtype=series-7" target="_blank">Samsung Series 7 Slate</a>, <a href="http://www.microsoft.com/surface/en-us/products/surface-pro-2" target="_blank">Microsoft Surface Pro</a>, <a href="http://habrahabr.ru/company/samsung/blog/184914" target="_blank">Samsung ATIV Q</a>, ...) под Win8, в которых основными манипуляторами выступает touch-экран и Wacom-перо, невозможно нажать на кнопки в модальных окнах WebEx’а. Поэтому приходится подключать классическую мышку.</p>
<p>Однако в этом году нас ждал еще один сюрприз. Как было написано в “За неделю до часа X”, мы протестировали связь, и она, как и в предыдущие годы, была хорошей. В этом году, после подключения к телемосту, мы поняли, что не все пройдет гладко - голос ведущих был очень плохого качества (внезапные паузы, высокая степень сжатия потока).</p>
<div id="attachment_3524" style="width: 474px" class="wp-caption aligncenter"><img class="size-full wp-image-3524" src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/tele-brige.jpg %}" alt="tele-brige PHDays 4" width="464" height="259" /><p class="wp-caption-text">&lt;_&lt;</p></div>
<p>Однако в Москве нас <a href="http://live.digitaloctober.ru/embed/3001#time1400746525" target="_blank">было слышно нормально</a> (запись телемоста). Из-за такой связи нам было трудно понять когда закончится перевод на английский, и иногда возникали наложения... К тому же некоторые из присутствующих были у нас первый год, и забыв про перевод на английский, выступали с “речью”. Впрочем, смотрите <a href="http://live.digitaloctober.ru/embed/3001#time1400746525" target="_blank">запись</a> <img src="{{ site.url }}{{ site.baseurl }}{% link /theme/)/eek.gif %}" alt="8-O" class="wp-smiley" /> </p>
<h3>Hacker vs Laptop</h3>
<p>В этот день конкурс продолжился. За весь прошлый день ни одному из участников не удалось скомпрометировать систему. В этот день активность участников многократно возросла, было применено множество способов “оставить свой след в системе”, но система осталась неприступной. В итоге самые “упорные” участники получили сувениры. Этими участниками стали “ghostilya” и “Shizoid”.</p>
<h3>Последний доклад</h3>
<p>Последней трансляцией на нашей площадке стал доклад “<a href="http://live.digitaloctober.ru/embed/2996#time1400760340" target="_blank">Импрессия: не ломай — сделай свой ключ</a>”, в ходе которого было рассказано еще несколько “историй” <img src="{{ site.url }}{{ site.baseurl }}{% link /theme/)/smile.gif %}" alt=":-)" class="wp-smiley" /> </p>
<p><img class="aligncenter size-full wp-image-3525" src="{{ site.url }}{{ site.baseurl }}{% link /wp-content/uploads/2014/06/Impressioning-Attacks.jpg %}" alt="Impressioning Attacks PHDays 4" width="296" height="239" /></p>
<p class="note">На этом PHDays Everywhere in Omsk завершил свою работу. Всем легкого пентеста! И до новых встреч в следующем году на PHDays V.</p>