Брутимо ключ для XOR, StackOFF
При проходженні одного із завдань у квесті від «Croc» було отримано файл file.enc. На перший погляд, файл був чимось закриптований. Як алгоритм шифрування, судячи з усього, лежав алгоритм XOR. Почитати про те, що це і як це працює, можна прочитати на вікіпедії. Якщо це XOR, то має бути ключ, яким цей файл можна повернути у вихідний стан. Завдання зрозуміле, потрібно знайти ключ за допомогою якого було зашифровано файл.
Вручну підбирати ключ - погана витівка, тому на просторах мережі був знайдений досить простий скрипт на Python, який вміє аналізувати файл на кількість входження символів, підбирати ключ і зберігати результати перебору. При встановлено GIT, завантажити вихідні коди аналізатора можна з GitHub:
Або архівом із блогу: xortool.zip
Спробуємо відновити файл не вдаючись до сил згори. Дії здійснюються на базі дистрибутива BackBox побудованого на Ubuntu, але при встановленому Python у Windows — скрипт легко відпрацює і там.
Оскільки ключ не відомий, додамопараметр -o, який вкаже скрипту про необхідність побрутити та вивести результати.

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

Аналіз показав, що ключ складається із 5 символів. Видно, що одним із ключів може бути рядокpwned, який і є ключем. Відкриємо файл номер 36 у блокноті.
Оскільки файл починається з iVBOR, стає зрозумілим, що це Base64. Після декодування цього рядка отримуємо зображення. Який і дає доступ до наступного етапу. (cat xortool_out/36.out base64 -d >out.png)

Більш детально ознайомитися з параметрами, що передаються в скрипт, можна ознайомитися тут.