Compromiso de la cadena de suministro del software 3CX iniciado por un compromiso anterior de la cadena de suministro del software; Presunto actor norcoreano responsable
En marzo de 2023, Mandiant Consulting respondió a un compromiso de la cadena de suministro que afectó al software de la aplicación de escritorio 3CX. Durante esta respuesta, Mandiant identificó que el vector de compromiso inicial de la red de 3CX fue a través de un software malicioso descargado del sitio web de Trading Technologies. Esta es la primera vez que Mandiant ve un ataque a la cadena de suministro de software que conduce a otro ataque a la cadena de suministro de software.
La aplicación de escritorio 3CX es un software empresarial que proporciona comunicaciones para sus usuarios, incluyendo chat, videollamadas y llamadas de voz. A fines de marzo de 2023, un compromiso de la cadena de suministro de software propagó malware a través de una versión troyana del software legítimo de 3CX que estaba disponible para descargar desde su sitio web. El software afectado fue 3CX DesktopApp 18.12.416 y versiones anteriores, que contenía un código malicioso que ejecutaba un descargador, SUDDENICON, que a su vez recibía servidores adicionales de comando y control (C2) de archivos de iconos cifrados alojados en GitHub. El servidor C2 descifrado se utilizó para descargar una tercera etapa identificada como ICONICSTEALER, un minero de datos que roba información del navegador. Mandiant rastrea esta actividad como UNC4736, un presunto grupo de actividad de nexo de Corea del Norte.
La investigación de Mandiant Consulting sobre el compromiso de la cadena de suministro de 3CX ha descubierto el vector de intrusión inicial: un paquete de software con malware distribuido a través de un compromiso anterior de la cadena de suministro de software que comenzó con un instalador manipulado para X_TRADER, un paquete de software proporcionado por Trading Technologies (Figura 1) . Mandiant determinó que un proceso de carga complejo condujo a la implementación de VEILEDSIGNAL, una puerta trasera modular de varias etapas, y sus módulos.
Mandiant Consulting identificó un instalador con el nombre de archivo X_TRADER_r7.17.90p608.exe (MD5: ef4ab22e565684424b4142b1294f1f4d) que llevó a la implementación de una puerta trasera modular maliciosa: VEILEDSIGNAL.
Aunque, según se informa, la plataforma X_TRADER se suspendió en 2020, todavía estaba disponible para su descarga desde el sitio web legítimo de Trading Technologies en 2022. Este archivo se firmó con el asunto "Trading Technologies International, Inc" y contenía el archivo ejecutable Setup.exe que también se firmado con el mismo certificado digital. El certificado de firma de código utilizado para firmar digitalmente el software malicioso expiraba en octubre de 2022.
El instalador contiene y ejecuta Setup.exe, que elimina dos archivos DLL con troyanos y un ejecutable benigno. Setup.exe usa el ejecutable benigno para descargar una de las DLL maliciosas. La carga lateral se basa en ejecutables legítimos de Windows para cargar y ejecutar un archivo malicioso que se ha disfrazado como una dependencia legítima. Las DLL maliciosas cargadas contienen y usan SIGFLIP y DAVESHELL para descifrar y cargar la carga útil en la memoria desde el otro ejecutable malicioso eliminado. SIGFLIP se basa en el cifrado de flujo RC4 para descifrar la carga útil elegida y utiliza la secuencia de bytes FEEDFACE para encontrar el código shell, en este caso DAVESHELL, durante la etapa de descifrado.
SIGFLIP y DAVESHELL extraen y ejecutan una puerta trasera modular, VEILEDSIGNAL, y dos módulos correspondientes. VEILEDSIGNAL se basa en los dos módulos extraídos para la inyección de procesos y las comunicaciones con el servidor C2.
VEILEDSIGNAL y los dos componentes que lo acompañan proporcionan la siguiente funcionalidad:
La configuración C2 de la muestra identificada de VEILEDSIGNAL (MD5: c6441c961dcad0fe127514a918eaabd4) se basó en la siguiente URL codificada: www.tradingtechnologies[.]com/trading/order-management.
Las aplicaciones X_TRADER y 3CXDesktopApp comprometidas contienen, extraen y ejecutan una carga útil de la misma manera, aunque la carga útil final es diferente. Mandiant analizó estas muestras y observó las siguientes similitudes:
El atacante usó una versión compilada del proyecto Fast Reverse Proxy disponible públicamente para moverse lateralmente dentro de la organización 3CX durante el ataque. El actor de amenazas colocó el archivo MsMpEng.exe (MD5: 19dbffec4e359a198daf4ffca1ab9165) en C:\Windows\System32.
Mandiant pudo reconstruir los pasos del atacante en todo el entorno a medida que recolectaban credenciales y se movían lateralmente. Finalmente, el atacante pudo comprometer los entornos de compilación de Windows y macOS. En el entorno de compilación de Windows, el atacante implementó un iniciador de TAXHAUL y un descargador de COLDCAT que persistió realizando el secuestro del orden de búsqueda de DLL a través del servicio IKEEXT y se ejecutó con privilegios de LocalSystem. El servidor de compilación macOS se comprometió con la puerta trasera POOLRAT usando Launch Daemons como mecanismo de persistencia.
Informes anteriores mencionaron que el servidor de compilación macOS estaba comprometido con SIMPLESEA. Mandiant Intelligence completó el análisis de la muestra y determinó que se trataba del POOLRAT de puerta trasera en lugar de una nueva familia de malware.
UNC4736 demuestra diversos grados de superposición con múltiples operadores norcoreanos rastreados por Mandiant Intelligence, especialmente con aquellos involucrados en operaciones de ciberdelincuencia motivadas financieramente. Estos grupos han demostrado un enfoque sostenido en la criptomoneda y los servicios relacionados con fintech a lo largo del tiempo.
Mandiant evalúa con confianza moderada que UNC4736 está relacionado con la actividad "AppleJeus" de Corea del Norte motivada financieramente según lo informado por CISA. Esto se corrobora aún más con los hallazgos de Google TAG, que informó sobre el compromiso de www.tradingtechnologies[.]com en febrero de 2022, antes de la distribución de actualizaciones comprometidas de X_TRADER desde el sitio.
También se identificó una superposición de infraestructura débil entre UNC4736 y dos grupos de actividad sospechosa de APT43, UNC3782 y UNC4469.
Fecha
Dominio
UNC
2022-12-20
curvefinances[.]com
UNC4469
2022-12-29
pbxphonenetwork[.]com
UNC4736
Fecha
Dominio
UNC
2022-04-08
periodismo[.]org
UNC4736
2021-11-26
nxmnv[.]sitio
UNC3782
Fecha
Dominio
UNC
2023-01-09
msedgepackageinfo[.]com
UNC4736
2023-03-22
apollo-crypto.org.shilaerc20[.]com
UNC4469
El compromiso de la cadena de suministro de software identificado es el primero del que tenemos conocimiento que ha llevado a un compromiso de la cadena de suministro de software en cascada. Muestra el alcance potencial de este tipo de compromiso, particularmente cuando un actor de amenazas puede encadenar intrusiones como se demostró en esta investigación. La investigación sobre la actividad de UNC4736 sugiere que lo más probable es que esté vinculado a actores de amenazas de Corea del Norte motivados financieramente. Los compromisos en cascada de la cadena de suministro de software demuestran que los operadores de Corea del Norte pueden explotar el acceso a la red de manera creativa para desarrollar y distribuir malware, y moverse entre las redes de destino mientras realizan operaciones alineadas con los intereses de Corea del Norte.
ROBADOR ICONICICO
ICONICSTEALER es un minero de datos C/C++ que recopila datos de configuración de aplicaciones, así como el historial del navegador.
DAVESHELL
DAVESHELL es un shellcode que funciona como un cuentagotas en memoria. Su carga útil incrustada se asigna a la memoria y se ejecuta.
SIGFLIP
SigFlip es una herramienta para parchear archivos PE-COFF firmados con código de autenticación para inyectar código arbitrario sin afectar o romper la firma del archivo.
POOLRAT
POOLRAT es un backdoor macOS C/C++ capaz de recopilar información básica del sistema y ejecutar comandos. Los comandos ejecutados incluyen la ejecución de comandos arbitrarios, la eliminación segura de archivos, la lectura y escritura de archivos y la actualización de la configuración.
RECORRIDO DE IMPUESTOS
TAXHAUL es una DLL que, cuando se ejecuta, descifra una carga de shellcode esperada en C:\Windows\System32\config\TxR\
COLDCAT
COLDCAT es un descargador complejo. COLDCAT genera información de identificador de host único y la envía a un C2 que se especifica en un archivo separado a través de una solicitud POST con los datos en el encabezado de la cookie. Después de un breve apretón de manos, el malware espera que el shellcode codificado en base64 se ejecute en respuesta.
SEÑAL DE GUÍA
VEILEDSIGNAL es una puerta trasera escrita en C que puede ejecutar shellcode y terminarse a sí mismo. Además, VEILEDSIGNAL se basa en módulos adicionales que se conectan a través de canalizaciones con nombre de Windows para interactuar con la infraestructura C2.
Un agradecimiento especial a Michael Bailey, Willi Ballenthin, Michael Barnhart y Jakub Jozwiak por su colaboración y revisión. Mandiant también quisiera agradecer a Google Threat Analysis Group (TAG) y Microsoft Threat Intelligence Center (MSTIC) por su colaboración en esta investigación.
Desarrollo de recursos
Acceso inicial
Persistencia
Escalada de privilegios
Evasión de defensa
Descubrimiento
Comando y control
Impacto
regla M_Hunting_3CXDesktopApp_Key {
meta:
disclaimer = "Esta regla está destinada a la caza y no se ha probado para ejecutarse en un entorno de producción"
description = "Detecta una clave encontrada en un archivo 3CXDesktopApp malicioso"
md5="74bc2d0b6680faa1a5a76b27e5479cbc"
fecha = "2023/03/29"
versión = "1"
instrumentos de cuerda:
$clave = "3jB(2bsG#@c7" ancho ascii
condición:
$clave
}
regla M_Hunting_3CXDesktopApp_Export {
meta:
disclaimer = "Esta regla está destinada a la caza y no se ha probado para ejecutarse en un entorno de producción"
description = "Detecta una exportación utilizada en el malware 3CXDesktopApp"
md5="7faea2b01796b80d180399040bb69835"
fecha = "2023/03/31"
versión = "1"
instrumentos de cuerda:
$str1 = "DllGetClassObject" ancho ascii
$str2 = "3CXDesktopApp" ancho ascii
condición:
todo ($str*)
}
rule TAXHAUL{ meta: autor = "Mandiant" creado = "03/04/2023" modificado = "03/04/2023" versión = "1.0" cadenas: $p00_0 = {410f45fe4c8d3d[4]eb??4533f64c8d3d[4] eb??4533f64c8d3d[4]eb} $p00_1 = {4d3926488b01400f94c6ff90[4]41b9[4]eb??8bde4885c074} condición: uint16(0) == 0x5A4D y cualquiera de ellos}
regla M_Hunting_MSI_Installer_3CX_1
{
meta:
autor = "Mandiante"
md5 = "0eeb1c0133eb4d571178b2d9d14ce3e9, f3d4144860ca10ba60f7ef4d176cc736"
instrumentos de cuerda:
$ss1 = { 20 00 5F 64 33 64 63 6F 6D 70 69 6C 65 72 5F 34 37 2E 64 6C 6C 5F }
$ss2 = { 20 00 5F 33 43 58 44 65 73 6B 74 6F 70 41 70 70 2E }
$ss3 = { 20 00 5F 66 66 6D 70 65 67 2E 64 6C 6C 5F }
$ss4 = "3CX Ltd1" ascii
$sc1 = { 1B 66 11 DF 9C 9A 4D 6E CC 8E D5 0C 9B 91 78 73 }
$sc2 = "202303" ascii
condición:
(uint32(0) == 0xE011CFD0) y tamaño de archivo > 90 MB y tamaño de archivo < 105 MB y todos ellos
}
regla M_Hunting_TAXHAUL_Hash_1
{
meta:
autor = "Mandiante"
disclaimer = "Esta regla está destinada a la caza y no se ha probado para ejecutarse en un entorno de producción"
description = "La regla busca el valor codificado utilizado en el algoritmo hash de cadena observado en instancias de TAXHAUL".
md5="e424f4e52d21c3da1b08394b42bc0829"
instrumentos de cuerda:
$c_x64 = { 25 A3 87 DE [4-20] 25 A3 87 DE [4-20] 25 A3 87 DE }
condición:
tamaño de archivo < 15 MB y uint16(0) == 0x5a4d y uint32(uint32(0x3C)) == 0x00004550 y cualquiera de ellos
}
regla M_Hunting_SigFlip_SigLoader_Native
{
meta:
autor = "Mandiante"
disclaimer = "Esta regla está destinada a la caza y no se ha probado para ejecutarse en un entorno de producción"
description = "La regla busca cadenas presentes en SigLoader (Nativo)"
md5="a3ccc48db9eabfed7245ad6e3a5b203f"
instrumentos de cuerda:
$s1 = "[*]: Cargador básico..." ancho ascii
$s2 = "[!]: Falta la ruta de PE o la clave de cifrado..." ancho ascii
$s3 = "[!]: Uso: %s
$s4 = "[*]: cargando/analizando el archivo PE '%s'" ancho ascii
$s5 = "[!]: No se pudo leer el archivo %s" ancho ascii
$s6 = "[!]: '%s' no es un archivo PE válido" ancho ascii
$s7 = "[+]: Tabla de certificados RVA %x" ancho ascii
$s8 = "[+]: Tamaño de la tabla de certificados %d" ancho ascii
$s9 = "[*]: Etiqueta encontrada 0x%x%x%x%x" ancho ascii
$s10 = "[!]: No se pudo ubicar los datos/código shell" ancho ascii
$s11 = "[+]: tamaño de datos cifrados/descifrados %d" ancho ascii
condición:
tamaño de archivo < 15 MB y uint16(0) == 0x5a4d y uint32(uint32(0x3C)) == 0x00004550 y 4 de ($s*)
}
regla M_Hunting_Raw64_DAVESHELL_Bootstrap
{
meta:
autor = "Mandiante"
disclaimer = "Esta regla está destinada a la caza y no se ha probado para ejecutarse en un entorno de producción"
description = "La regla busca el shellcode de arranque (64 bits) presente en DAVESHELL"
md5="8a34adda5b981498234be921f86dfb27"
instrumentos de cuerda:
$b6ba50888f08e4f39b43ef67da27521dcfc61f1e = { E8 00 00 00 00 59 49 89 C8 48 81 C1 ?? ?? ?? ?? licenciatura ?? ?? ?? 49 81 C0 ?? ?? ?? ?? 41 B9 ?? ?? ?? ?? 56 48 89 E6 48 83 E4 F0 48 83 EC 30 C7 44 24 20 ?? ?? ?? ?? E8 ?? 00 00 00 48 89 F4 5E C3 }
$e32abbe82e1f957fb058c3770375da3bf71a8cab = { E8 00 00 00 00 59 49 89 C8 BA ?? ?? ?? ?? 49 81 C0 ?? ?? ?? ?? 41 B9 ?? ?? ?? ?? 56 48 89 E6 48 83 E4 F0 48 83 EC 30 48 89 4C 24 28 48 81 C1 ?? ?? ?? ?? C7 44 24 20 ?? ?? ?? ?? E8 ?? 00 00 00 48 89 F4 5E C3 }
condición:
tamaño de archivo < 15 MB y cualquiera de ellos
}
regla M_Hunting_MSI_Installer_3CX_1
{
meta:
autor = "Mandiante"
disclaimer = "Esta regla está destinada a la caza y no se ha probado para ejecutarse en un entorno de producción"
description = "Esta regla busca valores codificados dentro del instalador MSI observados en cadenas y certificado de firma"
md5="0eeb1c0133eb4d571178b2d9d14ce3e9"
instrumentos de cuerda:
$ss1 = { 20 00 5F 64 33 64 63 6F 6D 70 69 6C 65 72 5F 34 37 2E 64 6C 6C 5F }
$ss2 = { 20 00 5F 33 43 58 44 65 73 6B 74 6F 70 41 70 70 2E }
$ss3 = { 20 00 5F 66 66 6D 70 65 67 2E 64 6C 6C 5F }
$ss4 = "3CX Ltd1" ascii
$sc1 = { 1B 66 11 DF 9C 9A 4D 6E CC 8E D5 0C 9B 91 78 73 }
$sc2 = "202303" ascii
condición:
(uint32(0) == 0xE011CFD0) y tamaño de archivo > 90 MB y tamaño de archivo < 100 MB y todos ellos
}
regla M_Hunting_VEILEDSIGNAL_1
{
meta:
autor = "Mandiante"
disclaimer = "Esta regla está destinada a la caza y no se ha probado para ejecutarse en un entorno de producción"
md5 = "404b09def6054a281b41d309d809a428, c6441c961dcad0fe127514a918eaabd4"
instrumentos de cuerda:
$rh1 = { 68 5D 7A D2 2C 3C 14 81 2C 3C 14 81 2C 3C 14 81 77 54 10 80 26 3C 14 81 77 54 17 80 29 3C 14 81 77 54 11 80 AB 3C 14 8 1 D4 4C 11 80 33 3C 14 81 D4 4C 10 80 22 3C 14 81 D4 4C 17 80 25 3C 14 81 77 54 15 80 27 3C 14 81 2C 3C 15 81 4B 3C 14 81 94 4D 1D 80 28 3C 14 81 94 4D 14 80 2D 3C 14 81 94 4D 16 80 2D 3C 14 81 }
$rh2 = { 00 E5 A0 2B 44 84 CE 78 44 84 CE 78 44 84 CE 78 1F EC CA 79 49 84 CE 78 1F EC CD 79 41 84 CE 78 1F EC CB 79 C8 84 CE 78 BC F4 CA 79 4A 84 CE 78 BC F4 CD 79 4D 84 CE 78 BC F4 CB 79 65 84 CE 78 1F EC CF 79 43 84 CE 78 44 84 CF 78 22 84 CE 78 FC F5 C7 79 42 84 CE 78 FC F5 CE 79 45 84 CE 78 FC F5 CC 79 45 84 CE 78}
$rh3 = {DA D2 21 22 9E B3 4F 71 9E B3 4F 71 9E B3 4F 71 C5 DB 4C 70 94 B3 4F 71 C5 DB 4A 70 15 B3 4F 71 C5 DB 4B 70 8C B3 4F 71 66 C3 4B 70 8C segundo 3 4F 71 66 C3 4C 70 8F B3 4F 71 C5 DB 49 70 9F B3 4F 71 66 C3 4A 70 B0 B3 4F 71 C5 DB 4E 70 97 B3 4F 71 9E B3 4E 71 F9 B3 4F 71 26 C2 46 7 0 9F B3 4F 71 26 C2 B0 71 9F B3 4F 71 9E B3 D8 71 9F B3 4F 71 26 C2 4D 70 9F B3 4F 71 }
$rh4 = { CB 8A 35 66 8F EB 5B 35 8F EB 5B 35 8F EB 5B 35 D4 83 5F 34 85 EB 5B 35 D4 83 58 34 8A EB 5B 35 D4 83 5E 34 09 EB 5B 35 77 9B 5E 34 92 EB 5B 35 77 9B 5F 34 81 EB 5B 35 77 9B 58 34 86 EB 5B 35 D4 83 5A 34 8C EB 5B 35 8F EB 5A 35 D3 EB 5B 35 37 9A 52 34 8C EB 5B 35 37 9A 58 34 8E EB 5B 35 37 9A 5B 34 8E EB 5B 35 37 9A 59 34 8E EB 5B 35 }
condición:
uint16(0) == 0x5A4D y uint32(uint32(0x3C)) == 0x00004550 y 1 de ($rh*)
}
regla M_Hunting_VEILEDSIGNAL_2
{
meta:
autor = "Mandiante"
disclaimer = "Esta regla está destinada a la caza y no se ha probado para ejecutarse en un entorno de producción"
md5="404b09def6054a281b41d309d809a428"
instrumentos de cuerda:
$sb1 = { C1 E0 05 4D 8? [2] 33 D0 45 69 C0 7D 50 BF 12 8B C2 41 FF C2 C1 E8 07 33 D0 8B C2 C1 E0 16 41 81 C0 87 D6 12 00 }
$si1 = "CryptBinaryToStringA" palabra completa
$si2 = "BCryptGenerateSymmetricKey" palabra completa
$si3 = palabra completa "Crear subproceso"
$ss1 = "ChainingModeGCM" de ancho
$ss2 = "__mantener" palabra completa
condición:
(uint16(0) == 0x5A4D) y (uint32(uint32(0x3C)) == 0x00004550) y (uint16(uint32(0x3C)+0x18) == 0x020B) y todos ellos
}
regla M_Hunting_VEILEDSIGNAL_3
{
meta:
autor = "Mandiante"
disclaimer = "Esta regla está destinada a la caza y no se ha probado para ejecutarse en un entorno de producción"
md5 = "c6441c961dcad0fe127514a918eaabd4"
instrumentos de cuerda:
$ss1 = { 61 70 70 6C 69 63 61 74 69 6F 6E 2F 6A 73 6F 6E 2C 20 74 65 78 74 2F 6A 61 76 61 73 63 72 69 70 74 2C 20 2A 2F 2A 3 B 20 71 3D 30 2E 30 31 00 00 61 63 63 65 70 74 00 00 65 6E 2D 55 53 2C 65 6E 3B 71 3D 30 2E 39 00 00 61 63 63 65 70 74 2D 6C 61 6E 67 75 61 6 7 6 5 00 63 6F 6F 6B 69 65 00 00 }
$si1 = "HttpSendRequestW" palabra completa
$si2 = palabra completa "CreateNamedPipeW"
$si3 = palabra completa "Crear subproceso"
$se1 = "DllGetClassObject" palabra completa
condición:
(uint16(0) == 0x5A4D) y (uint32(uint32(0x3C)) == 0x00004550) y (uint16(uint32(0x3C)+0x18) == 0x020B) y todos ellos
}
regla M_Hunting_VEILEDSIGNAL_4
{
meta:
autor = "Mandiante"
disclaimer = "Esta regla está destinada a la caza y no se ha probado para ejecutarse en un entorno de producción"
md5 = "404b09def6054a281b41d309d809a428, c6441c961dcad0fe127514a918eaabd4"
instrumentos de cuerda:
$sb1 = { FF 15 FC 76 01 00 8B F0 85 C0 74 ?? 8D 50 01 [6-16] FF 15 [4] 48 8B D8 48 85 C0 74 ?? 89 ?? 24 28 44 8B CD 4C 8B C? 48 89 44 24 20 }
$sb2 = { 33 D2 33 C9 FF 15 [4] 4C 8B CB 4C 89 74 24 28 4C 8D 05 [2] FF FF 44 89 74 24 20 33 D2 33 C9 FF 15 }
$si1 = "Crear subproceso" palabra completa
$si2 = palabra completa "MultiByteToWideChar"
$si3 = "LocalAlloc" palabra completa
$se1 = "DllGetClassObject" palabra completa
condición:
(uint16(0) == 0x5A4D) y (uint32(uint32(0x3C)) == 0x00004550) y (uint16(uint32(0x3C)+0x18) == 0x020B) y todos ellos
}
regla M_Hunting_VEILEDSIGNAL_5
{
meta:
autor = "Mandiante"
disclaimer = "Esta regla está destinada a la caza y no se ha probado para ejecutarse en un entorno de producción"
md5="6727284586ecf528240be21bb6e97f88"
instrumentos de cuerda:
$sb1 = { 48 8D 15 [4] 48 8D 4C 24 4C E8 [4] 85 C0 74 ?? 48 8D 15 [4] 48 8D 4C 24 4C E8 [4] 85 C0 74 ?? 48 8D 15 [4] 48 8D 4C 24 4C E8 [4] 85 C0 74 ?? 48 8D [3] 48 8B CB FF 15 [4] EB }
$ss1 = "chrome.exe" palabra completa ancha
$ss2 = "firefox.exe" palabra completa ancha
$ss3 = "msedge.exe" palabra completa ancha
$ss4 = "\\\\.\\pipe\\*" palabra completa ascii
$ss5 = "FindFirstFileA" ascii palabra completa
$ss6 = "Process32FirstW" palabra completa ascii
$ss7 = "RtlAdjustPrivilege" ascii palabra completa
$ss8 = "GetCurrentProcess" ascii palabra completa
$ss9 = "NtWaitForSingleObject" palabra completa ascii
condición:
(uint16(0) == 0x5A4D) y (uint32(uint32(0x3C)) == 0x00004550) y (uint16(uint32(0x3C)+0x18) == 0x020B) y todos ellos
}
regla M_Hunting_VEILEDSIGNAL_6
{
meta:
autor = "Mandiante"
disclaimer = "Esta regla está destinada a la caza y no se ha probado para ejecutarse en un entorno de producción"
md5="00a43d64f9b5187a1e1f922b99b09b77"
instrumentos de cuerda:
$ss1 = "C:\\Programdata\\" ancho
$ss2 = "devobj.dll" palabra completa ancha
$ss3 = "msvcr100.dll" palabra completa ancha
$ss4 = "TpmVscMgrSvr.exe" palabra completa de ancho
$ss5 = "\\Microsoft\\Windows\\TPM" palabra completa de ancho
$ss6 = "Crear archivo W" palabra completa ascii
condición:
(uint16(0) == 0x5A4D) y (uint32(uint32(0x3C)) == 0x00004550) y (uint16(uint32(0x3C)+0x18) == 0x010B) y todos ellos
}
rule MTI_Hunting_POOLRAT { meta: author = "Mandiant" disclaimer = "Esta regla está pensada para la caza y no se ha probado para ejecutarse en un entorno de producción" description = "Detecta cadenas encontradas en POOLRAT". md5 = "451c23709ecd5a8461ad060f6346930c" date = "10/ 28/2020" versión = "1" cadenas: $str1 = "name=\"uid\"%s%s%u%s" ascii ancho $str2 = "name=\"session\"%s%s%u %s" ancho ascii $str3 = "nombre=\"acción\"%s%s%s%s" ancho ascii $str4 = "nombre=\"token\"%s%s%u%s" ancho ascii $ límite = "--N9dLfqxHNUUw8qaUPqggVTpX-" condición ascii sin mayúsculas y minúsculas: cualquiera de ($str*) o $límite}
regla M_Hunting_FASTREVERSEPROXY
{
meta:
autor = "Mandiante"
disclaimer = "Esta regla está destinada a la caza y no se ha probado para ejecutarse en un entorno de producción"
md5="19dbffec4e359a198daf4ffca1ab9165"
instrumentos de cuerda:
$ss1 = "Ir a construir ID:" palabra completa
$ss2 = "Ir a buildinf:" palabra completa
$ss3 = "net/http/httputil.(*ReverseProxy)." ascii
$ss4 = "github.com/fatedier/frp/cliente" ascii
$ss5 = "\"puerto_servidor\"" ascii
$ss6 = "github.com/armon/go-socks5.proxy" ascii
condición:
uint16(0) == 0x5A4D y uint32(uint32(0x3C)) == 0x00004550 y todos ellos
}
alerta tcp cualquiera cualquiera -> cualquiera cualquiera (msg:"Posible 3CXDesktopApp malicioso identificado"; contenido:"raw.githubusercontent.com/IconStorages/images/main/"; umbral:límite de tipo, seguimiento por_src, conteo 1, segundos 3600; sid : 99999999;)
alerta tcp cualquiera cualquiera -> cualquiera cualquiera (msg:"Posible 3CXDesktopApp malintencionado identificado"; contenido:"3cx_auth_id=%s\;3cx_auth_token_content=%s\;__tutma=true"; umbral:tipo límite, rastrear por_src, contar 1, segundos 3600; sid: 99999999;)
alert tcp any any -> any any (mensaje: "Posible 3CXDesktopApp malicioso identificado"; contenido: "__tutma"; umbral: límite de tipo, seguimiento por_src, conteo 1, segundos 3600; sid: 99999999;)
alert tcp any any -> any any (mensaje: "Posible 3CXDesktopApp malicioso identificado"; contenido: "__tutmc"; umbral: límite de tipo, seguimiento por_src, conteo 1, segundos 3600; sid: 99999999;)
Las organizaciones pueden validar sus controles de seguridad mediante las siguientes acciones con Mandiant Security Validation.
EN
Nombre
A106-319
Comando y control: UNC4736, consulta de DNS, variante n.º 1
A106-321
Comando y control: UNC4736, consulta de DNS, variante n.º 2
A106-323
Comando y control: UNC4736, consulta de DNS, variante n.º 3
A106-324
Host CLI - UNC4736, clave de ejecución 3CX, modificación del registro
A106-322
Transferencia maliciosa de archivos: UNC4736, SUDDENICON, descarga, variante n.º 1
S100-272
Evaluación: UNC4736 Realización de un ataque a la cadena de suministro dirigido al Sistema de gestión telefónica 3CX
Enlace a fuente RSS
Los expertos de Mandiant están listos para responder a sus preguntas.
Fecha Dominio UNC Fecha Dominio UNC Fecha Dominio UNC ICONICSTEALER DAVESHELL SIGFLIP POOLRAT TAXHAUL COLDCAT VEILEDSIGNAL VID Nombre