Skip to content

Latest commit

 

History

History

resistance_test_task

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Reverse | Resistance test task

Информация

Сопротивлению нужны только толковые исследователи и ревёрсеры.

Поэтому они отсеивают новичков тестовым заданием.

Оно очень простое, но имеет небольшую хитрость.

Сейчас им нужна любая помощь, поэтому другие задачи тебе тоже будут доступны.

Но если ты хочешь немного подзаработать, то реши задание и получишь то, что тебе так нужно.

Запуск

Отдать командам бинарник из deploy/

Описание

ELF 32bit, ARM, C, strip, no pack

Суть задания - понять что у вас на руках повреждённый в заголовке ELF-файл, восстановить его и декодировать RC4 с известным ключом.

Решение

Задание очень простое, главное, чтобы вас не сбило с толку то, что оно изначально не загружается в IDA.

  1. Смотрим, что у нас за файл с помощью утилиты "file". Нам показывает, что это 64 ELF под ARM.
  2. Пытаемся грузить в IDA64 - не выходит, в IDA32 - тоже не выходит.
  3. Идём дальше и читаем заголовок с помощью readelf.
  4. Видим, что заголовок в начале нормальный, а дальше идут не характерные значения.
  5. Немного посмотрев формат ELF можно заметить, что в заголовке есть байт отвечающий за битность. Меняем его на 32-байта
  6. Грузим в IDA32 и всё успешно.
  7. Находим функцию main. В ней видим использовании некоторой функции с аргументов "this_is_not_flag", а после сравнение с некоторым блобом.
  8. Проанализировав вызываемую функцию, можно понять, что это RC4. Ключ нам дан. Просто расшифруем блоб и получим флаг.

В данном случае эксплоит - это скрипт для расшифровки блоба с помощью алгоритма RC4.

Пример эксплоита

Флаг

Cup{ea9d371ee29e03cf04054bc1154a8b0b4513614d246fe4653adc7e03f4a2ac65}