Write-up Revocryptoforensics (SPRUSH CTF)

Write-up Revocryptoforensics (SPRUSH CTF)

User1
Cryptoreverse+forensic=❤

<Вырезано цензурой> https://t.me/ch4nnel1

Содержание:

Разбор

Сам таск (https://game.sprush.rocks/challenges#Revocryptoforensics-24)

Первым делом, первым делом ида устраиваем анбоксинг архива.

В нем у нас один exe'шник и еще один дамп трафика, про последнее пока что забудем. Откроем exe в иде, она говорит что файл может быть упакован каким-то пакером.

Как всегда в таких случаях воспользуемся DIE

Он говорит что упаковано это дело обычным upx, будем надеяться, что последний не кастомный, и upx -d сможет его распокавать. Так и есть, распаковываем его и загружаем в иду уже распакованный вариант таска.

Чуть поизучав и покопавшись в псевдокоде, можно понять следующее, сначала прога настраивает сокет, получает по нему 3 блока по 32 байта, проводит с ними какую-то крипту несколько раз. Читает файл отдает его содержимое и значения предыдущей крипты в другую крипто функцию, которую можно сгуглить по началу массива из 256 чаров и опознать в этом aes. Дальше это все отправляется по сокету куда-то.

Типо main

В принципе, все что нам нужно это только узнать, что нам возвращает функция somecrypt. Можно попробовать пропатчить встроенный ip на какой-то свой, но к сожалению даже оригинальная, но распакованная прога ложится. Так что используя ctrl+c, ctrl+v копируем пседо-код из иды, чуть редачим, добавляя трафик из pcap файла и изменяя типы переменных для gcc, получаем что-то вроде этого, так как у меня вышел не самый красивый вывод программы, поправил его с помощью скрипта на питоне.

Теперь дело за малым расшифровать aes зная ключ и IV, сделать это можно к примеру с помощью cyberchef.

Видим по хедеру файла, что это пнг, качаем открываем, плюс флаг.

типо флаг

Решение

  • пройтись DIE'ем, понять что замешен upx
  • распаковать upx
  • реверснуть основные функции
  • как-то получить ключ и IV для aes (допустим скопировав псевдо-код иды)
  • расшифровать трафик, получить картинку, открыть, увидеть флаг

Эпилог

А его тут нет, в этот раз я не тупил и решал правильно (на самом деле, я просто еще не видел чужих райтапов. Поэтому и думаю, что решил правильно).

Report Page