Комментарии 13
Почему сам экзешник вызывает вопросы на VirusTotal?
Насколько я знаю, сам файл просто обновляет ресурсы, скачивает еще несколько исполняемых файлов, так что для многих АВ строгий триггер
Имхо, прочитав репорты о вашем exeшнике, я бы сам его пометил малварью
Репорт Hybrid-analysis
Репорт any.run
И хотя описанная в статье "force false-positive" - это реальная проблема, конкретно ваш файл сам по себе вызывает слишком много вопросов. Дело не в том, что его кто-то запустил рядом с вирусом. Дело в том, что он сам ведет себя как какой-то троянец.
Вот лишь несколько самых очевидных красных флагов из этих репортов:
Сбор информации о системе и подозрительные вызовы. Чтение BIOS, проверка UAC, и, что самое странное, — запуск slui.exe (клиент активации Windows). У легитимного лаунчера нет причин обращаться к компонентам лицензирования ОС.
Активные попытки уклонения от анализа. Тут целый букет: от прямых вызовов IsDebuggerPresent до использования TLS-коллбэков для выполнения кода до основной точки входа - зачем? Секции с аномально высокой энтропией (.text, .data, .rsrc) - тут использование упаковщика или шифровщика для защиты от реверс-инжиниринга.
Прямые индикаторы шпионского ПО. Отчет Hybrid-Analysis четко указывает на наличие функционала для перехвата клавиатуры ("retrieve keyboard strokes") и доступа к буферу обмена ("open the clipboard"). Это уже не просто подозрительно, а гиперподозрительно!
Сетевая активность и C2. Связь идет с C2-сервером (api.metaskins.gg), который помечен вредоносным. Вдобавок, в теле файла найдены строки с .onion - ну тут сами думайте.
Так что дело не в "соседстве с вредоносом в цепочке процессов". Ваш файл, судя по всему, и сам использует сомнительные техники + ещё и не подписан.
Вот это букет!
Так и не увидел в графе вызова slui.exe, его упоминаний и нет в самом экзешнике
IsDebuggerPresent вызывается в TLS колбеке MS CRT и вы это можете найти в многих экзешниках буквально у себя на компьютере просто поиском строки внутри файла (скриншот ниже под спойлером). Поясню сразу же - это поиск дебаггера на случай сбоя, по коду в спойлере это очевидно. Больше того еще скажу, что никто в качестве антиотладки не будет использовать настолько слабую проверку, если что есть варианты посолиднее
Такой результат можно получить вообще на любой экзешник, который обратится к буферу обмена, не новость.
В этом и была цель злоумышненика - внести домен в спамхаус. И в чем поинт про .onion в случае, если есть обычный домен с API? Я чуток посмотрел, погуглил, увидел знакомый бибилиотечный вызов. Curl - малварь с C2 в onion?
Скрытый текст


Вы извините, но слишком уж странные тезисы. С таким подходом можно что угодно обозвать малварью.
Да, вы правы, что каждый отдельный индикатор можно интерпретировать как легитимный. Однако задача аналитика и ML сканера - смотреть на всю картину в целом. И вот что выходит:
1. Про упаковщик/протектор, энтропию и анти-отладку.
Использование протектора объясняет и высокую энтропию секций, и наличие анти-отладочных приемов. Но для специалиста по безопасности использование подобных упаковщиков - это само по себе огромный красный флаг. Легитимные разработчики используют их для защиты своего кода, но 99% всей малвари в дикой природе использует их для сокрытия вредоносного функционала. Когда аналитик и/или ML сканнер видит упакованный файл без подписи, он не думает: "О, разработчик защищает свою интеллектуальную собственность". Он думает: "От меня что-то прячут, и я должен выяснить, что именно".
2. Про slui.exe
Я перепроверил граф вызовов в отчете any.run. Да, MetaSkins.exe не вызывает slui.exe напрямую. Его вызывает системный сервис SppExtComObj.Exe. Это моя неточность однако этот вызов произошел во время работы вашего приложения. Это нетипичное совпадение. Почему во время работы обычного лаунчера вдруг активизируется служба защиты ПО Windows? Возможно, ваше приложение делает какой-то специфичный запрос или вызов, который триггерит эту службу. Для меня это остается подозрительным, которое требует объяснения. Само по себе это не доказывает злой умысел, но добавляет веса в общую копилку подозрительной активности.
3. Про C2, домен и .onion строки
"Как вы определили, что сервер является C2?" Когда анализируешь ПО, любой сервер, с которым приложение связывается для получения данных, функционально является C2 сервером для этого приложения. Это его "командный центр". Когда этот сервер прячется за Cloudflare, а само приложение неподписано и использует техники уклонения от анализа, любой эксперт будет рассматривать этот канал связи как потенциально вредоносный C2.
"В чем поинт про .onion?" Да, Вы говорите, что это просто часть библиотеки curl. Но вопрос не в этом. Вопрос: зачем в простом лаунчере для винды библиотека, которая умеет работать с Tor и другая библиотека, которая почему-то работает с wine? Это избыточный функционал, который непонятно почему там присутствует. Даже если вы не используете этот функционал, его наличие в коде - это уже странно.
Даже если принять все ваши объяснения, картина получается следующая:
Мы имеем приложение, которое упаковано коммерческим протектором, скрывающим его истинный код, без цифровой подписи. Это приложение использует анти-отладочные приемы и заснуло 525 раз во время анализа. Во время его работы происходят нетипичные системные вызовы (триггер slui.exe). Оно имеет функционал для доступа к буферу обмена, перехвата клавиатуры и содержит в себе код для работы с анонимной сетью Tor. Его основной домен спрятан за Cloudflare и тоже помечен, как подозрительный или вредоносный. Учитывая перегруженность аналитиков, никто не будет залезать и стараться зареверсить прогу, чтобы понять, что она делает на самом деле.
Да, ни один из этих пунктов в отдельности не является 100% доказательством, но их совокупность создает подозрительное впечатление, а антивирусным компаниям проще заблочить, чем разбираться.
Во-первых, если у вас нет экспертизы - зачем вы вообще пытаетесь спорить? Я абсолютно уверен, что вы прогоняете эти отчеты и мои ответы через нейронку, но я и без вас могу с ней по поспорить.
Далее, как вы определили наличие протектора, если его там нет? Вы хоть бы воспользовались какими-либо инструментами для анализа, IDA Pro/ghidra/Binary Ninja? Если не умеете реверсить, Detect It Easy к вашим услугам, это уж точно надежнее поверхностных ответов нейронки. Но всё же рекомендую найти руками хотя бы упаковкщик (его применение всегда очевидно), не говоря уж об обфускаторах по типу VMProtect или Themida, разница между обычным кодом и мутированным/виртуализированным с их помощью всегда видна на глаз.
Я еще раз говорю, что CURL определяет домен первого уровня ONION, и он же включен в состав самого экзешника, вот вам базовый анализ по строкам в IDA - абсолютно понятно происхождение строк. Ссылку на curl я привожу повторно
Скрытый текст

Причем тут вообще Wine - я ума не приложу, спишем на галлюцинацию нейронки.
slui.exe обычно запускается самой системой для проверки текущего состояния активации Windows, он может как сразу запуститься, так и не запуститься вовсе, это логика кода Microsoft, и вовсе не относится к какой-либо malware активности.
В общем - я жду Вашего анализа, лично Вашего, не нейронки, хоть сколько-то углубленного, ручного. Я могу даже лично с Вами пообщаться, ответить на вопросы. И прошу Вас воздержаться от использования нейронок таким образом - Вы не даете полный контекст для нее, а она в свою очередь строит выводы только лишь с Ваших слов, а не с фактуры.
Интересные времена пошли, что теперь можно снизить credibility комментария натягиванием нейронки.
Я делаю свои выводы на основе двух репортов, которые выше уже мной приведены. И там, как раз, и wine_get_version есть (hybrid analysis) и slui.exe (any.run), вы, наверное, не читали репорты.
если у вас нет экспертизы - зачем вы вообще пытаетесь спорить?
А тут у нас попытка авторитетом задавить?
В общем - я жду Вашего анализа, лично Вашего, не нейронки, хоть сколько-то углубленного, ручного.
А тут попытка покомандовать другим человеком.
В общем, я попытался вам помочь в силу своих возможностей. Дальше уже вам решать, что делать. Я же прекращаю тут писать комментарии.
wine_get_version есть
Я не вижу тут никакой Вашей помощи, не понимаю даже в чем она. Я Вам постарался объяснить на основании чего можно и чего - нельзя делать какие-либо вообще выводы, ответил по существу на все ваши вопросы. Вы же не привели ничего кроме ответов нейронки, и не нужно этого отрицать. Это не упрек, что у вас нет экспертизы - я уверен, что она есть у вас в другой области. Однако, глядя на то, что пишете лично Вы - это только самослив и нежелание разобраться руками, почему Ваши аргументы несостоятельны. Никто Вас не пытается задавить авторитетом, никто Вами не командует, да и вообще Вы свободны в принципе ничего не писать. Но строча на хабре комментарии - будьте готовы к технически подкованному сопротивлению претензиям, увы - такова площадка.
По поводу wine_get_version - напоминаю, что в файле есть Curl и он используется для тех целей, для которых и нужен сам файл - обновлять ресурсы с сервера.
По поводу slui.exe - вообще не вижу проблемы, это нормальное поведение windows - запускать механизм проверки активации.
Тут целый букет: от прямых вызовов IsDebuggerPresent до использования TLS-коллбэков для выполнения кода до основной точки входа - зачем? Секции с аномально высокой энтропией (.text, .data, .rsrc) - тут использование упаковщика или шифровщика для защиты от реверс-инжиниринга.
Обычное поведение при использовании Themida/VMP/иного софта
проверка UAC
Обычное поведение при проверке прав админа
Связь идет с C2-сервером
А как вы определили, что сервер является C2?
в теле файла найдены строки с .onion
А проверка родительского процесса хоть как-нибудь поможет?
- ваше приложение всё равно запустится перед тем как закрыться при сканировании, попав в список вызовов
- exec("start ./app.exe")
Остерегайтесь «песочных террористов»