Вступления не будет, как и предисловий, все коротко и по делу
В конце статьи приложу архив со всем что есть: бинарники, .i64 бд от иды, питон скрипты для автоматизации в иде
Стилак написан на с++, о чем говорит множество дебаг а также assert строк (ощущение что оптимизация была поставлена на 0, и включена дебаг сборка)
В качестве json библиотеки используется nlohmann
В билде огромное количество бейс64 строк, в том числе имен апи функций (импорт по хешам не используется, как и кастом гетпроц, гетмодуль)
Расшифровываются они при помощи base64 -> rc4
rc4 ключ статично вбит в билде, от билда к билду отличается
Пример ответа от сервера
Для общения с сервером используется тот же алгоритм(base64 + rc4), но с другим ключем, тоже статично вбит, но везде одинаковый
кусок псевдокода приведенного в нормальный вид
system_info.txt полностью формируется на стороне клиента, о чем говорят дешифрованные строки
В начале работы программы есть нетривиальная проверка на снг
Для антидубля (защиты от запуска 2 инстанций стилака одновременно) создается эвент
какоето-числоимя-пкимя-пользователя
Проверка лицензии осуществляется тоже на клиенте:
дата разбита на 4 части, каждый из которых накрыт по отдельности алгоритмом описанным выше
затем дата обьединяется и сравнивается с локальной на пк жертвы
В функционале стиллера есть подгруз через павершелл
не понятная строчка(имя билда?), 2 ключа шифрования (запросы и строки), и 3 куска от даты окончания лицензии
первичный запрос к серверу выглядит так(после дешифрования):
создание скриншота выполняется через gdiplus
Для сборки данных с хрома, в котором используется APPB - используется инжект шеллкода + CREATE_SUSPENDED
Создается пайп для принятия данных, в который шеллкод из под хрома пишет ключ для дешифрования
Полезная нагрузка представляет из себя еще один пе файл - который лежит в секции данных (скорее всего прогнан через pe_to_shellcode)
Далее распишу про этот пе файл
Апи говорит само за себя
код дампнутого пе
инициализует апи (без кастом getproc getmodule)
Читает APPB ключ из Local State хрома
дешифрует через сервис, пишет в пайп
Как обещал - прикладываю архив, пас xss.pro
send.exploit.in
Планирую поковырять другие стилаки
В конце статьи приложу архив со всем что есть: бинарники, .i64 бд от иды, питон скрипты для автоматизации в иде
Стилак написан на с++, о чем говорит множество дебаг а также assert строк (ощущение что оптимизация была поставлена на 0, и включена дебаг сборка)
В качестве json библиотеки используется nlohmann
В билде огромное количество бейс64 строк, в том числе имен апи функций (импорт по хешам не используется, как и кастом гетпроц, гетмодуль)
Расшифровываются они при помощи base64 -> rc4
rc4 ключ статично вбит в билде, от билда к билду отличается
Пример ответа от сервера
Для общения с сервером используется тот же алгоритм(base64 + rc4), но с другим ключем, тоже статично вбит, но везде одинаковый
кусок псевдокода приведенного в нормальный вид
system_info.txt полностью формируется на стороне клиента, о чем говорят дешифрованные строки
В начале работы программы есть нетривиальная проверка на снг
Для антидубля (защиты от запуска 2 инстанций стилака одновременно) создается эвент
какоето-числоимя-пкимя-пользователя
Проверка лицензии осуществляется тоже на клиенте:
дата разбита на 4 части, каждый из которых накрыт по отдельности алгоритмом описанным выше
затем дата обьединяется и сравнивается с локальной на пк жертвы
В функционале стиллера есть подгруз через павершелл
не понятная строчка(имя билда?), 2 ключа шифрования (запросы и строки), и 3 куска от даты окончания лицензии
первичный запрос к серверу выглядит так(после дешифрования):
создание скриншота выполняется через gdiplus
Для сборки данных с хрома, в котором используется APPB - используется инжект шеллкода + CREATE_SUSPENDED
Создается пайп для принятия данных, в который шеллкод из под хрома пишет ключ для дешифрования
Полезная нагрузка представляет из себя еще один пе файл - который лежит в секции данных (скорее всего прогнан через pe_to_shellcode)
Далее распишу про этот пе файл
Апи говорит само за себя
код дампнутого пе
инициализует апи (без кастом getproc getmodule)
Читает APPB ключ из Local State хрома
дешифрует через сервис, пишет в пайп
Как обещал - прикладываю архив, пас xss.pro
Exploit.IN Send
Encrypt and send files with a link that automatically expires to ensure your important documents don’t stay online forever.
Планирую поковырять другие стилаки
