• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Обзор xehook stealer ИЛИ как продавать паблик проект за 60$

reyvortex1

floppy-диск
Пользователь
Регистрация
09.07.2023
Сообщения
2
Реакции
9
Всех приветствую

На обзор попал известный в узких кругах стиллер под названием xehook (тема тут)
В данном обзоре я рассмотрю лишь БИЛД данного продукта, и на основе этого дам личное мнение.
Версия стиллера, которая рассматривалась в данной статье - 2.1.4. Stable

Начну с того, что данный проект, предположительно, связан с такими проектами как cinoshi <- holdthismoney <- ginzo <- exostub. если с holdthismoney, ginzo, exostub все понятно (их стабы имели минимальные отличия, все они подкачивали ддлки для просмотра БД, архивации и т.д.), тогда почему с xehook не все так однозначно?
Оснований у меня немного, но я и не буду утверждать что это правда. Во-первых веб-панель что xehook, что cinoshi очень схожи между собой (конкретно благодаря тому, что везде используются компоненты из tabler.io). Во-вторых, подмечу, что оба проекта развивались последовательно, причем xehook появился на свет спустя некоторое время после новости по поводу продажи cinoshi в Telegram-канале. Также вероятно, что проект просто выкупил человек, который до этого не имел отношения к выше перечисленным проектам, но не стоит отменять и того факта, что автор данного проекта и есть тот самый кодер cinoshi aka holdthismoney aka ...

Собственно, к чему я веду?
Если xehook - это проект того же человека, что и cinoshi, значит у человека есть большой опыт с мальварью, в частности с написанием кода для стиллеров. Будем это иметь ввиду при разборе билда.

Первичный осмотр

Билд стиллера представляет собой exe-файл весом ~950kb
1713988331113.png
При анализе Exeinfo PE видим сборщик Microsoft Visual C++, но сам стиллер, как мы знаем, написан на C#. Давайте посмотрим, что он делает.
После запуска на виртуальной машине можем видеть создание процесса RegAsm.exe, что наводит на мысль, что наш стиллер инжектится в сторонний процесс.
Давайте дампить
1713988484919.png
На выходе видим файл под названием xehook и весом 89 кБ.

Анализ в dnSpy

Пробуем открыть полученный файл в dnSpy и бинго!
1713988598367.png
Перед нами стиллер в чистом виде. Также видим, что на файле нет дополнительной обфускации в виде ренеймера. Благодаря этому, у меня возникло подозрение, что названия пронстранств имен (namespace) уж очень сильно что-то напоминают.
1713988900501.png
Хм.. Весьма странно. Для тех, кто не понимает откуда второй скрин - это опен-сурс стиллер Phemedrone. Давайте посмотрим на код, возможно это совпадение.
1713989049216.png

1713989065448.png
Видим сходства. К сожалению, 90% кода было взято из Phemedrone. Дальше я буду рассматривать только то, чего нет в опен-сурс проекте.

Взглянем на код для обхода песочниц, виртуальных машин и прочего.
1713989413844.png
На скрине показан метод, который отвечает за все проверки. В данном методе меня смутило несколько вещей.
1) AntiAnalysis.Debugger() возвращает результат выполнения WinApi функции CheckRemoteDebuggerPresent, в чем я не вижу никакой логики, ведь данную проверку можно легко обойти, включив галочку в самом dnSpy.
2) AntiAnalysis.Processes() возвращает true, если в запущенных процессах были найдены какие-либо подозрительные процессы. На самом деле, ничего в этом такого нет (хотя сам исполняемый файл можно переименовать, и данная проверка провалится). Меня больше смутило, что если запущен процесс processhacker, программа закроется. Как по мне это лишнее.
3) AntiAnalysis.VirtualBox() проверяет некоторые параметры через WMI. Код можно было бы сделать чище, если удалить ненужные проверки (к примеру, зачем мы проверяем наличие слова VIRTUAL в значении, написанного капсом, а потом сверяем это же значение с VirtualBox, если на первом же условии мы получим true). В идеале можно поместить все нежелательные ключевые слова в список, и потом проходиться по каждому слову, нежели постоянно вызывать .ToString().ToLower() и т.д.
1713990001160.png
Далее посмотрим на код, который парсит конфиг с сервера.
1713990378744.png
Ничего необычного за исключнием того, что кодер бессмысленно использует try catch в местах, где ошибка вряд ли может появиться.

Взглянем теперь на отправку лога на сервер.
1713990509938.png
Используется метод UploadFile для отправки лога с диска. Попрошу заметить, что в оригинальном проекте файл лога не создается на диске, в xehook же файл специально сохраняется на диске, для того чтобы потом отправить его методом UploadFile. На месте кодера я придумал бы другой метод отправки лога на сервер, например, поместив байтовое представление лога в тело POST-запроса.

Напоследок, рассмотрим код лоадера, который идет после сбора и отправки лога.
1713993657909.png
Опять видим нерациональное использование try catch, что говорит о том, что кодер не знает, в каком моменте может встретиться ошибка и как правильно ее обработать.
Также, видим, что код запуска файла повторяется 2 раза, с отличием в параметре Verb, который можно было присвоить отдельно после инициализации класса ProcessStartInfo.
После лоадера идет код для отображения диалогового окна с фейк-ошибкой, удалением данных крипто-расширений с Хромиум-браузеров (в коде это названо competitor, по аналогии - анти-соседи, что весьма специфично) и удалением самого себя (тут я не проверял, удаляет ли он файл в который инжектится, в моем случае RegAsm.exe, либо файл который запущен был изначально). Ничего особенного в коде этих функций нет, поэтому скриншоты прикреплять не стану.

Из уникального в этом стиллере больше ничего не осталось (крипто-расширения я не беру в счет, добавить новые пути в список - дело пяти минут).

Компетентность продавца

Предлагаю теперь взглянуть, в каких местах продавец обманывает своих покупателей.
1713992729978.png
Я бы не назвал это чистой ложью, ведь, действительно, приложения, использующие .NET Framework 4.0, запустятся на большинстве чистых системах. Но тут уточнение, что не на всех системах он запустится, к примеру на чистой Windows 7 (по-умолчанию предустановлен .NET Framework 3.5, но не 4.0). И раз уж мы говорим, о том, что нет зависимостей, это тоже заблуждение, ведь автор сам говорит, что зависимость от .NET Framework 4.0.
1713992416871.png
В коде не было замечено ни единого намека на загрузку лога на сервер чанками. Код отправки не сопровожден какими либо try catch выражениями, что означает при первой провальной отправке лога, программа просто закроется (сам метод отправки лога прикреплен выше, а ниже прикрепляю использование данного кода).
1713992656463.png
Больше в описании темы я не нашел ничего противоречащего.

Заключительный этап

На этом анализ продукта заканчивается, и теперь, что касается моего мнения по этому поводу.
Я считаю, что продукт не стоит своих денег однозначно, раз уж кодер не смог написать оригинальный стаб стиллера, а его собственный код выглядит плохо. Огорчает то, что проект делается исключительно ради коммерции, без собственных идей и уникальности. Покупатели же в свою очередь получают код бесплатного проекта с минимальными отличиями и веб-панель (про которую я сказать ничего не могу, ведь подпиской я не владею).

Всех благодарю за прочтение, буду рад выслушать ваше мнение
 

Вложения

  • 1713989382304.png
    1713989382304.png
    47.8 КБ · Просмотры: 85
  • 1713992576341.png
    1713992576341.png
    10.9 КБ · Просмотры: 62
Пожалуйста, обратите внимание, что пользователь заблокирован
Обзор интересный. Можешь файлы прикрепить которые были на руках(вырезав инфу о покупателе чтобы не палить контору)
. Я так понимаю 1 билд это криптованный т.к они сами билд криптованный дают (интересно взглянуть что там за релизация думаю что ранпе-холлвинг-процесс т.к инжектит в регасм) а второй билд(который дампнут) уже исходный.

То что сбор лога происходит в системе конечно стоит задуматься что там по рантайм детектам на самом стилаке.

Спасибо за обзор.

У них общая панель или каждому ставиться отдельно на сервер?
может там какой нить XSS в панели есть 😃

Удивлен что на исходном файла даже обфы нет да и крипт строк тоже :/

Но надеюсь что кодер учет ошибки и перепишет свой продукт и будет достойная версия за которую не так уж стыдно будет

Я твой профиль посмотрел. Абсолютно пустой.. наводят мысли что обзор заказной от конкурентов))
 
Я твой профиль посмотрел. Абсолютно пустой.. наводят мысли что обзор заказной от конкурентов))
Я не спорю, профиль у меня действительно пустой, поэтому и оснований на то, что я не «заказной от конкрурентов» нет :). Возможно позже от меня будут какие-либо темы на другую тематику, а эта тема, как крик души, ну как можно продавать бесплатный код за 60$
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Интересно было бы еще получить фидбек от тех кто купил подписку и услышать их мнение на продукт
и еще интереснее было бы услышать админа стиллера, как он ответит на этот обзор)
а то молчать это как то не круто
 
Интересно было бы еще получить фидбек от тех кто купил подписку и услышать их мнение на продукт
отзывы же писали положительные ему
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Пожалуйста, обратите внимание, что пользователь заблокирован
Благодарю за статью ! Для меня это тема новая и мне интересна тема стиллаков , хотел брать его для теста , посмотреть "что это за зверь такой и с чем его едят" и заплатил бы за паблик стилак , не великие деньги, безусловно , но за паблик проэкт платить не хочется совсем ))) И раз такая пляска , буду благодарен , кто подскажет паблик стилак хороший для изучения , XSS Lite с конкурса проэктов уже установил, изучаю , может еще какие-то)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
кто подскажет паблик стилак хороший для изучения
мефедрон. вот там выше он писал найдешь думаю линк
 
Пожалуйста, обратите внимание, что пользователь заблокирован
мефедрон. вот там выше он писал найдешь думаю линк
Не понял юмора , честно говоря ) Ну да ладно )
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх