Сейчас на форуме: rmn, exp50848 (+7 невидимых)

 eXeL@B —› Основной форум —› PHD2012-BestReverser
<< . 1 . 2 .
Посл.ответ Сообщение


Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 30 мая 2012 11:23
· Личное сообщение · #1

Стартовал контест на Positive Hack Days 2012. Конкурс лучший реверсер от ESET.

Адрес жертвы http://crackme.esetnod32.ru/

Удачи в пробе сил!

-----
127.0.0.1, sweet 127.0.0.1


| Сообщение посчитали полезным: obfuskator, ClockMan, neomant

Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 02 июня 2012 23:40
· Личное сообщение · #2

ELF_7719116
Каждому свое. Имхо, очень неплохой крякми уровня intermediate+ если не на время. Если на время, то advanced+. Потратил на него день, а удовольствия получил гораздо больше.

-----
старый пень




Ранг: 39.2 (посетитель), 16thx
Активность: 0.020
Статус: Участник

Создано: 03 июня 2012 02:06
· Личное сообщение · #3

Могу написать как "светофор" решается, если кому-нибудь интересно.



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 03 июня 2012 02:25
· Личное сообщение · #4

Конечно пишите.



Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 03 июня 2012 03:05 · Поправил: r_e
· Личное сообщение · #5

bbuc
Да, очень интересно. Желательно с рефами на теорию.
added: А лучше сначала рефы или подсказки какие по теории, а через неделю решение.

-----
старый пень




Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 03 июня 2012 12:49
· Личное сообщение · #6

Вероятно, идея светофора - какое-то слово/цифры в hex представлении.



Ранг: 65.4 (постоянный), 10thx
Активность: 0.020
Статус: Участник

Создано: 03 июня 2012 13:05
· Личное сообщение · #7

ELF_7719116 неа там просто с битами надо поигратся и ключей для светофора там много не один. Там вначале надо было узнать какая длинна ключа (сколько кнопок надо нажать) ...

Для неверующих прилагаю ключи:
9 2 1 6 D C 4 8 B 0 0 0
6 B 1 6 D C 7 8 B 0 0 0

Пусть bbuc напишет я добавлю свои коменты как я решал.



Ранг: 39.2 (посетитель), 16thx
Активность: 0.020
Статус: Участник

Создано: 03 июня 2012 14:51 · Поправил: bbuc
· Личное сообщение · #8

Реверснутый алгоритм "в лоб" http://pastie.org/private/cogjxh3aorfzcxxsubrftw

Алгоритм проверки по таблице key_check, не зависит от первой функции. При этом его можно упростить примерно как написал r_e. Я правда использовал немного другой метод, но суть была такой же.

После этого я получил два валидных ключа, проверить которые можно попыткой расшифровать длл-ку от второго уровня. В итоге один ключ отброшен, остался один валидный 0xE7FD097289CBB591

Упрощаем алгоритм: http://pastie.org/private/ed5v1de8nana2v4ywmw65w

Кстати этой оптимизированной версией ключи в промежутке 0x00000000 - 0xFFFFFFFF брутятся за 12 минут в один тред на моем core i5. Уверен что если переписать на CUDA/OpenCL можно найти ключи брутом.

Суть алгоритма заключается в следующем: у нас есть начальное значение 0x48AEEFD486289CFB, на каждое нажатие кнопки мы сдвигаем его на 1 бит влево, а слева добавляем бит "чексуммы" от значений ключа.
При этом нажатие кнопки ксорит один из битов.

Самое главное для нас это найти размер ключа. Сделать это можно следующим образом: будем сдвигать начальное значение (0x48AEEFD486289CFB) влево, а конечное вправо (0xE7FD097289CBB591) на 1 бит и сравнивать их.
Там где различий будет меньше всего, скорее и есть размер ключа.
Скрипт на питоне, который делает это: http://pastie.org/private/mmmdisdwppu5zlphlmhdtg

Меньше всего разницы между значениями при длине ключа в 11 и 12 байт.

Проверяем:
Code:
  1. 0100100010101110111011111101010010000110001010001001110011111011 = 0x48AEEFD486289CFB
  2. 1110011111111101000010010111001010001001110010111011010110010001 = 0xE7FD097289CBB591

Ключ 11 байтов:
Code:
  1. 010010001011110111011111101010010000110001010001001110011111011000000000000
  2. xxxxxxxxxxx11100111111111010000100101110010100010011100101110110yyyyyyyyyyy
  3. _______________^__^_________^_____^___^_________________^__________________

Ключ 12 байтов
Code:
  1. 0100100010101110111011111101010010000110001010001001110011111011000000000000
  2. xxxxxxxxxxxx1110011111111101000010010111001010001001110010111011yyyyyyyyyyyy
  3. ________________^__^_________^_____^___^_________________^__________________

Т.е. нам нужно получить чексумму 01001000101 при длине 11 или 010010001010 при длине в 12 символов.
При этом изменив 6 значений внутри кнопками.
Нужно помнить что кнопки могут изменить только биты с номерами 0, 1, 6, 12, 18, 23, 24, 29, 30, 35, 41, 47, 52, 53, 58, 59

Теперь можно написать интеллектуальный брутер, который будет проверять можем ли мы кнопкой внести такое изменение чтобы получить конечный результат, а так же дает ли это изменение необходиму чексумму.

Этим брутером ключ нашелся только длиной в 12 символов. Хотя уже было поздно, время отведенное для решения задания уже закончилось

| Сообщение посчитали полезным: r_e, matrix

Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 03 июня 2012 16:00
· Личное сообщение · #9

bbuc
Познавательно.
Я вчера хотел описать подробней метод решения таблицы, но описание получилось громоздким - удалил.
Собственно, таблица - самая простая часть. По результату можно контролировать ошибку - ксорим с контрольным значением и оставшиеся биты показывают какие строки нужно подправить. Нечетное совпадение маски в строках дает 1, четное - 0. Если коллизия неразрешима - меняем какой-нибудь "корректный бит".
"Встреча посередине" оказалась, видимо, хорошей идеей для оценки глубины. Я пытался прокрутить полностью, но ошибка была слишком большой. Строить дерево == брутфорсу.

А вторую часть получилось сделать?

-----
старый пень




Ранг: 39.2 (посетитель), 16thx
Активность: 0.020
Статус: Участник

Создано: 03 июня 2012 16:07
· Личное сообщение · #10

Вторую часть я даже не начинал. Но организаторы говорили что кракми до конца никому не удалось решить: https://twitter.com/matrosov/status/208292206514159618




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 03 июня 2012 16:45 · Поправил: reversecode
· Личное сообщение · #11

второе задание я так думаю либо есть уязвимость переполнения в хешалго, либо
константа 0x45535320 должна находится из перемешивания,
а возможности выйти за рамки массива [64] там есть

но брутить
ConstMagic[0] = 0x12578ACAu;
ConstMagic[1] = 0xEFCAB678u;
ConstMagic[2] = 0x12345678u;
все равно надо, потому что про коллизии в Whirpool я вроде не слышал


можно попробовать угадать строку для хеша в которой должен быть 'ESS ' (0x45535320) после перемешивания, что бы понять где изначально до перемешивания стояли байты 0x45535320
и возможно потом даром дедукции угадать исходную строку для хеша
либо обладая даром телепата и екстрасенса угадать от чего брался хеш))

mak где это там md4???




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 03 июня 2012 18:42
· Личное сообщение · #12

А в первой части определили название алгоритма используемого?! Или самопал?

Кусками похоже на трансформацию мд4 и адлер32 совмещенное, но только кусками, не смотрел далее.

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 65.4 (постоянный), 10thx
Активность: 0.020
Статус: Участник

Создано: 04 июня 2012 16:25
· Личное сообщение · #13

Длинну я узнал так что начал подбирать от 0 до 16 пока несовпадет старший или младший дврод 0xE7FD0972 / 0x89CBB591, так как мне думать неособо хотелось я забрутил длинну используя OpenCL
после оптимизаций алго получилось где-то 200млн/с на моей карте. За пару минут у меня был ряд значений у корорых совпало одно из значений у всех значений длинна была 12. Далее уже было ясно какой длинны надо ключ. Для ускорения брута я взял пару входный значений из ряда у которых совпало одно из выходный значений и сделал примерно так ( N1 & N2 & N3 ... ) чтобы выбрать общие биты из чего у меня получилась маска которую я уже использовал для брута конечнего значения. Первые числа что я зпостил выше выскочили почти мгновенно после чего я не стал решать дальше лень матушка )



Ранг: 39.2 (посетитель), 16thx
Активность: 0.020
Статус: Участник

Создано: 07 августа 2012 09:32 · Поправил: bbuc
· Личное сообщение · #14

Решение к другому челленджу от есета:
http://blog-oppida.blogspot.fr/2012/08/solution-for-eset-blackhat-us-challenge.html

Тут тоже использовался WhirlPool, так что возможно что это чуть модифицированный (или полностью такой же) второй этап из phdays кракми.
Судя по
Code:
  1.  if hash512(scrambledTab)[:12] != [0xCA, 0x8A, 0x57, 0x12, 0x78, 0xB6, 0xCA, 0xEF, 0x78, 0x56, 0x34, 0x12]




Ранг: 0.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 октября 2012 17:06 · Поправил: Модератор
· Личное сообщение · #15

Все возможные ключи для первой части задания
AVictor2010@gmail.com

It's only list of all possible solutions (1425 variants). In the BlackHat-2012 task there are only 11 different variants.

2a060c7a9c1d
2a060c7a9d2d
2a060c7a9e3d
От модератора: удалена за ненадобностью пачка ключей. в следующий раз будет предупредительный в голову



Ранг: 33.8 (посетитель), 38thx
Активность: 0.060
Статус: Участник

Создано: 30 октября 2012 17:25 · Поправил: dimka_new
· Личное сообщение · #16

xxxxxx6 - подредактируйте свои посты, оформите одной ссылкой, увидел коммент mysterio и ваш - посчитал что вы нерусь




Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 30 октября 2012 17:28
· Личное сообщение · #17

xxxxxx6
Please delete your posts and attach the txt file with the list of solutions.

-----
ds


| Сообщение посчитали полезным: dimka_new, schokk_m4ks1k

Ранг: 13.0 (новичок), 2thx
Активность: 0.030
Статус: Участник

Создано: 06 июля 2013 00:20
· Личное сообщение · #18

r_e пишет:
Приаттачил свой код этого крякми под паролем. Как выйдет решение - увидим был ли там rc4 =) c834_30.05.2012_EXELAB.rU.tgz - phd12.zip

Уже можно)



Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 06 июля 2013 00:58
· Личное сообщение · #19

=) я уже и пароль забыл. да и рассказали уже все.

-----
старый пень



<< . 1 . 2 .
 eXeL@B —› Основной форум —› PHD2012-BestReverser
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати