Hackerlab Игра [Writeup]

M4x

One Level
20.05.2024
7
4
BIT
132
Без лишних предисловий перейдем к делу.

В первую очередь, мы анализируем файл Game.exe с помощью утилиты file:

Bash:
file Game.exe

# Вывод: Game.exe: Zip archive data, made by v3.0 UNIX, extract using at least v2.0, last modified, last modified Sun, Jul 06 2023 23:42:56, uncompressed size 151, method=deflate

Результаты работы утилиты file ясно указывают на то, что на самом деле это не исполняемый файл, а ZIP-архив. Однако, если мы попытаемся открыть этот файл с помощью просмотрщика архивов, нам не удастся это сделать, и мы столкнемся с ошибкой. Тогда мы приступаем к анализу файла с помощью hex-редактора.

1.webp


Мы знаем, что сигнатура большинства ZIP-архивов начинается с байтов 50 4b 03 04. Однако в нашем случае мы наблюдаем 4d 5a 03 04, что говорит о том, что первые два байта сигнатуры были намеренно подменены, чтобы операционная система воспринимала архив как исполняемый файл. Исправим это, изменив первые два байта на правильные, и сохранив внесенные изменения.

2.webp


Теперь архив можно успешно открыть с помощью просмотрщика. Однако мы обнаруживаем, что архив защищен паролем. Утилита John the Ripper помогает нам быстро найти пароль.

Распаковываем архив и открываем файл flag.txt, в котором находим флаг, представленный в виде последовательности символов:

Код:
\u{43}\u{4f}\u{44}\u{45}\u{42}\u{59}\u{7b}\u{6e}...

Хорошо знакомые каждому, кто давно решает задачи на Codeby Games, начальные символы флага в hex-нотации 434f44454259 подтверждают, что мы на верном пути. Теперь остается лишь декодировать флаг из hex, игнорируя байты в формате \u{}. Для этого я предпочитаю использовать терминал Linux:

Bash:
echo -n '434f444542597b6e236c6c' |xxd -p -r
# Вывод: CODEBY{n#ll

Разумеется, флаг целиком я не покажу.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!