ims0rry
Omae wa mou shindeiru
Please note, if you want to make a deal with this user, that it is blocked.
А прежде чем приступить к прочтению - загляни в мой бложик, там я публикую свои авторские статьи по программированию, вирусологии и прочим интересным вещам
Оригинал статьи -
Вся информация предоставлена исключительно в ознакомительных целях. Ни администрация, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Для просмотра содержимого вам необходимо авторизоваться.
Оригинал статьи -
Для просмотра содержимого вам необходимо авторизоваться.
Вся информация предоставлена исключительно в ознакомительных целях. Ни администрация, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Сразу хочу выразить благодарность человеку, предоставившему мне семпл. Это был очень скучный вечер, а тут такой подгон. Имени, разумеется, раскрывать не буду, но спасибо тебе^^
Палка о двух концах
Изначально, когда я разобрался с этим майнером, у меня сложилось немного двоякое впечатление. С одной стороны, довольно интересная реализация, в плане того, что юзеру не надо ничего делать кроме как распространять билд. Мол, вот тебе и крипт сразу на сервере производится раз в сутки, вечный фуд и все такое. Но, с другой стороны, куча подводных камней, которые всплывут, приблизительно, через месяц. Я это проходил еще на первой версии своего майнера.
Вступление
Изначально я получил архив с двумя файлами:

Сам билд майнера и файл для удаления всего этого дела с компьютера.
Скантайм майнера - http://viruscheckmate.com/id/emAIuxHEhnsr
Инфа о файлах:

Часть 1. Поведение
Прежде чем ковырять базовые 2 файла, мне хотелось бы взглянуть чего там есть еще интересного. Подрубаем песочницу, Wireshark и начинаем следить за майнером:
После запуска в %appdata% создается папка System и Defender, в течении минут 5-10 туда подкачиваются различные файлы.
Содержимое System:

Содержимое Defender:

Параллельно следим за запросами:

Смотрим первый запрос и получаем адрес сайта:

Все файлы лежат в трех директориях:
http://qwerty001.ucoz.net/001/
http://qwerty001.ucoz.net/002/
http://qwerty001.ucoz.net/003/
Далее запускаем файл на x64 виртуалке ( спасибо @DmitryAye) и смотрим как устроена автозагрузка.
Чекаем дефолтную автозагрузку:

Видим ссылку на файл в папке Defender. Есть предположение, что это файл, отвечающий за обновление стаба.
Далее смотрим планировщик задач:


Видим, что есть RunOnce таск, который срабатывает каждую минуту. Несложно сделать вывод, что этот файл при запуске проверяет, не запущен ли майнер, если не запущен - запускает и ждет появление таск менеджера. При перезапуске он пересоздает таск и так по кругу.
Алгоритм скрытия от диспетчера хороший, тут ничего не скажешь. Также, стоит отметить, что папка с файлами майнера полностью скрытая и обычный пользователь ее не найдет. Но может найти файл обновления стаба.
Часть 2. Анализ файлов
В итоге, из всей матрешки, мы получили следующие файлы:

Все были собраны в одну папку из Defender, System и их подпапок.
Начнем с самого верха:
0.txt - скачанная страница iplogger'а

Все конфиги - дефолтные .json конфигурации консольного cpu и gpu xmrig-майнера

del.exe - файл для удаления майнера с компьютера
Смотрим на него через DIE:

Видим, что это AutoIt, сразу качаем exe2Aut. Но просто так декомпилировать х64 файл не удастся, сначала его надо конвертировать в x32, для этого заюзаем следующий Perl-скрипт (взято с просторов интернета):
Код:
use strict;
use warnings;
my $f=shift || die ("Gimme a file name!");
print STDERR "Processing '$f':\n";
print STDERR "- Reading 'AutoItSC.bin'\n";
open F,"<AutoItSC.bin";
binmode F;
read F,my $a, -s 'AutoItSC.bin';
close F;
print STDERR "- Reading '$f'\n";
open F,"<$f";
binmode F;
read F,my $d, -s $f;
close F;
print STDERR "- Looking for the script\n";
if ($d=~/\xA3\x48\x4B\xBE\x98\x6C\x4A\xA9\x99\x4C\x53\x0A\x86\xD6\x48\x7D/sg)
{
my $pd=(pos $d)-16;
print STDERR "- Script found @ ".sprintf("%08lX",$pd)."\n";
print STDERR "- Creating 32-bit version '$f.a32.exe'\n";
open F,">$f.a32.exe";
binmode F;
print F $a.substr($d,$pd,length($d)-$pd);
close F;
}
else
{
print STDERR "- Script not found !\n";
}

Т.е. все ранее определенные нами файлы оказались верными.
intel.exe, intel1.exe, NvidiaHelp.exe, RadeonView.exe - консольные xmrig-майнеры (cpu-gpu), накрытые VMProtect'ом:

Ничего сверхъестественного, двигаемся дальше.
Miner.exe - x64 AutoIt лоадер, так же накрытый VMProtect'ом:

Снова юзаем наш скрипт по конвертации в x32, далее прогоняем через exe2Aut:

После запуска, файл создает папки %appdata%\system и %appdata%\system\CONFIG. Далее, если winit.exe еще не установлен, плюет текстовый файл с записанным внутри логгером в %appdata%\system, считывает оттуда логгер, копируется в ту же папку, делает запрос к логгеру (скачивая ту картинку) и удаляет базовый файл логгера (ip.txt).
После чего запускается бесконечный цикл, в котором идет проверка на существование winint.exe и отсутствие taskhost.exe, если условия соблюдены - в папку CONFIG с ресурсов плюются файлы конфига под все 4 майнера, устанавливаются аттрибуты скрытых и системных файлов на папку конфига. Далее качается и запускается PACK.exe, после чего, идет проверка на существование файла taskhost.exe, и, если он существует - процесс завершается.
PACK.exe - файл, следящий за обновлением стаба. Накрыт VMP, скорее всего не является AutoIt скриптом (но это не точно):

Файл не зависим от сервера, за исключением подгрузки фейк-дефендера. После запуска, он грузит фейк-дефендер, который в свою очередь обновляет стаб.
taskhost.exe - файл, следящий за процессом лоадера. Также как и он, накрыт VMP, скорее всего не является AutoIt скриптом (но это не точно):

После запуска, прописывается в планировщик задач под триггером RunOnce и перезапуском через минуту. В нем, также, заданы тайминги простоя для каждого майнера, когда какой должен включаться/завершаться. После перезапуска следит за консольными майнерами и передает им параметры. Все конфиги передаются в параметрах запуска консольным майнерам через параметр "-c", прим. "-c CONFIG/configCPU.json". ГПУ-майнинг работает только при простое. После запуска, он проверяет наличие таск менеджеров, если их нет - запускает майнеры. Далее, продолжает работать с консольными майнерами, если замечает таск менеджер - оффает все процессы и ждет перезапуска. Не зависим от сервера.
MSASCuiL.exe - файл, отвечающий за обновление стаба с сервера, накрыт VMP:

После подгрузки и запуска от PACK.exe добавляет себя в стандартную автозагрузку под именем Windows Defender'а и обновляет консольные майнеры в папках, определяет видеокарту и грузит нужный GPU-майнер.
Часть 3. Юзабельность
Из того что я увидел выше, складывается впечатление что это очень грамотный скам. Т.к. через файл фейк-дефендера разработчик может прогрузить на ваших ботов вообще все что угодно, в том числе и свои конфиги.
Я никогда не устану повторять, что софт, который зависим от серверов разработчика - плохой софт (касается только малвари). Есть зависимость - есть риск потерять всех ботов. У каждого человека, который имеет доступ к такому кол-ву ботов, есть соблазн урвать себе парочку пока никто не видит, поверьте мне, проходил это на первых стадиях продаж.
В плане самой работы у майнера есть ряд недостатков:
[-] Билд не криптуется. Единственное, на что вам стоит рассчитывать - это репротект VMP на сервере раз в сутки. Рано или поздно это перестанет работать, как и темида в свое время.
[-] Конфиг юзера лежит в обычном .json файле, который можно открыть блокнотом и все посмотреть. Радует что хоть папки и файлы находятся под системным аттрибутом.
[-] Тех файлов и исходников, которые я достал вполне достаточно для написания собственного билдера на основе этого майнера. Убрать только файл фейк-дефендера, который обновляет билды с сервера (или оставить, чтоб на халяву получать обновления), изменить параметры в конфиг-файлах, засунуть эти все файлы в sfx-архив или дроппер с созданием папки %appdata%\system и готово, можно идти продавать (не делайте этого, пожалуйста).
[-] Как я понял, стаб на сервере разделен на 3 категории по версиям майнера (см. ссылки на директории). Проглядев все PACK.exe и taskhost.exe, я понял, что абсолютно на всех версиях "стаб" - это VMProtect. 8000 за протектор? Не, спасибо.
[-] Майнер работает только на x64 системах
Вывод
Майнер хорош в некоторых аспектах реализации, но его явно нужно дорабатывать. Это не стоит таких денег, как указывает продавец. Майнер идеален для новичков в плане простоты и юзабельности, но явно не подходит тем, кто хочет что-то заработать на майнинге.
UPD. Продавец прислушался и сделал версию, где вы можете загрузить все на свой сервер. Он поможет вам с настройкой и прочим. Этот вариант я считаю довольно годным и даже советую к приобретению. Разработчик явно старается улучшить свой продукт и является адекватным человеком.
Считайте это сливом Extreme-версии майнера, где:
"Полностью OFFLINE версия не используется не каких серверов и подгрузок обновлений."
Ссылки
Скантайм майнера - http://viruscheckmate.com/id/emAIuxHEhnsr
Скантайм PACK.exe - http://viruscheckmate.com/id/NOnkS4Y4set4
Скантайм taskhost.exe - http://viruscheckmate.com/id/LAjF4OiJcKrW
Скантайм фейк-дефендера - http://viruscheckmate.com/id/vwZ1k5QJu8Qr
Скантайм консольных майнеров:
intel.exe - http://viruscheckmate.com/id/5JwoE2EvHLl6
intel1.exe - http://viruscheckmate.com/id/iSlGz4CYcXhL
NvidiaHelp.exe - http://viruscheckmate.com/id/650OibxEi30M
Сервер и папки, распределенные по стабам различных версий:
http://qwerty001.ucoz.net/001/
http://qwerty001.ucoz.net/002/
http://qwerty001.ucoz.net/003/
Исходный код майнера + x32 бинарники + все x64 файлы + изначальные семплы - https://github.com/ims0rry/Proga-cpu-gpu-miner
Продажник - https://vlmi.top/threads/ckrytyj-majner-cpu-gpu-vechnyj-fud-0.12233/
Последнее редактирование: