среда, 29 августа 2007 г.

HackQuest на CCA 2007

Я придумал HackQuest и наша команда впервые провела его на фестивале.

Cразу хочу сказать, что я проводил тестирование всех этапов кроме crackmes на время прохождения и в общем рассчитывал, что двое суток уйдут более рационально. В конец охренею, и буду иллюстрировать текст чужими фотками (своих нет, не до того было). Чтобы не отнимать ваше (да и своё) драгоценное время, пойду сразу по заданиям:

1. GET A REALLY LIFE

Песня. Обычный escape/unescape обфускатор в javascript, поделённый на 2 блока, причём с ошибкой — маленький блок со всем необходимым впереди большого который должен был бы его «прикрывать». Конкретно этот этап большинство прошли просто даже «не заметив», он должен был занять 5 минут т.к. вводный. А по плану, таких этапов должно было быть два, но второй пришлось забраковать перед пати из-за негарантированности прохождения. Для тех кто копошился в этом «Get A Really Life» утром второго дня:

Zarin [cyberhack]:
Имхо слишком просто, решил с помощью скрипты echo($_GET['test']); куда передал строку из переменной x в JS которая содержит подключение скрипта jajh.js , там в двух переменных хранятся логин/пасс, которые декодируются таким же образом. Второй x не стал конвертить естессно =) тама вывод хтмл-формы =)

toxa himself [][akep]:
Я делал через тупое alert(y); в скрипте, увидел jajh.js, ну и далее просто вставил кусок кода из этого скрипта, который анэскейпит l/p, в первоначальный скрипт, через тот же алерт.
Просто, но для начального этапа, думаю, сойдет.

Всё я думаю понятно?

2. WIN EXPIRENCE

Тест вашего уровня в Win32. Отвечаете на 7 вопросов выбирая в каждом один из 4-х вариантов ответа. Если ответили: считайте что сдали 1/10 экзамена сертифицированного инженера Microsoft. Умиляло то, как одни люди старательно гуглили вопросы, а другие не менее старательно перебирали руками (7x4=28 вариантов). Ни один (!) хакер не сделал того, что я думал все сделают в первую очередь: простой скрипт на php или perl перебирающий эти 28 вариантов с радио-баттонами в цикле. Я сам не специалист в ISA Server к примеру, честно скажу. Опять же, я понимаю так что наши люди брутят видимо только текстовые поля (что зачастую малоосмысленно), а брут радио-баттонов считают ниже собственного достоинства. Ну да и ладно. Зато принципы налицо. Это заняло у людей до часа.

3. ACTION PREFER ANIMATION

Моё очередное флэшевое творение и я постарался, чтобы оно было мало мальски достойным даже ввиду отсутствия времени. В try2hack, ghc и других ничего похожего нет. Тестовое прохождение занимало у выбранных людей перед пати от 45 минут до 1,5 часа, с подсказками. SWF Decompiler для этой работы валялся в /toolz на ftp хак-зоны. Я специально затачивался на то, чтобы тупо проглядев или сбросив на диск спрайты никто ничего не получил, а в коде нужных данных не было. Статистика показывает, что флэшку большинство насиловало первые 2,5 часа. В середине второго дня ко мне подходили люди распотрошившие какой-то левой тулзой флэшку, у которых не подходил Codename: by aGGreSSor. На моё замечание, что это очевидный фейк следовали возгласы: как можно! =) Честно говоря меня это всё откровенно пробивало на «хи-хи». Для не осиливших:


loadVariables("login.txt", _root); // я загрузил в переменную buzz строку
// смотрим этот login.txt на сайте:
buzz=y8791tar0b)JNzj{3WAP
всё вместе это не пароль — это присвоение переменной из файла значения в 20 байт
me = new Array(c, "by aGGreSSor"); // ну да, есть такая тема. купились?
u= new Array("User", bi2);
p= new Array("qwerty", bi1);
u.shift(); // метод shift делает очень простую вещь — затирает те самые
p.shift(); // User и qwerty которые там выше объявлены — не надо их вводить с упоением

for (x = buzz.length; x >= 10; x--)
{
bi1 = bi1 + buzz.charAt(x);
} // end of for
for (y = 9; y >= 0; y--)
{
bi2 = bi2 + buzz.charAt(y);
} // end of for

// здесь я засовываю значение из переменной buzz в значение объекта buzz. 
// а по-умолчанию в этом объекте хранится хрень. её можно даже выдрать из флэшки 
// и сохранить на диск. =) собственно этот цикл и надо смотреть. отсюда мы читаем:
// login: b0rat1978y
// password: PAW3{jzNJ)
// введя получаем Codename: Benedicite! (лат. Благославляю!)
// итого - тупо как палка, но не так тупо как в ghc quest


4. WANTED CPU, WANTED DAEMON, WANTED GEEK..

Очень, очень хотелось чтобы люди не проводили всё время взаперти, а на улицу гуляли не только за энергетиками. Ради этого мы вместе с banshee [web-hack] заблаговременно обклеили район вокруг partyplace плакатами A4 с заданиями для нашего квеста. Каждой твари было по 15 шт., а некоторых и больше. Клеилось добротно на клей «Момент» и исключительно на загаженные объявлениями места на трубах и стенах. На случай если это всё сорвут — под одним из коммутаторов лежал пакет в котором было ещё 45 шт. напечатанных «на выручку».



Интересна реакция хак-сцены: Если в задании написано что разыскивается объект (неважно какой), а на улице наблюдаются классические плакаты WANTED, то логично ходить их и искать, а затем интерпретировать написанное на них. В случае поисков CPU всё вообще было прозрачно, там Codename мелким шрифтом в правом нижнем углу. Тем не менее:


— Саймон, слышь, а чо от нас дети хотят?
— Чо?
— Саймон, меня заипало это:

— О! Ты из CPU?
— Да..
— Скажи пароль!
— Не знаю никакого пароля!
— Сцуко, скажи пароль, ты знаешь!
— Не знаю!
— Скажи пароль, у нас игра, понимаешь?
— Какая нах, игра! Не знаю я никаких паролей!!!..

— Успокойся, я уже сказал все пароли: от почты, от аськи, от сайта нашего, от ftp..
— Саймон, мля, они возвращаются..
— Чо им ещё надо?!..
(звук ломаемой мебели, слитный топот ног убегающих CPU)




Демонология - наука сложная, тем не менее азы вы должны знать: DAEMON в FreeBSD и DEMON это два разных, в общем понятия. Тем более прямо было сказано, что сотрудник CPU (уже найденный приклеенным к стене к тому моменту) ходил с демоном под мышкой рядом с КВЦ «Евразия». Тем не менее:


— Wow! Мы нашли демона!
— Ребята, это Daemon, а не демон, и он в помещении, а не на улице.
— А то что мы его увидели нам что-нибудь даёт?
— Гхм.. Теперь вы знаете как он выглядит...




Теперь о гике с вопросом в голове. Почему-то люди находили либо демонов, либо гиков, но очень долго не могли найти и тех и других. Хотя они все висели рядом в пределах 15 метров. В том задании было необходимо понять, что символы — это шрифт WebDings, в котором буквы CC выглядят как два характерных жеста с поднятыми к верху большими пальцами. Соответственно после набора символами и смены шрифта вы получали: (eRee)0Re что и являлось искомым Codename.

5. Cherche la cartridge!

Задание принадлежало Oldayn. Согласно нему надо было найти сайт Мариининского театра, на нём единственный телефон заказа билетов (круглые сутки) и выяснить что за product code у картриджа в принтере стоящем там. Это задание очень отчётливо показало что хак-сцена имеет только книжное представление о соц. инженерии, хотя был косяк и с нашей стороны: девушки наученные выдавать модель принтера самым милым звонящим молодым людям первоначально отправляли этих милых к кассиру которая в истерике говорила буквально следующее: «Вы толкаете меня на должностное преступление! Я не могу раскрывать конфиденциальную информацию, и не звоните мне сюда больше!»

В таких случаях, побеждает упорство. Что это за соц. инженер который сдаётся после первого же промаха? Победившие WN13_team взяли упорством, сообразительностью и рациональностью. Они представлялись сотрудниками компании заправляющей картриджи и сетовали на то, что в накладной забыли указать модель принтера. Это логично, блин! Остальные звонившие несли какую-то пургу, а на вопросы девушек: может вам ещё и модель принтера сказать?! робели и говорили: «нет, спасибо, уже не надо..» Тут мы с Oldayn натурально лежали пацтулом.

Получив модель принтера, необходимо было найти для него картридж с самым большим объёмом и выделить из его идентификатора product code. Который и являлся искомым Codename. Этот код был: 08A0478

6. CRACKMES


Тяжело в деревне без нагана, да? =) Есть определённый цимес в том, что я не проверял проходимость этого задания. Во-первых, на форуме CC неоднократно возникали требования крякмиза в квесте, заданий по реверсингу, а я знаете ли, привык обращать внимание на желания людей (если только они лежат в пределах допустимого). Во-вторых, мы уже имеем опыт когда afx237_v7 на CC'06 занимался задачей 26 часов и всё-таки осилил её. Сложив одно и другое, плюс репутация автора крякмиза можно было обоснованно предположить что двух суток на это хватит. Как мы выяснили на party, двух суток нам не хватило. Сегодня уже 29 августа, а крякмиз в этой стране так никто и не сломал. Сейчас, его ломают уже на http://crackmes.de и там тоже нет пока результатов (There are no solutions to this crackme yet). Рейтинг: 6 - Hard, for very professionals only; Описание: Written specially for $CC07, but now it's over and you can try it by yourself :) Based on Virtual Machine, you will need trace it in simple case, or fully disassamble it.

Предположительно, народ расслабился и пришёл без инструмента. Мнение NeoN : хотели 2-3 jump и победа, а получили.. Но мы думаем, что никто (из тех кто понимает) не жалеет о таком конкурсе.

NeoN [cracklab]
Хорошо, подсказка будет следующая: трейсить код вирт машинки, избавится от int 1, убрать мусор, длина ключа 12 символов. А дальше по обстоятельствам :) Под трейсить, значт в дебагере прогнать а с логом трейса уже в блоконотике разбиратся. Если снимать с квеста будете - можно дать пасс, чтобы увидели, что воркает.

aGGreSSor [peace4peace]
Фигушки им, а не Codename от твоего крякмиза. =)

7. RED EYE ACHE

Боль красноглазых. Это о UNIX-системах: ещё один опросник наподобие WIN EXPIRENCE, только про общие принципы работы в *nix shell. Решается аналогично.

В завершение хочу сказать, что всего в нашем HackQuest приняли участие около 180 человек, на фестивале Chaos Constructions Antique 2007 присутствовала практически вся российская хак-сцена и участие в квесте было не единственным положительным моментом. Те кого не было физически на partyplace внимательно следили за развитием квеста, ходом фестиваля, многие пытались принять участие снаружи, как то Rebz [Antichat] (кажется прошёл квест) и N1TR0X [DamageLab] (случайно проходил мимо). Итоги таковы, что для победы большинству не хватило рациональности: двигаться от простого к сложному, а не наоборот. Многих настолько увлёк крякмиз, что они забыли обо всём на свете. Хотя к дедлайну большинство мучающих его уже сдались. Это говорит о нехватке ещё одного качества: упорства..

HackQuest проходил 23 ч 30 мин и состоял из 9 конкурсов, за вычетом Crackme:
  1. WN13_team - победитель, 8 конкурсов
  2. MacTep - 7 конкурсов
  3. Monovar - 7 конкурсов
В конце концов, как правильно было замечено на фестивале: развлекуха, она и есть развлекуха. С 29 ноября по 2 декабря будет проходить Chaos Constructions HackAROUND 2007, первый фестиваль по нашей тематике, которого мы так долго ждали. Основной упор в программе мы сделаем на realtime-конкурсы, многие прописываемые сейчас конкурсы являются адаптацией с DefCon (но не тупой калькой). Будут также и конкурсы с которыми вы познакомились на Chaos Constructions 2006, например HackVideo можно начинать присылать. Подробные правила по основным конкурсам будут опубликованы чуть позже.
Сейчас формируются блоки семинаров, здесь уже можно сказать что докладчики способны будут удивить и открыть глаза на ряд аспектов слабо изученных и освещённых. Тематика демосцены также не будет обойдена вниманием. Вообще, у нас много точек соприкосновения. Я бы не сказал например, что выставка на CCA'07 была подготовлена чисто демосценерами. Многие из авторов экспонатов засветились на различных форумах по инфобезу, том же секлабе. Рассчитываю что будут новые интересные экспонаты и аппаратные хаки на HackAROUND. Открою ещё один маленький секрет: скорей всего будут человекоподобные роботы, не хуже DefCon-ких. 4 дня в самом центре Санкт-Петербурга, в Манеже, совсем рядом с Эрмитажем - это вам не шутки. До скорой встречи на CC HackAROUND. =)

Комментариев нет:

Отправить комментарий