299

Как я "взломал" RAR архив защищенный паролем

Данная история произошла давно, а началась еще раньше. Играл я как-то в одну браузерную игру, где типа пошаговая стратегия с элементами ПвП, в основном юниты с героев меча и магии, хоть и переделаны некоторые. Но там есть такой аспект как рулетка(на игровые деньги, вывод игровых денег не предусмотрен). И как уважающая себя рулетка - там есть система проверки "честности". На некоторых сайтах в этих целях публикуют хеш "соленного" выпадения, и перебрать все варианты(выпадение+соль) за разумное время не получится. Но в то же время можно после публикации выпадения и соли - проверить что игра "честная".


Но тут прибегли к RAR архивам. Которые до сих пор генерируются и публикуются вручную, что поделать. Но система такая - заранее можно скачать запароленный архив с текстовым файликом выпадений за месяц! и по истечении месяца опять же надо ждать пароль, открыть архив скачанный заранее(чтобы админы не перезалили архив), промотать текстовый файл до нужного времени и сравнить число из файла с выпавшим ранее. Муторно, и никто не проверяет. Сам пароль длинный, и состоит из разных символов, цифр букв - перебрать - не вариант.


Но есть одно НО. Точнее было. Они использовали старенький WinRAR 3.0 без опции шифрования метаданных. Это такая опция которая шифрует не только содержимое файлов, но и сам список файлов, их название, размер, и т.д. и т.п. а самое главное CRC32 оригинального файла. К счастью для чайников, в 5-ой версии винрара, есть защита от дураков, и даже без этой опции - контрольная сумма будет изменена в зависимости от пароля.


А без этой опции, получалось:

список файлов, в данном случае только 1, размер, сжатый размер, имя файла а также Checksum=2EDD73BB. Путем нехитрого перебора хешей с такой длинной и соответственно хешей самого файла(для проверки использовал архивы с уже известным паролем) выяснил что это самый обычный CRC32. Но все еще есть около 130Кб данных, которых никак не получить из контрольной суммы.


Теперь сам файл. Выглядит примерно так:

опять же ничего сложного. Номер "спина" - последовательный - можно нарисовать заранее.

Год-месяц-день время - минута - опять же можно нарисовать заранее.

И выпадения. Их слишком много чтобы перебрать. Но можно отключить жадность и перебрать лишь несколько спинов. А остальные - собирать автоматическим скриптом(на VPS, скрипт на пару строк, кидаешь в cron - и вуаля). Потом грубый перебор всех вариантов, в самом конце месяца. Хочешь 1 спин - 38 вариантов. Хочешь 2 спина - 1444. Мой старенький комп осилил 5 спинов минуты за 3, и уже для некоторых тестовых месяцев выдавал коллизии (т.е. два варианта файлов с разницей лишь в конце последних 5-и строк - но с тем же CRC). Тут еще помог тот факт что CRC считывает файл от начала и до конца по 1 блоку, т.е. можно считать промежуточный CRC до последней известной строки, и потом инициализировать CRC с этим значением для расчета финальной суммы. Которая сравнивается с известным Checksum-ом.  Совпадение - идем срывать куш.


Это в теории. На практике игру выключили на 20 минут(2 спина) и в истории игр эти выпадения не были. То есть надо было перебрать еще 2 строки, которые дают правильную, но на фиг никому не нужную информацию. С этим скрипт тоже справился. Поднял кончено немного игровых денег(которых при усиленной игре я бы может за год заработал - и то не факт), а потом администрация по тихому "пофиксила" баг:

> В конце файла генерируется случайная строка => взлом по контрольной сумме уже невозможен

> Начали шифровать метаданные => саму контрольную сумму даже не узнать

> Перешли на последнюю версию винрара, чтобы нечаянно не забыть поставить галочку(там еще размер ключа AES поменялся, но это несущественно)


P.S. У меня нет идей как возможно взломать RAR 5.x, даже зная большую часть содержимого. Там еще такая фишка есть, что тот же файл, с тем же паролем и алгоритмом на выходе даст разные(при двоичном сравнении) файлы, видимо добавляют шумы которые убираются при дешифровке, или каждый раз генерируется случайный вектор инициализации для генерации ключей например. Но так или иначе - грубый перевод паролей вряд ли поможет.

Правила сообщества

Обязательно к прочтению для авторов:

1. Если вы добавляете пост, утверждающий об утечке данных или наличии дыр в системе, предоставьте ссылку на источники или технически подкованное расследование. Посты из разряда "Какой-то банк слил данные, потому что мне звонили мошенники" будут выноситься в общую ленту.
2. Все вопросы "Как обезопасить сервер\приложение\устройство" - в лигу "Компьютер это просто".

Обязательно к прочтению для всех:

Добавление ссылки разрешено если она не содержит описание коммерческих (платных) продуктов и/или идентификаторов для отслеживания перехода и для доступа не нужен пароль или оплата в т.ч. интернет-ресурсы, каналы (от 3-х тематических видео), блоги, группы, сообщества, СМИ и т.д.


Запрещены политические holy wars.

По решению модератора или администратора сообщества пользователь будет забанен за:

1. Флуд и оскорбление пользователя, в т.ч. провокация спора, флуда, холивара (высказывание без аргументации о конкретной применимости конкретного решения в конкретной ситуации), требование уже данного ответа, распространение сведений порочащих честь и репутацию, принижающих квалификацию оппонента, переходы на личности.

2. Публикацию поста/комментария не соответствующего тематике сообщества, в том числе обсуждение администраторов и модераторов сообщества, для этого есть специальное сообщество.

3. За обвинение в киберпреступной деятельности.

4. За нарушение прочих Правил Пикабу.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества