Write-up Revocryptoforensics (SPRUSH CTF)
User1
<Вырезано цензурой> https://t.me/ch4nnel1
Содержание:
Разбор

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

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

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

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

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

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

Решение
- пройтись DIE'ем, понять что замешен upx
- распаковать upx
- реверснуть основные функции
- как-то получить ключ и IV для aes (допустим скопировав псевдо-код иды)
- расшифровать трафик, получить картинку, открыть, увидеть флаг
Эпилог
А его тут нет, в этот раз я не тупил и решал правильно (на самом деле, я просто еще не видел чужих райтапов. Поэтому и думаю, что решил правильно).