FamousSparrow: grupo de cibercriminales que apunta al sector hotelero

FamousSparrow es otro de los grupos de APT que aprovechó la vulnerabilidad de ProxyLogon en marzo de 2021 y que ha estado apuntando a hoteles, gobiernos y compañías privadas en varios países del mundo, incluyendo Brasil y Guatemala.

FamousSparrow es otro de los grupos de APT que aprovechó la vulnerabilidad de ProxyLogon en marzo de 2021 y que ha estado apuntando a hoteles, gobiernos y compañías privadas en varios países del mundo, incluyendo Brasil y Guatemala.

Investigadores de ESET han descubierto un nuevo grupo de ciberespionaje que ha estado dirigiendo sus ataques a hoteles, gobiernos y empresas privadas de todo el mundo. Hemos llamado a este grupo FamousSparrow y creemos que ha estado activo desde al menos 2019.

Durante nuestra investigación, al revisar los datos de nuestra telemetría nos dimos cuenta de que FamousSparrow aprovechó las vulnerabilidades de Microsoft Exchange, conocidas como ProxyLogon, que describimos de forma detallada en marzo de 2021. Como recordatorio, esta vulnerabilidad de ejecución remota de código ha sido utilizada por más de 10 grupos APT para tomar control de servidores de correo de Exchange en todo el mundo. De acuerdo con la telemetría de ESET, FamousSparrow comenzó a explotar las vulnerabilidades el 3 de marzo de 2021, el día después de la publicación del parche, por lo tanto, se trata de otro grupo de APT que tenía acceso al código de la vulnerabilidad ProxyLogon en marzo de 2021.

En esta publicación discutiremos la atribución a FamousSparrow y la victimología del grupo. A esto le seguirá un análisis técnico detallado del principal backdoor del grupo, al cual hemos denominado SparrowDoor.

Aclaración sobre la atribución

Creemos que el grupo FamousSparrow es actualmente el único usuario del backdoor SparrowDoor (que abordaremos con más detalle más abajo en esta misma publicación). El grupo también utiliza dos versiones personalizadas de Mimikatz (consulte la sección Indicadores de Compromiso en este mismo artículo) que podrían ser utilizadas para vincular incidentes a este grupo.

Si bien consideramos que FamousSparrow es un grupo que opera de manera independiente, encontramos conexiones con otros grupos APT conocidos. En un caso, los atacantes desplegaron una variante de Motnug, que es un loader utilizado por SparklingGoblin. En otro caso, encontramos en una máquina comprometida por FamousSparrow un Metasploit en ejecución utilizando cdn.kkxx888666[.]com como su servidor C&C. Este dominio está relacionado con un grupo conocido como DRBControl.

Victimología

El grupo ha estado activo desde al menos agosto de 2019 y ha estado dirigiendo sus ataques principalmente a hoteles en varios países. Además, hemos observado algunas víctimas de otros sectores, como organismos gubernamentales, organizaciones internacionales, empresas de ingeniería y bufetes de abogados. Los países en los que observamos víctimas son los siguientes:

  • Brasil
  • Burkina Faso
  • Sudáfrica
  • Canadá
  • Israel
  • Francia
  • Guatemala
  • Lituania
  • Arabia Saudita
  • Taiwán
  • Tailandia
  • Reino Unido
Figure 1. Geographic distribution of FamousSparrow targets

Imagen 1. Distribución geográfica de las víctimas de FamousSparrow

Vector de compromiso

En algunos casos, pudimos observar que el vector de compromiso inicial utilizado por FamousSparrow fueron aplicaciones web vulnerables expuestas a Internet. Creemos que FamousSparrow aprovechó vulnerabilidades conocidas de ejecución remota de código en: Microsoft Exchange (incluido ProxyLogon en marzo de 2021), Microsoft SharePoint y Oracle Opera (un software empresarial para la gestión hotelera). Todas estas vulnerabilidades se utilizaron para entregar en los sistemas comprometidos varias muestras maliciosas.

Una vez que el servidor es comprometido, los atacantes hacen uso de distintas herramientas personalizadas:

  • Una variante de Mimikatz
  • Una pequeña utilidad que entrega ProcDump en el disco y lo usa para volcar el proceso lsass, probablemente para recopilar información sensible en la memoria, como credenciales.
  • Nbtscan, un escáner de NetBIOS
  • Un loader para el backdoor SparrowDoor

A través de nuestra telemetría pudimos recuperar solo el componente del loader (SHA-1: E2B0851E2E281CC7BCA3D6D9B2FA0C4B7AC5A02B). También encontramos un loader muy similar en VirusTotal (SHA-1: BB2F5B573AC7A761015DAAD0B7FF03B294DC60F) que nos permitió encontrar los componentes faltantes, incluido SparrowDoor.

El backdoor SparrowDoor

Loader

SparrowDoor es cargado inicialmente a través de una DLL mediante una técnica llamada DLL search order hijacking, que permiten manipular las solicitudes de búsqueda para la carga de DLL. Para ello se vale de tres elementos: un ejecutable legítimo de K7 Computing Indexer.exe) utilizado como host para el secuestro de DLL, una DLL maliciosa (K7UI.dll) y un shellcode cifrado (MpSvc.dll) . Todos estos elementos son alojados en %PROGRAMDATA%\Software\. Puede asumirse que el argumento utilizado en la línea de comando junto a la ejecución inicial de SparrowDoor, para configurar la persistencia, no es más que -i, -k-d (las funcionalidades de estos tres argumentos se explican a continuación). Una vez configurada la persistencia, SparrowDoor se ejecuta con el argumento de línea de comando -i. Consulte la Imagen 2 para obtener una breve descripción del proceso de carga inicial. Si desea ver con más detalle el proceso de carga, ¡continúe leyendo!

Figure 2. SparrowDoor staging

Imagen 2. SparrowDoor en acción

El ejecutable legítimo,Indexer.exe, requiere la biblioteca K7UI.dll para funcionar. Por lo tanto, el sistema operativo busca el archivo DLL en directorios prescritos en la orden de carga. Dado que el directorio donde se almacena el archivo Indexer.exe tiene la máxima prioridad en el orden de carga, está expuesto al DLL search order hijacking. Y así es exactamente como el malware es cargado. Indexer.exe carga el K7UI.dll malicioso, acto seguido parchea el código en Indexer.exe  (desde call WinMain a jmp K7UI.0x100010D0 ) y luego vuelve a Indexer.exe. Como resultado de esto, Indexer.exe termina ejecutando una subrutina en K7UI.dll (ubicada en la sección K7UI.dll ) en lugar de llamar a WinMain. Nos referiremos a esta subrutina como launcher (lanzador). La funcionalidad de launcher es cargar MpSvc.dll (el shellcode cifrado) en la memoria desde el directorio que también almacena Indexer.exe, descifrar el contenido y luego ejecutar el shellcode.

El shellcode (MpSvc.dll) se cifra utilizando una clave XOR de cuatro bytes creada a partir de los primeros cuatro bytes del archivo.

El shellcode MpSvc.dll carga varias bibliotecas responsables de construir una estructura de PE y ubica las direcciones de las funciones que serán utilizadas. Después de eso, asigna memoria RWX y copia varias ubicaciones en el shellcode (para construir la estructura PE). También resuelve las importaciones de varias funciones de diferentes bibliotecas. Finalmente, ejecuta el PE del backdoor recientemente construido desde el punto de entrada. Curiosamente, esta imagen reconstruida del ejecutable no tiene encabezados de PE, como se muestra en la Imagen 2, por lo que el loader ejecuta un backdoor saltando al punto de entrada a un valor de desplazamiento hardcodeado dentro de la memoria asignada.

Figure 3. The PE header is missing in the newly built backdoor from the MpSvc.dll shellcode

Imagen 3. Falta el encabezado de PE en el backdoor recientemente creado desde el shellcode MpSvc.dll

Backdoor

Los argumentos pasados ​​al backdoor son heredados de los argumentos pasados ​​a Indexer.exe, o a cualquier otro binario que obtenga el shellcode/backdoor inyectado. Las tareas realizadas por el backdoor después de que se especifica un argumento se muestran en la Tabla 1.

Tabla 1. Acciones realizadas según los argumentos de línea de comando proporcionados a SparrowDoor

ArgumentAction
No argument or not matching the followingPersistence is set through the registry Run key and a service, which is created and started using the configuration data (described in the next section) hardcoded in the binary. Finally, the backdoor is restarted with the -i switch.
-iThe backdoor is restarted with the -k switch.
-kThe backdoor interpreter (described later) is called with a kill switch.
-dThe backdoor interpreter is called without a kill switch.

Nota:

  1. El kill switch le da al backdoor el privilegio de desinstalar o reiniciar SparrowDoor.
  2. El interpreter del backdoor es llamado independientemente del argumento utilizado porque siempre terminará con un argumento -k o -d.

Datos de configuración

La configuración se encuentra en el binario y es descifrada utilizando la clave XOR multibyte ^&32yUgf. La configuración tiene el siguiente formato:

Los valores descifrados se muestran en la Tabla 2.

Tabla 2. Los pares key-value de la configuración junto con una descripción de su propósito

KeyValuePurpose
domaincredits.offices-analytics[.]comC&C server domain
useruserProxy settings used to connect to C&C server
passpass
ip127.1.1.1
port8080
serviceNameWSearchIndexInformation used for creating a service to set up persistence. Also, note that the serviceName is used as the value name under the Run key in the registry
serviceDisplayNameWindows Search Index
serviceDescriptionProvides content indexing, property caching, and search results for files, e-mail, and other content.

Las conexiones pueden ser a través de un proxy o no, y se conectan al servidor de C&C a través del puerto 443 (HTTPS). Por lo tanto, la comunicación debe ser cifrada mediante TLS. Durante el primer intento de contacto con el servidor de C&C, SparrowDoor comprueba si se puede establecer una conexión sin utilizar un proxy y, si no puede, los datos son enviados a través de un proxy. Todos los datos salientes se cifran con la clave XOR hH7@83#mi y todos los datos entrantes se descifran con la clave XOR h*^4hFa. Los datos tienen una estructura que comienza con un ID de comando, seguida por la longitud de los datos cifrados subsiguientes, seguida por los datos cifrados.

La Imagen 4 muestra un ejemplo de cómo se envían los datos al servidor C&C (en este caso, se envía información del sistema), mientras que la Imagen 5 muestra la forma de texto sin formato de los datos del mismo payload.

Figure 4. A Wireshark dump showing the data POSTed by the backdoor

Imagen 4. Un volcado de Wireshark que muestra los datos publicados por el backdoor

Figure 5. The decrypted data containing system information

Imagen 5. Datos descifrados que contienen información del sistema

En este caso, la dirección IP local de las víctimas se puede convertir a decimal, dando 192.168.42.1.

El ID de sesión es el ID de sesión para los servicios de escritorio remoto asociado con el proceso de backdoor, y se encuentra mediante la llamada a la API de Windows ProcessIdToSessionId.

El systemInfoHash se calcula mediante el algoritmo de hash sdbm , utilizando el nombre de usuario, el nombre de la computadora, las direcciones de host y el ID de sesión.

Función intérprete del backdoor

La escalada de privilegios se realiza a través de esta función ajustando el token de acceso del proceso SparrowDoor para habilitar SeDebugPrivilege. Después de eso, la función shutdown (Ws2_32.dll) es parcheada para evitar la desactivación de envíos y recepciones en un socket y la función closesocket (Ws2_32.dll) es parcheada para habilitar que la opción DONT_LINGER primero cierre el socket sin esperar a que los datos pendientes sean enviados o recibidos. Finalmente, la información del sistema es enviada al servidor de C&C (como se observa en las Imágenes 4 y 5 previas) para recibir nuevamente los datos como devolución.

Según el campo ID de comando en los datos recibidos del de servidor C&C, el badkdoor puede realizar diferentes acciones maliciosas que a continuación se detallan en la Tabla 3.

Tabla 3. Acciones realizadas por SparrowDoor cuando se reciben los correspondientes ID de comando

Command IDAction
0x1C615632The current process is closed.
0x1DE15F35A child svchost.exe process is spawned with processToken information of the process (Process ID) specified by the C&C server, with argument -d and then the shellcode is injected into the process.
0x1A6B561AA directory is created using the name provided by the C&C server.
0x18695638A file is renamed. Both the file to be renamed and the new name are provided by the C&C server.
0x196A5629A file is deleted, as specified in the incoming data.
0x17685647If length of the data is 1, and the data matches $, then the length of systemInfoHash along with an array of drive types are sent.

If length of the data is greater than 2 and the first 2 bytes of data match $\, then information about the files in a specified directory is sent. The information included is the following: file attributes, file size and file write time.
0x15665665A new thread is created to exfiltrate the content of a specified file.
0x16675656If the kill switch is activated, the current persistence settings (registry and service) are removed and the Indexer.exe file is executed (to restart the dropper). If not, the backdoor loop is restarted.
0x14655674A new thread is created to write the data to a specified file.
0x12635692 If the kill switch is activated, the persistence settings are removed, and all the files used by SparrowDoor (Indexer.exe, K7UI.dll and MpSvc.dll) are removed. If not, the backdoor loop is restarted.
0x13645683If the data matches "switch ”, then the backdoor is restarted with the -d switch.

If not, it spawns a cmd.exe shell, and sets up named pipes for input and output (used by the C&C server) to establish an interactive reverse shell.

If the data matches Exit\r\n, then the spawned shell is terminated.
OtherRestarts the backdoor loop.

Conclusión

FamousSparrow es otro grupo de APT que a principios de marzo de 2021 tuvo acceso a la vulnerabilidad de ejecución remota de código conocida como ProxyLogon. El grupo tiene un historial aprovechando vulnerabilidades conocidas en aplicaciones de servidor como SharePoint y Oracle Opera. Este es otro recordatorio de lo fundamental que es parchear rápidamente aquellas aplicaciones a las que se puede acceder desde Internet, y que si no es posible hacerlo rápidamente, intentar no exponerlas a Internet.

Las víctimas, que incluyen a gobiernos de todo el mundo, sugieren que la intención de FamousSparrow es el espionaje. Hemos destacado algunos vínculos SparklingGoblin y DRBControl, pero no consideramos que estos grupos sean lo mismo.

En nuestro repositorio de GitHub puede encontrarse una lista completa de los Indicadores de Compromiso (IoC) y algunas muestras.

Por cualquier consulta o para enviar nuevas muestras relacionadas con el tema, escríbanos a threatintel@eset.com.

Indicadores de Compromiso

ACTUALIZACIÓN: (13 de octubre de 2021): La dirección IP 45.192.178[.]206 fue eliminada de los Indicadores de Compromiso. Fue un error de nuestra parte.

SHA-1FilenameESET detection nameDescription
B9601E60F87545441BF8579B2F62668C56507F4Ap64.exe
debug.log
Win64/Riskware.Mimikatz.HMimikatz
4DF896624695EA2780552E9EA3C40661DC84EFC8p64.exe
debug.log
Win64/Riskware.Mimikatz.HMimikatz
76C430B55F180A85F4E1A1E40E4A2EA37DB97599dump.exeWin64/Kryptik.BSQLsass dumper
873F98CAF234C3A8A9DB18343DAD7B42117E85D4nbtscan.exeWin32/NetTool.Nbtscan.ANbtscan
FDC44057E87D7C350E6DF84BB72541236A770BA21.cabWin32/FamousSparrow.ADropper
C36ECD2E0F38294E1290F4B9B36F602167E33614Indexer.exe-Legitimate K7 Computing binary
BB2F5B573AC7A761015DAAD0B7FF03B294DC60F6K7UI.dllWin32/FamousSparrow.ALoader
23E228D5603B4802398B2E7419187AEF71FF9DD5MpSvc.dllEncrypted shellcode
2560B7E28B322BB7A56D0B1DA1B2652E1EFE76EA--Decrypted shellcode
E2B0851E2E281CC7BCA3D6D9B2FA0C4B7AC5A02BK7UI.dllWin32/FamousSparrow.BLoader
DomainIP addressComment
credits.offices-analytics[.]com-SparrowDoor C&C server
-27.102.113[.]240Delivery domain

Técnicas de MITRE ATT&CK

Esta tabla fue creada utilizando la versión 9 del framework de MITRE ATT&CK.

TacticIDNameDescription
Resource DevelopmentT1588.005Obtain Capabilities: ExploitsFamousSparrow used RCE vulnerabilities against Microsoft Exchange, SharePoint and Oracle Opera.
T1583.001Acquire Infrastructure: DomainsFamousSparrow purchased a domain at Hosting Concepts.
T1583.004Acquire Infrastructure: ServerFamousSparrow rented servers at Shanghai Ruisu Network Technology and DAOU TECHNOLOGY.
Initial AccessT1190Exploit Public-Facing ApplicationFamousSparrow used RCE vulnerabilities against Microsoft Exchange, SharePoint and Oracle Opera.
ExecutionT1059.003Command and Scripting Interpreter: Windows Command ShellFamousSparrow used cmd.exe to run commands to download and install SparrowDoor.
T1203Exploitation for Client ExecutionFamousSparrow used RCE vulnerabilities in Microsoft Exchange, SharePoint and Oracle Opera to install SparrowDoor.
PersistenceT1547.001Boot or Logon Autostart Execution: Registry Run Keys / Startup FolderSparrowDoor achieves persistence through the HKCU Run registry value WSearchIndex = \Indexer.exe -i registry entry.
T1543.003Create or Modify System Process: Windows ServiceFamousSparrow installs SparrowDoor as a service named WSearchIndex.
T1574.001Hijack Execution Flow: DLL Search Order HijackingFamousSparrow loads the malicious K7UI.dll through DLL search order hijacking.
Defense EvasionT1055.001Process Injection: Dynamic-link Library InjectionMpSvc.dll (shellcode) is injected into processes by SparrowDoor.
T1134.002Access Token Manipulation: Create Process with TokenSparrowDoor creates processes with tokens of processes specified by the C&C server, using the CreateProcessAsUserA API.
T1134Access Token ManipulationSparrowDoor tries to adjust its token privileges to receive SeDebugPrivilege.
T1027Obfuscated Files or InformationThe shellcode, MpSvc.dll, is encrypted using XOR, along with the config embedded within SparrowDoor.
Credentials AccessT1003OS Credential DumpingFamousSparrow makes use of a custom Mimikatz version.
DiscoveryT1082System Information DiscoverySparrowDoor collects the username, computername, RDP session ID, and drive types in the system and sends this data to the C&C server.
T1083File and Directory DiscoverySparrowDoor can probe files in a specified directory obtaining their names, attributes, sizes and last modified times, and sends this data to the C&C server.
CollectionT1005Data from Local SystemSparrowDoor has the ability to read file contents and exfiltrate them to the C&C server.
Command and ControlT1071.001Application Layer Protocol: Web ProtocolsSparrowDoor communicates with the C&C server using the HTTPS protocol.
T1573.001Encrypted Channel: Symmetric CryptographySparrowDoor encrypts/decrypts communications with its C&C server using different multi-byte XOR keys.
ExfiltrationT1041Exfiltration Over C2 ChannelSparrowDoor exfiltrates data over its C&C channel.

Newsletter

Discusión