Ghost Locker es un ransomware como servicio (Raas) creado por GhostSec [grupos hacktivistas]. En octubre de 2023, GhostSec lanzó el framework GhostLocker. Tras su exitosa colaboración con el grupo de ransomware Stormous en julio de 2023, los operadores del ransomware GhostLocker ofrecen diversas opciones a sus afiliados.
Ghost Locker 2.0 es una nueva variante de ransomware que extrae y cifra los archivos de la víctima y exige un rescate por la clave de descifrado necesaria para desbloquearlos. Hemos observado que afecta a países como Brasil, India, China, Sudáfrica, Egipto, Turquía y muchos otros.
Análisis técnico:
Seqrite Se han detectado dos variantes del ransomware Ghost Locker en circulación durante la búsqueda de amenazas. La versión 1.0 de Ghost Locker fue escrita en un script basado en Python, y la versión 2.0 está escrita en Golang.
Variante 1:
Durante la ejecución inicial, esta variante obtiene la carpeta de inicio de Windows y se copia en esa carpeta para establecer persistencia.

Figura 1: Creando persistencia
Después de eso, obtiene la lista de unidades montadas en la máquina de la víctima para utilizar durante el proceso de cifrado.

Fig. 2: Obtención de la lista de controladores
También genera una cadena aleatoria de 32 bytes y la utiliza como identificador en el archivo JSON del ransomware. Los cibercriminales utilizan este identificador en su panel de control para identificar un equipo infectado.

Figura 3: Creación de ID
El ransomware establece una conexión con el servidor C2 del actor de amenazas a través de la URL “hxxp[://]41[.]216[.]183[.]31[/]incrementLaunch”, para notificar al actor de amenazas que hay otra máquina víctima en su lista [panel de control de Ghost Locker].

Fig. 4: Conexión C2
Esta variante de Ghost Locker genera una clave secreta mediante el algoritmo de cifrado simétrico Fernet. Esta clave secreta se envía al atacante mediante un archivo JSON y se utiliza para cifrar los archivos.

Figura 5: Generación de clave secreta
Después de eso, el ransomware genera la dirección IP de la víctima, el ID de cifrado, la fecha de infección y otra información de sus parámetros de configuración, incluido el estado de cifrado, y recopila el monto del rescate y una cadena de identificación de la víctima.
El ransomware crea un archivo JSON en la máquina de la víctima y almacena los detalles anteriores.

Figura 6: Generación de archivo JSON
Luego, el archivo JSON generado se envía al servidor C2 a través de la URL “hxxp[://]41[.]216[.]183[.]31[/]addInfection” para registrar la máquina víctima en ese panel C2.

Figura 7: Registrar la máquina infectada con un panel C2
Esta variante verifica si el sistema infectado tiene derechos de administrador. De no ser así, los obtiene mediante la utilidad Takeown para acceder a los sistemas de archivos, como lectura y eliminación.

Figura 8: Obtener la propiedad a través de la toma de posesión
Como se muestra en la Figura 9 a continuación, omite la carpeta "C:\Windows", "new-mains.exe" y los archivos con extensión " .ghost" durante el proceso de cifrado.

Fig. 9: Omisión de archivos y carpetas
Este ransomware utiliza un algoritmo de cifrado AES y una longitud de clave de 256 bits. Cifra el archivo en memoria, crea una copia del archivo cifrado en el disco con la extensión ".ghost" y luego elimina el archivo original.

Figura 10: Proceso de cifrado
Una vez completado el proceso de cifrado, el ransomware coloca la nota de rescate incrustada en un archivo HTML llamado “ Ransomnote.html ” en el escritorio de la víctima y lo ejecuta con el comando “Inicio” de Windows.

Figura 11: Nota de ransomware
Variante 2:
Esta variante de Ghost Locker se basa principalmente en Golang. La mayor parte de la funcionalidad del ransomware sigue siendo la misma que la de la variante 1.
Las diferencias entre estas dos variantes de Ghost Locker son:
- Los servidores C2 han cambiado: de hxxp:[//]41[.]216[.]183.31[/](Fig 7) servidor C2 en la variante 1, a hxxp[://]94[.]103[.]91[.]246[/] servidor C2 en la variante 2.
- Ejecución: La variante 1 se ejecuta incluso sin una conexión exitosa con el servidor C2. Sin embargo, la variante 2 solo se ejecuta completamente si el equipo víctima logra establecer una conexión exitosa con el C2.
- Nombre de usuario en archivo JSON: El nombre de usuario es cero en la variante 1 y fantasmasec En la variante 2, en el archivo JSON generado en memoria. Al parecer, un afiliado diferente generó este binario de ransomware con diferentes configuraciones a través de este generador de ransomware.
- Exfiltración: como se muestra en la Figura 13, la variante 2 mata los servicios y procesos definidos por el actor de amenazas para evadir la detección; los archivos de destino definidos por el actor de amenazas para el cifrado y la exfiltración son .doc, .docx, .xls y .xlsx.
- Omisión de archivo: como se menciona en la Fig. 9, la variante 1 agregó el “new-mains.exe” a la lista de omisión durante el proceso de cifrado, pero la variante 2 no lo hizo.
Como se menciona en las figuras 1 y 3, esta variante del casillero Ghost también se copia a sí misma en la carpeta de Inicio de Windows para establecer persistencia y genera una cadena aleatoria de 32 bytes para ID en el archivo JSON.
Una vez que la máquina infectada se registra en el panel C2, la muestra de ransomware intenta terminar la lista de procesos o servicios definidos [lista definida por el actor de amenazas al crear las muestras de ransomware] en la máquina de la víctima.


Figura 12: Funciones para eliminar servicios y procesos definidos por TA
Busca los archivos objetivo en el equipo de la víctima utilizando la lista de extensiones de archivo definida por el actor de la amenaza. Antes de iniciar el cifrado, sube los archivos objetivo al servidor C2 mediante la URL, como se muestra en la Figura 13, mediante el método HTTP POST. En esta variante, el actor exfiltró y cifró los archivos con las extensiones .doc, .docx, .xls y .xlsx.

Figura 13: Exfiltrar los archivos especificados por TA al servidor C2
IOCS:
C30A14B595FA334084CD32FA60B3C827
8AD67A1B7A5F2428C93F7A13A398E39C
hxxp[:]//94[.]103[.]91.246[/]incrementoLaunch
hxxp[://]41[.]216[.]183[.]31[/]incrementoLaunch
hxxp[:]//94[.]103[.]91.246[/]addInfection
hxxp[://]41[.]216[.]183[.]31[/]addInfección
Detecciones:
Rescate.Ghostlockr.S32894932
Regla de Yara:
importar “pe”
regla Ghost_locker
{
instrumentos de cuerda:
//$s2={06 6P ?? 00 00 0A 28 ?? 00 00 0A 28 ?? 00 00 0A 28 ?? 00 00 06 26}
$s1={3C 74 69 74 6C 65 3E 47 68 6F 73 74 4C 6F 63 6B 65 72 20 4E 6F 74 65 3C 2F 74 69 74 6C 65 3E}
$s2={68 74 74 70 3A 2F 2F ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 2F 61 64 64 49 6E 66 65 63 74 69 6F 6E}
$s3={68 74 74 70 3A 2F 2F ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 2F 69 6E 63 72 65 6D 65 6E 74 4C 61 75 6E 63 68}
$s4={3C 61 20 68 72 65 66 3D 22 68 74 74 70 3A 2F 2F ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 2F 76 69 63 74 69 6D 63 68 61 74 3F 69 64 3D 5B 45 4E 43 52 59 50 54 49 4F 4E 49 44 5D 22 3E 43 6C 69 63 6B 20 6D 65 3C 2F 61 3E}
$s5={2E 67 68 6F 73 74 }
Condición: Todos ellos}
TTP del ATAQUE MITRE:
| Táctica | Técnica/Procedimiento |
| Ejecución | T1059.003: Intérprete de comandos y secuencias de comandos: Shell de comandos de Windows
|
| Descubrimiento: | T1007: Descubrimiento de servicios del sistema |
| T1082: Descubrimiento de información del sistema | |
| T1083: Descubrimiento de archivos y directorios | |
| Comando y control | T1071: Protocolo de capa de aplicación |
| exfiltración | T1041: Exfiltración sobre canal C2
|
| Generar impacto | T1486: Datos cifrados para impacto |
| T1489: Parada de servicio | |
| T1490: Inhibir la recuperación del sistema |
Conclusión:
Ghost Locker es un ransomware como servicio (Raas) que ha migrado de scripts de Python a lenguaje Go. Exfiltra datos y cifra archivos. Para evitar ser detectado, elimina los servicios o procesos definidos por el actor de la amenaza y, tras el cifrado, utiliza un mecanismo de autoeliminación.
Escrito por
Manoj Kumar Neelamegam
Coautor:
Rumana Siddiqui



