Un análisis de cómo Turla utilizó PowerShell

Investigadores de ESET analizan nuevas tácticas, técnicas y procedimientos (TTP) atribuidos al Turla Group of PowerShell Uses únicamente para mejorar el malware de memoria

Turla, también conocido como Snake, es un grupo dedicado al espionaje reconocido por completar malware. Para generar confusión, nuestros operadores constantemente comentan sobre el uso de scripts de PowerShell que ofrecen la capacidad de cargar y ejecutar, en memoria, ejecutivos maliciosos y gratuitos. Esta es la primera vez que se detecta un campo que puede activarse cuando una persona malintencionada cae de la discoteca.

Se cree que Turla ha estado operando desde al menos 2008, cuando satisfactoriamente se infiltró en equipos de las Fuerzas Armadas de los Estados Unidos. La mayor parte del tiempo estuve involucrado en grandes ataques contra las oficinas del Ministerio de Relaciones Exteriores de Alemania y el Imperio Francés.

Este no es el primer caso en el que Turla utiliza cargadores en la memoria de PowerShell para aumentar las posibilidades de evadir productos de seguridad. En 2018, Kaspersky publicó un informe que analizaba un cargador en TurS PowerShell que se basaba en el proyecto de código abierto Posh-SecMod. Sin embargo, presenta algunos problemas y muchas veces te has puesto de acuerdo.

Luego de unos meses, Turla mejoró estos scripts y ahora los está utilizando para cargar un amplio rango de malware personalizado de su arsenal tradicional.

El tipo de victoria es un blanco común para Turla. Hemos identificado varias entidades diplomáticas en Europa del Este que han comprometido el uso de este guión. Sin embargo, es probable que nuestros guiones estén utilizando medios globales contra muchos ataques blancos de los ataques tradicionales de Turla en Europa Occidental y el Mediterráneo Oriental. Tal como están las cosas, este artículo ayudará a los equipos de seguridad a contrarrestar estos scripts de PowerShell. También presentamos varias cargas útiles, incluida una puerta trasera basada en RCP y una puerta trasera que implementa uno de los usos de OneDrive como servidor de Commander y Control.

El cargador de PowerShell se basa en tres características principales: persistencia, libertad y carga en la memoria del ejecutivo envalentonado de la libertad.

Persistencia

Los scripts de PowerShell no son simples droppers, sino que persisten en el sistema y solo los ejecutivos regulares pueden cargarlos en la memoria normal. Echemos un vistazo a los operadores de Turla usando los métodos de persistencia:

  • Obtenga un evento de suscripción para el Instrumental de administración de Windows (WMI)
  • Alteración del perfil de PowerShell (archivo perfil.ps1).

Instrumentación de Administración Windows

En el primer caso, los ataques creados por los filtros de eventos de WMI y los eventos de consumo de WMI. Los consumidores son simplemente líneas de mando que lanzan comandos de PowerShell en base64 que cargan un solo script de PowerShell adjunto al registro de Windows. La figura 1 muestra cómo establecer la persistencia.

Figura 1: persistencia mediana del usuario de WMI

Este evento se registró recientemente a las 15:30:40 y el tiempo de actividad del sistema está entre 300 y 400 segundos. La variable $ HL39fjh Continúe con el comando PowerShell codificado en base64 que se puede actualizar en la Figura 2. Lee lala della Windows Registry donde está almacenado el payload grabado y contiene la contraseña y el salto necesario para descifrar el payload.

Figura 2. Control de WMI de consumidor de PowerShell

Finalmente, el script de carga útil se cifra en el registro de Windows. Tenga en cuenta que los atacantes usan una ubicación de registro diferente para cada organización. Igualmente, pero el resultado es un indicador útil para detectar intrusiones similares.

Perfil.ps1

Este es el último caso, los atacantes todavía están en el perfil de PowerShell. Tome nota de la documentación de Microsoft:

Un perfil de PowerShell es un script que se usa al iniciar un PowerShell. Puede usar el perfil como un script para iniciar una sesión para personalizarlo. Agregados de energía, comandos, funciones, variables, complementos, módulos y unidades de PowerShell.

La Figura 3 muestra un perfil de PowerShell modificado por Turla.

Figura 3. Archivar perfil.ps1 protegido

El comando de PowerShell grabado en base64 es muy similar a al. utilizado por los consumidores de WMI.

Descifrado

La carga útil que figura en el registro de Windows es otro script de PowerShell. Generado con el script Out-EncryptedScript code.ps1 de la plataforma de pruebas de penetración PowerSploit. Adicionalmente, los números de las variables son aleatorios para comprobar el script, lo cual se puede apreciar en la Figura 4.

Figura 4. Rutina rutinaria

La carga útil se especifica utilizando el algoritmo 3DES. El vector de inicialización está en la muestra. PINGQXOMQFTZGDZX, es diferente para cada muestra. La llave y el salto también son diferentes para cada script y no son almacenados en el script, salvo en el filtro WMI o en el archivo perfil.ps1.

PE del cargador

La carga útil se descifra en la etapa previa y es un cargador reflexivo de PowerShell. Esto se basa en el script Invoke-ReflectivePEInjection.ps1 del marco PowerSploit. El ejecutable está codificado en el script y se carga directamente en la memoria de un proceso que está corrupto en el sistema elegíaco de forma aleatoria.

En algunos casos, los atacantes son específicos de la lista de ejecutivos del binario, pero no deben ser ejecutados, lo cual se puede apreciar en la Figura 5.

Figura 5. Ejemplo de lista de exclusión

Es interesante notar que los números avp.exe, avpsus.exe, klnagent.exe y vapm.exe se refieren a los ejecutivos de Kaspersky Labs.

Omitir AMSI

En una serie de muestras lanzadas en marzo de 2019, los modificadores de Turla modificaron sus scripts de PowerShell con la lente de la interfaz Antimaware (AMSI). Esta es una interfaz que le permitirá integrar la aplicación de Windows con el producto antimalware instalado. Es especialmente útil para PowerShell y macros.

No se ha encontrado ningún mecanismo nuevo para volver a emplear una tecnología presentada en Black Hat Asia 2018 en el carro The Rise and Fall of AMSI. Consistir en el parque en memoria del inicio de la función AmsiScanBuffer en libertad amsi.dll.

El script de PowerShell carga un ejecutable .NET para recuperar la dirección AmsiScanBuffer. Luego llama Protección virtual para permitir escribir en la dirección de recuperación.

Finalmente, el parque se implementa directamente en el script de PowerShell, como se aprecia en la Figura 6. Modificación del principio de AmsiScanBuffer para devolver siempre 1 (AMSI_RESULT_NO_DETECTADO). Tal como está, el producto antimalware no corresponde al búfer, la calidad impidió cualquier calidad.

Figura 6. Parque de funciones AmsiScanBuffer

El script de PowerShell que presentamos es un componente de genéricos utilizados para cargas útiles, como un RCP de puerta trasera y un PowrShell de puerta trasera.

RPC de puerta trasera

Turla ha publicado todos los fondos que se adjuntan al protocolo RCP. Estas puertas traseras se utilizan para proporcionar movimiento lateral y tomar el control de otras máquinas locales sin necesidad de aplicar a un servidor C&C externo.

Las funcionalidades se implementan con datos básicos: archivo de almacenamiento, descarga de archivos y comandos de ejecución para operaciones cmd.exe o PowerShell. Sin embargo, el malware también admite la posibilidad de agregar complementos.

Este RCP de puerta trasera se divide en dos componentes: un servidor y un cliente. Un operador usa el componente de cliente para ejecutar comandos en otra máquina que existe en el componente de servidor existente, que se puede resumir en la Figura 7.

Figura 7. Uso del backdoor RCP

Por ejemplo, la muestra identificada por el siguiente hash SHA-1 EC54EF8D79BF30B63C5249AF7A8A3C652595B923 Esta es una versión de cliente. Es un componente de la tubería denominada \ tubería \ atctl con el siguiente protocolo protocolo ncacn_np trabajar RpcStringBindingComposeW. La muestra se puede usar solo con la ayuda de una sola lámpara. NdrClientCall2. El procedimiento se exporta ManejadorWresponsive de analizar los argumentos, muestra que también es posible intentar hacerse pasar por token anónimo o intentar robar otros token de proceso tan solo para la ejecución de un comando.

Por el contrario, el servidor se dio cuenta del peso e implementó los diferentes comandos. Primera revisión y el valor del registro HKLM SISTEMA CurrentControlSet servicios LanmanServer Parámetros NullSessionPipes contiene "atctl”. En el caso de un contingente, el servidor configurará el descriptor de seguridad en la instalación de canalización".S: (ML ;; NO ;;; S-1-16-0)”En detrimento de la función Establecer información de seguridad. Esto se debe a que la tubería está disponible para cualquier propósito (nivel de integridad/confusión).

El patrón de imagen correspondiente corresponde al descriptor de columna MIDL correspondiente y la misma sintaxis es similar a la interfaz ID.

Figura 8. MIDL del RPC de puerta trasera del cliente a la izquierda, servidores a la derecha

Como recomendamos de antemano, esta puerta trasera también admite la carga de carga. El servidor creó un lote que busca archivos que coincidan con el siguiente usuario lPH * .dll. Si el archivo existe, se carga y se puede exportar Inicio del módulo es bonito. Hay varios complementos que se pueden ubicar en este momento, puede usar archivos recientes y archivos de almacenamiento USB.

Muchas variantes de este RCP de puerta trasera se utilizan en la forma de activación. Entre ellos, podemos ver proxies locales (usando upnprpc como el punto final y ncalrpc como una secuencia de protocolo) y nuevas versiones que usan PowerShellRunner para ejecutar scripts directos sin uso directo powershell.exe.

Servidor RPC falso

Debido a nuestra inversión, también encontramos un ejecutable portátil con la ruta pdb: C:UsuariosDesarrollofuentereposRPCSpooferx64Lanzamiento_Win2016_10RPCSpoofServerInstall.pdb (SHA-1: 9D1C563E5228B2572F5CA14F0EC33CA0DEDA3D57).

La principal propuesta de esta utilidad es recuperar la configuración de un proceso RPC que ha registrado una interfaz. Con el final de la clase de proceso, responda a la placa TCP (a la función de la placa TCP) ObtenerTcpTable2) hasta que encuentre el PID del proceso que abrió un puerto específico, o recupere el PID del proceso que abrió un puerto específico llamado pipe. Una vez que este PID es descubierto, esta utilidad lee la memoria del proceso remoto y trata de recuperar la interfaz RPC registrada. El código para esto, que se puede ver en la Figura 9, se puede encontrar en este repositorio de GitHub.

Figura 9. Porción del código buscando la sección .date de rpcrt4.dll en un proceso remoto (captura del cinturón Hex-Rays)

En principio, no estamos seguros de cómo se ha utilizado la información recuperada, ha sido utilizada por otros, (SHA-1: B948E25D061039D64115CFDE74D2FF4372E83765) nos ayudan a comprender. Como vemos en la Figura 10, este patrón recupera la interfaz RPC, reconstruyendo la bandera RPC_IF_ALLOW_SECURE_ONLY, e inicie la "tabla de despacho" en la memoria usando la función EscribirProcesoMemoria. Estas operaciones permiten que la muestra agregue funciones RPC a una interfaz RPC existente. Creemos que lo más prudente es volver a crear un RPC interfacial que cree uno personalizado.

Figura 10. Parte del código que recupera el RPC de la "tabla de despacho" del proceso real (capturas de cinturón Hex-Rays)

PowerStallion

PowerStallion es un backdoor en PowerShell de peso vivo que se puede utilizar como servidor C&C para Microsoft OneDrive; un servicio de comida en la nube. Las credenciales están codificadas de forma rígida al comienzo del script, que se puede ver en la Figura 11.

Figura 11. Credenciales de OneDrive en el script de PowerStallion

Es interesante notar que los operadores de Turla utilizan el proveedor de envío gratuito GMX, así como la respuesta a Outlook Backdoor y LightNeuron. También puede usar la dirección correcta del nombre de un empleado permanente de una organización que tiene un ataque blanco.

Uso útil del comando uso neto para conectar con la unidad del rojo. Verifique la posición, en un bucle, que se puede ajustar en la Figura 12, y hay un comando disponible. Este backdoor solo puede ejecutar scripts PowerShell adicionales. Escriba los resultados del comando en la otra subalfombra en OneDrive y el número con la palabra XOR 0xAA.

Figura 12. Lazo principal del backdoor PowerStallion

Otro artefacto interesante es que el script altera la modificación, el acceso y la hora (MAC) de la creación del archivo local para que coincida con las horas de un archivo legítimo, en este ejemplo. escritorio.inicomo se puede apreciar en la Figura 13.

Figura 13. Modificación de tiempos MAC desde el archivo de registro local

Las cremas que son backdoor son una herramienta para recuperar el acceso a la casa de los principales backdoors de Turla, cuentos como Carbon o Gazer, sean limpios y que los operadores no puedan aceptar los equipos comprometidos:

  • Supervisión de registros antimalware
  • Supervisar la lista de procesos de Windows
  • Instala la versión 4 de ComRAT, uno de los backdoors de la segunda fase de Turla

En un artículo publicado en 2018, encontramos las herramientas Turla usariaa más y más genéricas. Esta nueva inversión confirma nuestro conocimiento y ejemplo de que el grupo Turla no utiliza marcos de utilización para probar y código abierto para aprender las instrucciones apropiadas.

Sin embargo, esto no impide que se atribuyan cuentos ataques a Turla. Los atacantes suelen configurar o modificar estos dispositivos con un código abierto de la forma en que se adaptan mejor a sus necesidades. Sin embargo, es posible separar las diferentes categorías de actividades.

Finalmente, el uso de espinas de pescado está abierto, pero eso no significa que Turla use la utilización de personalidades herbalizadas. Los payloads se cargan mediante el script de PowerShell, el backdoor RCP y PowerStallion, son muy personalizados. Nuestro reciente análisis de LightNeuron de Turla es uno de los grupos más importantes para asegurar que el malware sea completo y personalizado.

Seguiremos dando seguimiento a las nuevas actividades de Turla y estaremos publicando los hallasgos. Por favor consulte, contáctenos en [email protected]. Los Indicadores de compromiso también se pueden encontrar en GitHub.

Hachís

hash SHA-1 Descripción Nombre de detección de ESET
50C0BF9479EFC93FA9CF1AA99BDCA923273B71A1 Cargador de PowerShell con carga útil cifrada PowerShell / Turla.T
EC54EF8D79BF30B63C5249AF7A8A3C652595B923 Puerta trasera RPC (cliente) Win64 / Turla.BQ
9CDF6D5878FC3AECF10761FD72371A2877F270D0 Puerta trasera RPC (servidor) Win64 / Turla.BQ
D3DF3F32716042404798E3E9D691ACED2F78BDD5 Complemento RPC de exfiltración de archivos Win32 / Turla.BZ
9D1C563E5228B2572F5CA14F0EC33CA0DEDA3D57 RPCSpoofServerInstaller Win64 / Turla.BS
B948E25D061039D64115CFDE74D2FF4372E83765 parcheador de interfaz RPC Win64 / Turla.BR

Números de archivo

  • componentes RPC
    • % PÚBLICO% iCore.dat (archivo de registro, un byte XOR 0x55)
    • \ tubería \ atctl (tubería con nombre)
  • PowerStallion
    • msctx.ps1
    • C:UsuariosPúblicoDocumentosdesktop.db

Llaves de Registro

  • componentes RPC
    • HKLM SISTEMA CurrentControlSet servicios LanmanServer Parámetros NullSessionPipes contiene atctl

Técnicas MITRE ATT & CK

Táctico IDENTIFICACIÓN Nombre Descripción
Ejecución T1086 Potencia Shell Los cargadores están escritos en PowerShell.
Algunos componentes de RPC pueden ejecutar comandos de PowerShell.
Persistencia T1084 Suscripción a eventos de instrumentación de administración de Windows Los cargadores de PowerShell usan WMI para la persistencia.
Evasión de defensa T1027 Archivos o información ofuscados La puerta trasera RPC y PowerStallion cifran el archivo de registro.
T1140 Desofuscar / Decodificar archivos o información Los cargadores de PowerShell descifran la carga incrustada.
T1055 Inyección de proceso Los cargadores de PowerShell inyectan la carga útil en un proceso remoto.
T1099 pisada de tiempo PowerStallion modifica las marcas de tiempo de su archivo de registro.
Descubrimiento T1083 Descubrimiento de archivos y directorios El complemento RPC recopila información de archivos y directorios.
T1120 Detección de dispositivos periféricos El complemento RPC supervisa las unidades USB.
T1012 Registro de consultas El componente del servidor de la puerta trasera RPC consulta el registro para NullSessionPipes.
T1057 Descubrimiento de procesos PowerStallion envió la lista de procesos en ejecución.
Recopilación T1005 Datos del sistema local El complemento RPC recopila archivos recientes del sistema de archivos local.
T1025 Datos de medios extraíbles El complemento RPC recopila archivos de unidades USB.
Comando y control T1071 Protocolo de capa de aplicación estándar La puerta trasera RPC usa RPC y PowerStallion usa OneDrive a través de SMB.
exfiltración T1041 Exfiltración sobre el canal de comando y control PowerStallion extrae información a través del canal C&C.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir
error: Content is protected !!