http://download.securitylab.ru/cc09.part01.rar
http://download.securitylab.ru/cc09.part02.rar
http://download.securitylab.ru/cc09.part03.rar
http://download.securitylab.ru/cc09.part04.rar
Загруженные образы запускаются с использованием VMWare Player. На обоих узлах настроены IP-адреса из подсети 192.168.192.0/24. В этой подсети, выполняя задания, связанные с информационной безопасностью, можно отыскать восемь ключей в формате CC09словоCC09. После того, как все ключи будут найдены, сложив их в правильном порядке, можно найти заветный "мега бонус", который так и не был представлен ни одним участником конкурса Hack Quest на CC2009.
Программа crackme (которую легко отыскать) представлена в двух вариантах:
crackme_hard – желающим проверить свои способности по реверсингу не тривиальных защит;
crackme_med – побей рекорд, взломай ее менее, чем за четыре часа!
Have fun!
И немного курьезов. Задержка на пару дней с публикацией VM Hack Quest связана с забавной ситуацией:
Архив cc09.part03.rar при копировании с внешнего диска становился битым (очень странно), что не сразу было замечено.
MD5-контрольные суммы архивов:
1608c5c05a4da3f27b7d2d4d44deadf6 *cc09.part01.rar
f77b9db25e7e7eb8fb9e2e0e322ffacc *cc09.part02.rar
342b9b99e9ec38f1aaffbecdfa2dc54a *cc09.part03.rar
d7352bbb280822e01cb93c77f2f172ff *cc09.part04.rar
ага, и waf тоже до сих пор еще ломают (причем как 8.0.9 так и 8.0.10)... свежо придание ;)
ОтветитьУдалить>> и waf тоже до сих пор еще ломают
ОтветитьУдалитьи я даже догадываюсь, кто его ломает:))
не только paranoidchaos :)
ОтветитьУдалитьдумаю, человек 10 еще точно, потому что некоторые их них мне писали какие-то странные письма на эту тему.
Первонах ;)
ОтветитьУдалитьЕсть XSS для текущей 8.0.10 версии.
Есть вариант для старой 8.0.9 который не нашли на СС09.
Разработчику выслал, ты в копии. Пофиксят - запощу.
Всем удачи, я выхожу из "игры" ;)
:) молодец!
ОтветитьУдалитьсразу несколько вопросов:
1. "106 мне известных событий"
поделишься линком?
2. ты говорил, что Cheat Sheet с ha.ckers содержит не полный список реализаций XSS. убедил:) какими ресурсами ты руководствуешься?
3. не копал SQL Inj, LFI в bitrix waf?
1. Нету прямого линка. Собирал по крупицам. Работаю над собственным сканером XSS по работающем технологии смартнах ;)
ОтветитьУдалить2. Никакими не руководствуюсь просто думаю и ищу атрибуты и тэги которые забыли, читаю коды других фильтров и проч. Часто в гугле можно что-то найти, только на в виде XSS, а в виде <spectag onTVOYUMAT='myFunc(myVal)'/>, что ничего не меняет.
3. Или я не выспался, или там тривиальная SQLinj...
ну в общем это я был, с чужого компа...
ОтветитьУдалитьА можно аналог сайта WAF hack с CC получить? Лениво писать разные там функции... Тем более так что будем знать, что сломал именно то, что было на конкурсе..Вышли почтой на @onsec.ru
>> 3. Или я не выспался, или там тривиальная SQLinj...
ОтветитьУдалитьоч. интересно:) под какую СУБД?
>> А можно аналог сайта WAF hack с CC получить?
Марселю напиши...
Я забыл, там по условиям слепые не принимались, да?
ОтветитьУдалитьслепые принимались... условие было, чтобы при (blind) sql-injection можно было:
ОтветитьУдалить- либо прочитать таблицу (одну колонку)
- либо прочитать/записать файл
конструкции типа: or 1=1 не годятся
какие пароли на виртуалки-то?
ОтветитьУдалитьтак это:)... локальный доступ к виртуалкам не требуется для прохождения квеста...
ОтветитьУдалитьДа мне не проходить интересно - благо на CC мы всё-таки решили достаточно. Я, во-первых, хочу посмотреть как всё это было реализовано, а во-вторых, может оно конечно и не требуется, но у меня работать просто так без доп настроек виртуалки (разумеется, как всегда) не собираются. Заниматься всякой фигнёй типа сброса пароля в мои планы не входит. Не хотите - ну и фиг с ним.
ОтветитьУдалить>> но у меня работать просто так без доп настроек виртуалки (разумеется, как всегда) не собираются
ОтветитьУдалитьстранно...
на, держи:
login: administrator
pass(в латинице): @@неБрутабельныйпассАдминаВС
login: root
pass: %ghj,henfqVtyz tckb cvj;tim!
спасибо
ОтветитьУдалитьда не за что ;)
ОтветитьУдалитьв тему и возможно будут также интересны виртуалки с ctf:
http://ftp.hackerdom.ru/ctf-images/2009-04-26-RuCTF2009Final/
описание:
http://ructf.org/2009/documentation/final/
так-с. решил поковырять крякми. тот, сложный.
ОтветитьУдалитьну в общем-то это что-то смешное, именно xor строчки с паролем со смешными сдвигами. Может, стоило бы хотя бы начало фразы выложить?
Или вы утверждаете, что вот это вот можно оптиально и быстро сбрутить?
#define word unsigned short int
#define byte unsigned char
byte get_smth(unsigned char* buf, word h){
word i = h/8;
word c2 = buf[i%0x10] + 256*buf[(i+1)%0x10];
h &= 7;
c2 >>= h;
return c2 & 0xFF;
}
unsigned char buf[16] =
{
0x78, 0x48, 0x63, 0x25, 0x39, 0x76, 0x40, 0x6A, 0x5E, 0x2E, 0x65, 0x5A, 0x69, 0x57, 0x75, 0x23
} ;
char us[16] = {0};
unsigned char cmds[56]=
{
0xB6, 0x62, 0xB2, 0x82, 0xB5, 0xD3, 0xC4, 0x16, 0xEE, 0x9C, 0x7F, 0x66, 0x58, 0xF9, 0x6A, 0x4A,
0xF5, 0xEB, 0xA8, 0x23, 0xCA, 0x8A, 0xC5, 0x32, 0xAD, 0xDA, 0xE2, 0x0D, 0x02, 0x48, 0x63, 0x1C,
0x39, 0x76, 0xA2, 0x6A, 0x5E, 0x03, 0x14, 0x5A, 0x69, 0x98, 0x75, 0xEE, 0xC4, 0x79, 0xC5, 0x1A,
0x7C, 0xBE, 0x56, 0x69, 0xDE, 0x2C, 0xD6, 0xC8
} ;
char rbuf[100]={0};
int main(){
word h=0x37;
byte t5=0;
for (int i=0; i < 0x37; i++){
t5 = get_smth(buf, h);
rbuf[i] = cmds[i] ^ t5;
h = i+t5;
}
printf("%s\n", rbuf);
}
а никто и не утверждает, что сбрутить можно быстро:)) по секрету - это один из облегченных и сильно урезанных механизмов защиты, встроенных в MaxPatrol... поэтому решение задачи не лежит за приемлемое количество времени.
ОтветитьУдалитькстати, я так понимаю простенький крякми отреверсить удалось?
Простенький не смотрел :) А стоит?
ОтветитьУдалитьНо нерешабельный это плохо )) И если б мы его на CC таки нашли (почему мы его не нашли, кстати?:)) что бы считалось решением?
А скажите, что ли, всё-таки, начало фразы, вдруг выйдет что.
Вот этот кодес http://pastebin.com/d982db29 умеет по первым буквам что-то восстанавливать.
Да, а вообще - COM-файлы - это плохо :)
ОтветитьУдалить>> Простенький не смотрел :) А стоит?
ОтветитьУдалитьесли удалось расковырять сложный вариант, значит с простым проблем возникнуть не должно...
>> Но нерешабельный это плохо )) И если б мы его на CC таки нашли (почему мы его не нашли, кстати?:))
вот именно потому на CC его и не нашли т.к. решение не возможно за допустимое время:) его просто не выкладывали...
>> что бы считалось решением?
он также, как и простой вариант содержит в себе ключ в формате СС09словоСС09
>> А скажите, что ли, всё-таки, начало фразы
ключ CC09... видимо
>> Да, а вообще - COM-файлы - это плохо :)
да?:) а мы думали что-нибудь поинтереснее замутить.... под амигу, например;)) ...так сказать в духе СС...
под амигу вас бы сразу послали. ещё прошивку там для дисковода бы выложили))
ОтветитьУдалитьОднако, начало CC09 - этого мало:) кодес умеет генерить пароль, после работы которого первые несколько символов равны наперёд заданным, если это возможно. Ну и если повезёт с каким-нибудь циклом...
А код генератора, ммм, что тут генерить можно-то, ммм, массивов, что ли :) потрогать можно?
ломается крякми. завтра допишу )
ОтветитьУдалитьНемного "разъехались" термины в процессе обсуждения :)
ОтветитьУдалитьЯ бы сказал, что начало фразы (да и вся фраза целиком) такое же, как и в более простом варианте (том, что был на СС). То есть "Positive...". А вот сам ключик, конечно, надо сбрутить. Но и тут уже есть подсказка. Известно, что все ключи в рамках квеста были в формате СС09словоСС09.
А так - отличный реверс получился. Мне нравится :) Многовато констант, конечно, но... Для того "исходника", что был предоставлен - отличный реверс!
Расшифровал строчку:
ОтветитьУдалитьPositive Technologies welcome your on CC09 hack-quest!
И пароль:
_Blank
Ура!! )
Да, ваш алгоритм ломается достаточно быстро, а слова Positive хватило для моментального:)
//маленький крякми до сих пор не смотрел!
>>А так - отличный реверс получился. Мне нравится :) Многовато констант, конечно, но...
реверс - унылый, имхо ) сразу бы чистый CPP код дали и не парились
А констант там нет никаких, только один массивчик и куча мусора: [bp+si+0a] - это ж надо было додуматься, я чуть было не испугался, что совсем дос не знаю.
Вот, глянь этот, если еще не видел. Крякьи с СС07. http://crackmes.de/users/neon/virt/ Мусорная вирт-машинка.
ОтветитьУдалитьТоварищи! Кто на CC09 Битрикс WAF смотрел SQL инъекции, пожскажите, там такое работало:
&id=1;Another+query--
??? Если предположить, что Another query не фильтруется.
to 73ru5:
ОтветитьУдалитьмолодец!! не думал о работе в Positive Technologies?:)
если интересно, пиши на мейл devteev@ptsecurity.ru
to D0znp:
сам по себе, запрос "&id=1;что-то" не блокируется Bitrix WAF. а вот, например, подобные запросы "&id=1;insert...", "&id=1;select..." и т.д. уже блокируются
в контексте CC09 подобные запросы отработать не могли т.к. использовалась СУБД MySQL.
to D.E.:
ОтветитьУдалитья хотел узнать именно возможности базы, а не WAF. Второе как раз я теперь хорошо вижу перед собой ;) Нигде не нашел подсказки, что там мускуль был...
Найти запрос, который не фильтруется и выполняет поставленную задачу - не проблема.
Прицепить его именно к тому контексту, который был на СС09, не зная контекста, - игра вслепую ;)
Запросил образ - не ответили ;)
Вроде там были варианты кроме банального where id=$_GET['id'], их и хотелось бы получить.
>> я хотел узнать именно возможности базы, а не WAF.
ОтветитьУдалитьне совсем понял... возможности какой базы?
>> Найти запрос, который не фильтруется и выполняет поставленную задачу - не проблема.
тоже не понял. выполняет какую задачу? эксплуатация SQL Injection? под какую СУБД? на перед. Битрикс поддерживает только MySQL и MSSQL.
>> Прицепить его именно к тому контексту, который был на СС09, не зная контекста, - игра вслепую ;)
Владимир, да чтож ты все пытаешься к тому контексту привязать баги?:) Любой контекст интересен, когда речь идет о возможности чтения данных из соседней таблицы и чтения/записи файлов в обход waf...
вот примерный запрос к базе, который был на CC:
select id,name from contact where (param = 8 or (param2 = 'test' and id = $_GET['id']))
параметр $_GET['id'] попадает в SQL запрос без какой-либо проверки. в качестве СУБД использовался MySQL.
Зайдем с другого боку ;)
ОтветитьУдалитьЯ нашел SQL которые проходят через фильтр и выполняют действия из этого списка:
- либо прочитать таблицу (одну колонку)
- либо прочитать/записать файл
При этом прикрутить их к выражению вида where id=$_REQUEST['id'] нельзя, так как ты уже сказал, что там была MySQL и финт с мульти-запросом не проходит ;) Поэтому я спрашиваю уже в какой раз, там еще что-нибудь было кроме такого варианта? Если мне дать инпут из которого квери проходит через ВАФ, а потом идет в mysql_query($_GET['query']), то условия будут выполнены ;))) но это не совсем инъекция %)
Кстати, на MSSQL вроде .. where 1;anoter query должно сработать....
Дим, а ты уверен, что Битрикс Oracle не подерживает? Судя по исходникам, что-то там по крайней мере присутствует...
ОтветитьУдалить>> Дим, а ты уверен, что Битрикс Oracle не подерживает?
ОтветитьУдалитьмда... не знал о том, что они и его поддерживают...))
http://www.1c-bitrix.ru/products/cms/requirements.php
признаю ошибся;)
>> Я нашел SQL которые проходят через фильтр и выполняют действия из этого списка:
под ораклятину?:)
>> Поэтому я спрашиваю уже в какой раз, там еще что-нибудь было кроме такого варианта?
нет
>> но это не совсем инъекция %)
показывай, что ты там нарыл... хватит ходить вокруг да около:))
>>не думал о работе в Positive Technologies?:)
ОтветитьУдалитьЧестно говоря, я вообще ещё о работе не думал:)) хотя... может и стоит. подумать :)
Только ничего, что я, например, на 2ом курсе?)
>>Вот, глянь этот
спасибо за ссылку, может и посмотрю, хотя не уверен. хватит уже фигнёй страдать :)
Да, кстати. теперь хак-квест завершён :)
ОтветитьУдалитьto 73ru5:
ОтветитьУдалить>> Только ничего, что я, например, на 2ом курсе?)
а какая разница?:) работать полезно уже со школьной скамьи%)))
>> Да, кстати. теперь хак-квест завершён :)
))
Хм... А можно только файлик для реверсинга получить? Который сложный. Я боюсь, не выкачаю все части образа, потому что место закончилось...
ОтветитьУдалитьда, отправил тебе на gmail.
ОтветитьУдалитьникак не выходит скачать вторую часть архива. нельзя ли поправить?
ОтветитьУдалитьесть желание попробывать свои силы, и если выйдет развиватся в этой области.
>> никак не выходит скачать вторую часть архива. нельзя ли поправить?
ОтветитьУдалитьммм.... проверил, качает...а в чем проблема то со скачиванием?