Saltar al contenido

YARA · Signature Base (Florian Roth / Nextron)

SIGNATURE_BASE_APT_CN_Twistedpanda_SPINNER_2

Detects an older variant of SPINNER payload used by TwistedPanda

APT / actorSignature Base (Florian Roth / Nextron)Detection Rule License 1.1Compila con YARA-X
Autor
Check Point Research
Fecha
2022-04-14
Modificada
2025-07-01
Puntuación / Calidad
80 / 85

Qué detecta esta regla

Detects an older variant of SPINNER payload used by TwistedPanda

Objetivos: PE de Windows.

Define 7 patrones (0 de texto, 7 hex, 0 regex).

Resumen generado a partir de los metadatos y la condición de la regla.

Código de la regla

apt-cn-twistedpanda-spinner-2.yarDetection Rule License 1.1
rule SIGNATURE_BASE_APT_CN_Twistedpanda_SPINNER_2 : FILE
{
	meta:
		description = "Detects an older variant of SPINNER payload used by TwistedPanda"
		author = "Check Point Research"
		id = "bbbf3af1-127f-5d32-967f-bdb94311d1d6"
		date = "2022-04-14"
		modified = "2025-07-01"
		reference = "https://research.checkpoint.com/2022/twisted-panda-chinese-apt-espionage-operation-against-russians-state-owned-defense-institutes/"
		source_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/apt_cn_twisted_panda.yar#L82-L118"
		license_url = "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
		hash = "28ecd1127bac08759d018787484b1bd16213809a2cc414514dc1ea87eb4c5ab8"
		logic_hash = "d1e34903e58fb76671a076acbb9f26e10d511c8f00be90b4901d61b73b90a9a7"
		score = 80
		quality = 85
		tags = "FILE"

	strings:
		$config_init = { C7 [3] 00 00 00 C7 [3] 00 00 00 C6 }
		$c2_cmd_1 = { 01 00 03 10 }
		$c2_cmd_2 = { 02 00 01 10 }
		$c2_cmd_3 = { 01 00 01 10 }
		$c2_cmd_4 = { 01 00 00 10 }
		$c2_cmd_5 = { 02 00 00 10 }
		$decryption = { 80 B3 [5] 8D BB [4] 8B 56 14 8B C2 8B 4E 10 2B C1 83 F8 01 }

	condition:
		uint16( 0 ) == 0x5A4D and uint32( uint32( 0x3C ) ) == 0x00004550 and filesize < 3000KB and #config_init > 10 and 2 of ( $c2_cmd_* ) and $decryption
}

Cadenas (7 patrones)

IdentificadorTipoValorModificadores
$config_inithex{ C7 [3] 00 00 00 C7 [3] 00 00 00 C6 }
$c2_cmd_1hex{ 01 00 03 10 }
$c2_cmd_2hex{ 02 00 01 10 }
$c2_cmd_3hex{ 01 00 01 10 }
$c2_cmd_4hex{ 01 00 00 10 }
$c2_cmd_5hex{ 02 00 00 10 }
$decryptionhex{ 80 B3 [5] 8D BB [4] 8B 56 14 8B C2 8B 4E 10 2B C1 83 F8 01 }

Condición

uint16( 0 ) == 0x5A4D and uint32( uint32( 0x3C ) ) == 0x00004550 and filesize < 3000KB and #config_init > 10 and 2 of ( $c2_cmd_* ) and $decryption

En palabras sencillas (Heurística)

  • El archivo debe empezar por «MZ»: un ejecutable de Windows (PE).
  • El archivo debe ocupar menos de 3000KB (un límite barato que descarta archivos grandes).
  • Deben coincidir al menos 2 patrones de ( $c2_cmd_* ).
  • El patrón $config_init debe aparecer > 10 veces.
  • El patrón $decryption debe estar presente.

Prueba esta regla en tu navegador

Arrastra un archivo para escanearlo con esta regla usando YARA-X compilado a WebAssembly. No se sube nada.

Arrastra un archivo aquí o haz clic para elegirSe escanea en local con YARA-X. Archivos de hasta 200 MB.

Abrir en el editor

Referencias

Hashes de muestras

Hashes de las muestras que el autor lista en los metadatos de la regla (búscalos en tu plataforma de threat intelligence).

  • 28ecd1127bac08759d018787484b1bd16213809a2cc414514dc1ea87eb4c5ab8

Licencia y atribución

Autor: Check Point Research

Repositorio de origen: Signature Base (Florian Roth / Nextron) @ 94a1c48d7a

Licencia: Detection Rule License 1.1 (licencia del repositorio)

Regla original

Obtenida a través de YARA Forge 20260927, que añade a los nombres el prefijo de la fuente y campos meta normalizados.

Id de la regla: bbbf3af1-127f-5d32-967f-bdb94311d1d6

Etiquetas:FILE