SkypeACLKeyGen.exe анализ для хакерской команды
Итак...
что мы сегодня анализируем? Ну, сегодня мы анализируем часть ПО от hacking team. Это о скайпе? Зачем нам это? Не знаю, просто мне это интересно.
В любом случае, начнём с изучения поведения в рантайме. Как видно, для работы нужны имя пользователя и путь к плагину, а на выходе мы получаем acl? Так что же это всё значит? Изучив этот https://airbus-seclab.github.io/skype/vskype-part2.pdf, мы узнаём, что: «Skype реализует систему, похожую на ACL, чтобы разрешать или запрещать плагинам подключаться к запущенному экземпляру. „Подпись“ плагина добавляется в конфигурационный файл на основе ответа пользователя на диалоговое окно предупреждения». Так, а что лежит в папке этого ПО?
Ну, ок... пока это ни о чём нам не говорит. Итак, мы видим там shellcode первой стадии с концовкой office, что может указывать на эксплойт для office (пока не подтверждено), fakeport — это C# приложение, tracer.exe и прочее. Круто, моё чутьё подсказывает, что реальным плагином для регистрации будет tracer.exe. Почему так? Всё из того же PDF: «Голосовой движок Skype может создавать зашифрованные файлы трассировки, если заданы Logging и Logging2. Шифрование довольно простое — обычный XOR с 31-байтным ключом». Итак, давайте проанализируем сам генератор ACL, а затем разберём tracer, а возможно, в другом посте — и shellcode ;)
Начинаем с этого
Затем переходим к этому
И наконец попадаем вот сюда
Оттуда переходим сюда




Круто, ещё одно динамическое пасхальное поведение: когда вводишь пользователя и плагин для запуска, получаешь .png)
В любом случае, идём дальше и анализируем



Сверху вниз: оно вычисляет sha2 от содержимого файла, а также отображает его содержимое в памяти. К сожалению, у меня в динамике это не сработало, так что ничего не произошло :/ что поделать. Идём дальше. Заходим в probably_do_hash_based_function_function_recovery.


Увы, здесь та же история, что и в предыдущем случае: нам не удаётся отобразить это в памяти, и мы выходим из функции. Тем не менее мы вычисляем только md5 и, вероятно, выполняем какой-то поиск функции на основе сравнения md5.
Затем мы делаем malloc и memset
.png)
После этого преобразуем имя файла в верхний регистр

То же самое для имени пользователя

Круто, и дальше делаем вот это:
По сути, создаём собственный acl, чтобы разрешить запуск нашего плагина. В данном случае теперь я предполагаю, что это будет Tracer.exe, который, теоретически, как я думаю, будет логировать файлы трассировки, создаваемые голосовым движком Skype.



Вывод результата работы функций с изображений выше

Вывод результата работы функций с изображений выше
На этом пока всё. Позже сегодня я вернусь и обновлю это. А пока осталось проанализировать только эту половину функции
Также, когда я вернусь, мы ради интереса нырнём в some_decode function, а оттуда перейдём к бинарнику tracer.exe. Счастливого хакинга и до скорых встреч.