Анализ заксоренного файла

Брутим ключ для XOR

При прохождении одного из заданий в квесте от “Croc” был получен файл file.enc. На первый взгляд файл был чем-то закриптован. В качестве алгоритма шифрования, судя по всему лежал алгоритм XOR. Почитать о том, что это и как это работает можно прочитать на википедии. Если это XOR, значит должен быть ключ, которым этот файл можно вернуть в исходное состояние. Задача ясна, нужно найти ключ с помощью которого был зашифрован файл.

Вручную подбирать ключ – плохая затея, поэтому на просторах сети был найден достаточно простой скрипт на Python, который умеет анализировать файл на количество вхождений символов, подбирать ключ, и сохранять результаты перебора.
При установленно GIT, скачать исходные коды анализатора можно с GitHub:

git clone https://github.com/hellman/xortool.git

Или архивом с блога: xortool.zip

Попробуем восстановить файл не прибегая к силам свыше. Действия производятся на базе дистрибутива BackBox построенного на Ubuntu, но при установленном Python в Windows – скрипт без труда отработает и там.

Поскольку ключ не известен, добавим параметр -o, который укажет скрипту  о необходимости побрутить и вывести результаты.

Анализ заксоренного файла

После исполнения скрипта, появляется директория xortool_out, в которой находятся результаты расшифровки файла с различными ключами. Для того, чтобы понять какой ключ нам подошел посмотрим файл filename-key.csv

Ключ для XOR

Анализ показал, что ключ состоит из 5 символов. Видно, что одни из ключей может служить строка pwned, которая и является ключём. Откроем файл номер 36 в блокноте.

Поскольку файл начинается с iVBOR, становится ясно, что это Base64. После декодирования этой строки получаем изображение. Которое и дает доступ к следующему этапу. (cat xortool_out/36.out | base64 -d > out.png)

Расшифрованный файл

Более подробно ознакомиться с параметрами передаваемыми в скрипт можно ознакомиться тут.